78 lines
3.0 KiB
Python
78 lines
3.0 KiB
Python
from django.test import TestCase
|
|
from django.contrib.auth.models import User
|
|
from django.test.client import Client
|
|
from django.core.urlresolvers import reverse
|
|
from django.core import mail
|
|
import models
|
|
|
|
class InviteUseTest(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.user = User.objects.create_user('ValidUsername', 'test@example.com')
|
|
self.user.save()
|
|
self.invite = models.Invite()
|
|
self.invite.creator = self.user
|
|
self.invite.save()
|
|
|
|
def tearDown(self):
|
|
self.invite.delete()
|
|
self.user.delete()
|
|
|
|
def testTryBadInvite(self):
|
|
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code+"-invalid"}), follow=True)
|
|
self.assertEqual(404, resp.status_code)
|
|
|
|
def testTryToReuseInvite(self):
|
|
self.invite.claimer = self.user
|
|
self.invite.save()
|
|
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
|
|
self.assertEqual(404, resp.status_code)
|
|
|
|
def testTryToUseDeletedInvite(self):
|
|
self.invite.deleted = True
|
|
self.invite.save()
|
|
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
|
|
self.assertEqual(404, resp.status_code)
|
|
|
|
def testUseInvite(self):
|
|
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
def testRegisterViaInvite(self):
|
|
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
|
|
self.assertEqual(200, resp.status_code)
|
|
data = {}
|
|
data['user-username'] = 'TestUser'
|
|
data['user-password'] = 'abcd'
|
|
data['user-password_confirm'] = 'abcd'
|
|
data['user-email'] = 'email@example.com'
|
|
data['profile-mc_username'] = 'Testificate'
|
|
resp = self.client.post(reverse('local.views.register' ), data)
|
|
self.assertEqual(len(mail.outbox), 1)
|
|
|
|
class InviteManageTest(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.user = User.objects.create_user('ValidUsername', 'test@example.com', 'password')
|
|
self.user.save()
|
|
self.client.login(username='ValidUsername', password='password')
|
|
|
|
def tearDown(self):
|
|
self.user.delete()
|
|
|
|
def testCreateMaxInvites(self):
|
|
for i in range(0, 100):
|
|
self.client.get(reverse('local.views.createInvite'))
|
|
self.assertEqual(len(self.user.invites.all()), 2)
|
|
|
|
def testDeleteInvites(self):
|
|
self.client.get(reverse('local.views.createInvite'))
|
|
self.client.post(reverse('local.views.deleteInvite', kwargs={'code':self.user.invites.all()[0]}))
|
|
self.assertEqual(len(self.user.invites.exclude(deleted=True)), 0)
|
|
|
|
class AccountCreationTest(TestCase):
|
|
def testCreation(self):
|
|
user = User.objects.create_user('ValidUser', 'test@example.com')
|
|
self.assertIsNotNone(user.minecraftprofile.currencyaccount)
|
|
user.delete()
|