From 21972dac31d86b745a0d86c81fec7e27ba5eb4af Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 24 Oct 2018 00:02:26 +0000 Subject: [PATCH] Adds unit tests for char create and delete, fixes bugs. --- .../website/object_confirm_delete.html | 2 +- evennia/web/website/tests.py | 25 +++++++++++++++++++ evennia/web/website/views.py | 3 ++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/evennia/web/website/templates/website/object_confirm_delete.html b/evennia/web/website/templates/website/object_confirm_delete.html index e42fb57de6..1073b26d0c 100644 --- a/evennia/web/website/templates/website/object_confirm_delete.html +++ b/evennia/web/website/templates/website/object_confirm_delete.html @@ -20,7 +20,7 @@
- +
diff --git a/evennia/web/website/tests.py b/evennia/web/website/tests.py index 26a81c0ea6..a45ec2d17a 100644 --- a/evennia/web/website/tests.py +++ b/evennia/web/website/tests.py @@ -97,6 +97,23 @@ class CharacterCreateView(EvenniaWebTest): url_name = 'character-create' unauthenticated_response = 302 + def test_valid_access(self): + "Account1 should be able to create a new character" + # Login account + self.login() + + # Post data for a new character + data = { + 'db_key': 'gannon', + 'desc': 'Some dude.' + } + + response = self.client.post(reverse(self.url_name), data=data, follow=True) + self.assertEqual(response.status_code, 200) + + # Make sure the character was actually created + self.assertTrue(len(self.account.db._playable_characters) > 1, 'Account only has the following characters attributed to it: %s' % self.account.db._playable_characters) + class CharacterManageView(EvenniaWebTest): url_name = 'character-manage' unauthenticated_response = 302 @@ -152,6 +169,14 @@ class CharacterDeleteView(EvenniaWebTest): response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) self.assertEqual(response.status_code, 200) + # Proceed with deleting it + data = {'value': 'yes'} + response = self.client.post(reverse(self.url_name, kwargs=self.get_kwargs()), data=data, follow=True) + self.assertEqual(response.status_code, 200) + + # Make sure it deleted + self.assertFalse(self.char1 in self.account.db._playable_characters, 'Char1 is still in Account playable characters list.') + def test_invalid_access(self): "Account1 should not be able to delete Account2:Char2" # Login account diff --git a/evennia/web/website/views.py b/evennia/web/website/views.py index 09e2705fc0..738c445061 100644 --- a/evennia/web/website/views.py +++ b/evennia/web/website/views.py @@ -345,11 +345,12 @@ class CharacterUpdateView(CharacterMixin, ObjectUpdateView): template_name = 'website/character_form.html' class CharacterDeleteView(CharacterMixin, ObjectDeleteView): - pass + success_url = reverse_lazy('character-manage') class CharacterCreateView(CharacterMixin, ObjectCreateView): template_name = 'website/character_form.html' + success_url = reverse_lazy('character-manage') def form_valid(self, form): # Get account ref