diff --git a/collection/games/serializers.py b/collection/games/serializers.py index 55d4543..6850d38 100644 --- a/collection/games/serializers.py +++ b/collection/games/serializers.py @@ -1,4 +1,6 @@ -from games.models import Game, Platform, Timeline +from games.models import Game +from games.models import Platform +from games.models import Timeline from rest_framework import serializers @@ -12,8 +14,7 @@ class GameSerializer(serializers.HyperlinkedModelSerializer): 'playing', 'status', 'unplayed', - 'wish', - ) + 'wish', ) class GameTimelineSerializer(serializers.HyperlinkedModelSerializer): @@ -22,11 +23,10 @@ class GameTimelineSerializer(serializers.HyperlinkedModelSerializer): fields = ( 'date', 'item', - 'status', - ) + 'status', ) class PlatformSerializer(serializers.ModelSerializer): class Meta: model = Platform - fields = ('name',) + fields = ('name', 'shortname') diff --git a/collection/games/tests/test_api.py b/collection/games/tests/test_api.py index 9250569..5243193 100644 --- a/collection/games/tests/test_api.py +++ b/collection/games/tests/test_api.py @@ -1,27 +1,28 @@ +import json +from datetime import date +from datetime import datetime + from django.contrib.auth.models import User from django.urls import reverse -from games.models import Game, Platform, Timeline +from games.models import Game +from games.models import Platform +from games.models import Timeline from rest_framework import status -from rest_framework.test import APITestCase, force_authenticate -from datetime import date, datetime -import json +from rest_framework.test import APITestCase class PlatformTest(APITestCase): - @classmethod def setUpTestData(cls): cls.superuser = User.objects.create_superuser( - 'admin', - 'admin@localhost', - 'admin') + 'admin', 'admin@localhost', 'admin') def test_create_platform(self): """ Check we can create a platform object. """ url = reverse('platform-list') - data = {'name': 'GP2X'} + data = {'name': 'GP2X', 'shortname': 'GP2X'} self.client.force_authenticate(user=self.superuser) response = self.client.post(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) @@ -39,21 +40,17 @@ class PlatformTest(APITestCase): url = reverse('platform-list') self.client.force_authenticate(user=self.superuser) response = self.client.get(url, format='json') - sorted_platforms = list( - Platform.objects.all().order_by('name').values_list( - 'name', flat=True)) + sorted_platforms = list(Platform.objects.all().order_by('name') + .values_list('name', flat=True)) platforms = [x.get('name') for x in json.loads(response.content)] self.assertEqual(platforms, sorted_platforms) class GameTest(APITestCase): - @classmethod def setUpTestData(cls): cls.superuser = User.objects.create_superuser( - 'admin', - 'admin@localhost', - 'admin') + 'admin', 'admin@localhost', 'admin') def test_create_game(self): """ @@ -75,27 +72,19 @@ class GameTest(APITestCase): self.assertEqual(Game.objects.get().name, 'Tetris') self.assertEqual(Game.objects.get().collection_id, console.id) - def test_sorted_games(self): """ Check that game list is sorted. """ console = Platform.objects.create(name='BestPlatform4Ever') - Game.objects.create( - name='Pomperman', - collection=console) - Game.objects.create( - name='Vektoria', - collection=console) - Game.objects.create( - name='Qrackovitchya', - collection=console) + Game.objects.create(name='Pomperman', collection=console) + Game.objects.create(name='Vektoria', collection=console) + Game.objects.create(name='Qrackovitchya', collection=console) url = reverse('game-list') self.client.force_authenticate(user=self.superuser) response = self.client.get(url, format='json') sorted_games = list( - Game.objects.all().order_by('name').values_list( - 'name', flat=True)) + Game.objects.all().order_by('name').values_list('name', flat=True)) games = [x.get('name') for x in json.loads(response.content)] self.assertEqual(games, sorted_games) @@ -103,7 +92,7 @@ class GameTest(APITestCase): """ Check that we cannot insert a not allowed status in a Game """ - console = Platform.objects.create(name='BestPlatform4Ever') + Platform.objects.create(name='BestPlatform4Ever') url = reverse('game-list') data = { 'name': 'Vilebrequin', @@ -119,9 +108,7 @@ class TimelineTest(APITestCase): @classmethod def setUpTestData(cls): cls.superuser = User.objects.create_superuser( - 'admin', - 'admin@localhost', - 'admin') + 'admin', 'admin@localhost', 'admin') def test_create_timeline(self): """ @@ -129,9 +116,7 @@ class TimelineTest(APITestCase): """ console = Platform.objects.create(name='BestPlatform4Ever') game = Game.objects.create( - name='Cherubin', - collection=console, - status='created') + name='Cherubin', collection=console, status='created') # By default a timeline is generated with current datetime. # We need to change this date. @@ -147,10 +132,8 @@ class TimelineTest(APITestCase): } self.client.force_authenticate(user=self.superuser) response = self.client.post(url, data, format='json') - self.assertEqual( - response.status_code, - status.HTTP_201_CREATED, - response.content) + self.assertEqual(response.status_code, status.HTTP_201_CREATED, + response.content) self.assertEqual(Timeline.objects.count(), 2) def test_sorted_game_timeline(self): @@ -160,28 +143,22 @@ class TimelineTest(APITestCase): # Prepare timeline with some different dates console = Platform.objects.create(name='BestPlatform4Ever') game = Game.objects.create( - name='Symptomatic', - collection=console, - status='created') + name='Symptomatic', collection=console, status='created') game.status = 'beaten' game.save() game.status = 'completed' game.save() # Change date from Timelines - Timeline.objects.filter(status='created').update( - date='2017-03-01') - Timeline.objects.filter(status='completed').update( - date='2017-03-05') - Timeline.objects.filter(status='beaten').update( - date='2017-03-07') + Timeline.objects.filter(status='created').update(date='2017-03-01') + Timeline.objects.filter(status='completed').update(date='2017-03-05') + Timeline.objects.filter(status='beaten').update(date='2017-03-07') # Check dates url = reverse('game_timeline-list') self.client.force_authenticate(user=self.superuser) response = self.client.get(url, format='json') # sorted_timelines are datetime.date - sorted_timelines = list( - Timeline.objects.all().order_by('-date').values_list( - 'date', flat=True)) + sorted_timelines = list(Timeline.objects.all().order_by('-date') + .values_list('date', flat=True)) # dates are string date, format %Y-%m-%d dates = [x.get('date') for x in json.loads(response.content)] da = [datetime.date(datetime.strptime(x, '%Y-%m-%d')) for x in dates]