Correction de bug : les jeux avec l'état "created" généraient 2 timelines

This commit is contained in:
Olivier DOSSMANN 2017-09-16 23:36:06 +02:00
parent 1845ae9eac
commit 95d8b30c3c
3 changed files with 38 additions and 2 deletions

View File

@ -1,5 +1,6 @@
Current version (0.2) :
- Bug corrigé : Génération de 2 timelines si on crée un jeu avec l'état "created"
- Renommage des consoles en « plateformes »
- Activation des requêtes CORS pour permettre à une autre application d'accéder à l'API
- MàJ vers Django 1.11.5

View File

@ -18,5 +18,6 @@ def game_saved(sender, instance, created, raw, using, update_fields,
new_entry = dict(entry)
new_entry.update({'status': instance.CREATED})
Timeline.objects.create(**new_entry)
# Add new timeline entry
# Add new timeline entry ONLY if status is difference from CREATED one
if instance.status != instance.CREATED:
Timeline.objects.create(**entry)

View File

@ -0,0 +1,34 @@
from django.test import TestCase
from games.models import Game, Platform, Timeline
class TimelineTest(TestCase):
"""
Timeline Model
"""
@classmethod
def setUpTestData(cls):
cls.console = Platform.objects.create(name='GP2X')
def test_game_with_status_created_gives_one_timeline(self):
"""
Game with status "created" should only generate ONE status. Not more.
"""
# Games creation should generate timelines.
game1 = Game.objects.create(
name='Vektronizor',
collection=self.console,
status='beaten')
game2 = Game.objects.create(
name='Pomperman',
collection=self.console,
status='created')
game1_timeline = Timeline.objects.filter(
item=game1)
game2_timeline = Timeline.objects.filter(
item=game2)
self.assertEqual(game1_timeline.count(), 2)
self.assertEqual(game2_timeline.count(), 1)