Adds unit tests for char create and delete, fixes bugs.

This commit is contained in:
Johnny 2018-10-24 00:02:26 +00:00
parent 48b62a258a
commit 21972dac31
3 changed files with 28 additions and 2 deletions

View file

@ -20,7 +20,7 @@
<hr />
<div class="form-group">
<input class="form-control btn btn-outline-danger" type="submit" value="Submit" />
<input class="form-control btn btn-outline-danger" type="submit" value="yes" />
<input type="hidden" name="next" value="{{ next }}" />
</div>
</form>

View file

@ -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

View file

@ -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