Add test for create
This commit is contained in:
parent
83d4737027
commit
6f350c60c2
1 changed files with 26 additions and 7 deletions
|
|
@ -34,15 +34,21 @@ class TestEvenniaRESTApi(EvenniaTest):
|
||||||
|
|
||||||
def get_view_details(self, action):
|
def get_view_details(self, action):
|
||||||
"""Helper function for generating list of named tuples"""
|
"""Helper function for generating list of named tuples"""
|
||||||
View = namedtuple("View", ["view_name", "obj", "list", "serializer"])
|
View = namedtuple("View", ["view_name", "obj", "list", "serializer", "create_data"])
|
||||||
views = [
|
views = [
|
||||||
View("object-%s" % action, self.obj1, [self.obj1, self.char1, self.exit, self.room1, self.room2, self.obj2,
|
View("object-%s" % action, self.obj1, [self.obj1, self.char1, self.exit, self.room1, self.room2, self.obj2,
|
||||||
self.char2], serializers.ObjectDBSerializer),
|
self.char2], serializers.ObjectDBSerializer,
|
||||||
View("character-%s" % action, self.char1, [self.char1, self.char2], serializers.ObjectDBSerializer),
|
{"db_key": "object-create-test-name"}),
|
||||||
View("exit-%s" % action, self.exit, [self.exit], serializers.ObjectDBSerializer),
|
View("character-%s" % action, self.char1, [self.char1, self.char2], serializers.ObjectDBSerializer,
|
||||||
View("room-%s" % action, self.room1, [self.room1, self.room2], serializers.ObjectDBSerializer),
|
{"db_key": "character-create-test-name"}),
|
||||||
View("script-%s" % action, self.script, [self.script], serializers.ScriptDBSerializer),
|
View("exit-%s" % action, self.exit, [self.exit], serializers.ObjectDBSerializer,
|
||||||
View("account-%s" % action, self.account2, [self.account, self.account2], serializers.AccountDBSerializer),
|
{"db_key": "exit-create-test-name"}),
|
||||||
|
View("room-%s" % action, self.room1, [self.room1, self.room2], serializers.ObjectDBSerializer,
|
||||||
|
{"db_key": "room-create-test-name"}),
|
||||||
|
View("script-%s" % action, self.script, [self.script], serializers.ScriptDBSerializer,
|
||||||
|
{"db_key": "script-create-test-name"}),
|
||||||
|
View("account-%s" % action, self.account2, [self.account, self.account2], serializers.AccountDBSerializer,
|
||||||
|
{"username": "account-create-test-name"}),
|
||||||
]
|
]
|
||||||
return views
|
return views
|
||||||
|
|
||||||
|
|
@ -91,3 +97,16 @@ class TestEvenniaRESTApi(EvenniaTest):
|
||||||
view_url = reverse(f"api:{view.view_name}")
|
view_url = reverse(f"api:{view.view_name}")
|
||||||
response = self.client.get(view_url)
|
response = self.client.get(view_url)
|
||||||
self.assertCountEqual(response.data['results'], [view.serializer(obj).data for obj in view.list])
|
self.assertCountEqual(response.data['results'], [view.serializer(obj).data for obj in view.list])
|
||||||
|
|
||||||
|
def test_create(self):
|
||||||
|
views = self.get_view_details("list")
|
||||||
|
for view in views:
|
||||||
|
with self.subTest(msg=f"Testing {view.view_name} create"):
|
||||||
|
# create is a POST request off of <type>-list
|
||||||
|
view_url = reverse(f"api:{view.view_name}")
|
||||||
|
# check failures from not sending required fields
|
||||||
|
response = self.client.post(view_url)
|
||||||
|
self.assertEqual(response.status_code, 400)
|
||||||
|
# check success when sending the required data
|
||||||
|
response = self.client.post(view_url, data=view.create_data)
|
||||||
|
self.assertEqual(response.status_code, 201, f"Response was {response.data}")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue