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 /> <hr />
<div class="form-group"> <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 }}" /> <input type="hidden" name="next" value="{{ next }}" />
</div> </div>
</form> </form>

View file

@ -97,6 +97,23 @@ class CharacterCreateView(EvenniaWebTest):
url_name = 'character-create' url_name = 'character-create'
unauthenticated_response = 302 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): class CharacterManageView(EvenniaWebTest):
url_name = 'character-manage' url_name = 'character-manage'
unauthenticated_response = 302 unauthenticated_response = 302
@ -152,6 +169,14 @@ class CharacterDeleteView(EvenniaWebTest):
response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True) response = self.client.get(reverse(self.url_name, kwargs=self.get_kwargs()), follow=True)
self.assertEqual(response.status_code, 200) 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): def test_invalid_access(self):
"Account1 should not be able to delete Account2:Char2" "Account1 should not be able to delete Account2:Char2"
# Login account # Login account

View file

@ -345,11 +345,12 @@ class CharacterUpdateView(CharacterMixin, ObjectUpdateView):
template_name = 'website/character_form.html' template_name = 'website/character_form.html'
class CharacterDeleteView(CharacterMixin, ObjectDeleteView): class CharacterDeleteView(CharacterMixin, ObjectDeleteView):
pass success_url = reverse_lazy('character-manage')
class CharacterCreateView(CharacterMixin, ObjectCreateView): class CharacterCreateView(CharacterMixin, ObjectCreateView):
template_name = 'website/character_form.html' template_name = 'website/character_form.html'
success_url = reverse_lazy('character-manage')
def form_valid(self, form): def form_valid(self, form):
# Get account ref # Get account ref