Skip to content

Commit 2442522

Browse files
committed
added serializer tests
1 parent 996ff5a commit 2442522

File tree

3 files changed

+58
-5
lines changed

3 files changed

+58
-5
lines changed

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ target/
5757
.venv
5858
.vagrant/
5959

60-
# Sublime Text Settings
60+
# Code editors
6161
*.sublime-*
62-
63-
# pycharm settings
6462
.idea
63+
.vscode

api/core/tests/test_serializers.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
from unittest import TestCase
2+
from rest_framework.test import APIRequestFactory
3+
4+
from api.core.serializers import StrategySerializer
5+
6+
7+
class TestStrategy(object):
8+
name = 'Test Strategy'
9+
description = 'test object for serializer testing'
10+
classifier = {
11+
"memory_depth": 1,
12+
"stochastic": False,
13+
"makes_use_of": [],
14+
"long_run_time": False,
15+
"inspects_source": False,
16+
"manipulates_source": False,
17+
"manipulates_state": False,
18+
}
19+
20+
def __init__(self):
21+
pass
22+
23+
def init_params(self):
24+
return {
25+
'rate': 0.5
26+
}
27+
28+
29+
class TestSerializers(TestCase):
30+
31+
@classmethod
32+
def setUpClass(cls):
33+
cls.factory = APIRequestFactory()
34+
cls.request = cls.factory.get('/articles/')
35+
36+
def setUp(self):
37+
self.strategy = TestStrategy()
38+
39+
def test_has_correct_fields(self):
40+
serializer = StrategySerializer(self.strategy, context={'request': self.request})
41+
for key in ['url', 'id', 'name', 'description', 'classifier', 'params']:
42+
self.assertIn(key, serializer.data)
43+
44+
def test_generates_correct_url(self):
45+
serializer = StrategySerializer(self.strategy, context={'request': self.request})
46+
self.assertEqual('http://testserver/strategies/teststrategy/', serializer.data['url'])
47+
48+
def test_generates_correct_params(self):
49+
serializer = StrategySerializer(self.strategy, context={'request': self.request})
50+
self.assertEqual({'rate': 0.5}, serializer.data['params'])
51+
52+
def test_handles_infinite_memory_depth(self):
53+
self.strategy.classifier['memory_depth'] = float('inf')
54+
serializer = StrategySerializer(self.strategy, context={'request': self.request})
55+
self.assertEqual(-1, serializer.data['classifier']['memory_depth'])
56+

api/core/tests/test_views.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33

44
from api.core.serializers import strategy_id
55

6-
76
class TestStrategy(object):
87

98
def __init__(self, name, classifier):
109
self.name = name
1110
self.classifier = classifier
12-
1311
def init_params(self):
1412
return {}
1513

0 commit comments

Comments
 (0)