2016-11-19 04:32:23 +00:00
|
|
|
from django.core.urlresolvers import reverse
|
2017-01-23 08:48:04 +00:00
|
|
|
from django.test.testcases import TestCase
|
2016-10-29 18:17:35 +00:00
|
|
|
from rest_framework.test import APIClient
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2017-02-10 03:41:01 +00:00
|
|
|
from account.models import AdminType, ProblemPermission, User, UserProfile
|
2015-08-05 00:44:28 +00:00
|
|
|
|
|
|
|
|
2016-10-29 18:17:35 +00:00
|
|
|
class APITestCase(TestCase):
|
|
|
|
client_class = APIClient
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2017-02-10 03:41:01 +00:00
|
|
|
def create_user(self, username, password, admin_type=AdminType.REGULAR_USER, login=True, problem_permission=ProblemPermission.NONE):
|
|
|
|
user = User.objects.create(username=username, admin_type=admin_type, problem_permission=problem_permission)
|
2016-10-29 18:17:35 +00:00
|
|
|
user.set_password(password)
|
2017-08-23 09:01:55 +00:00
|
|
|
UserProfile.objects.create(user=user)
|
2016-10-29 18:17:35 +00:00
|
|
|
user.save()
|
|
|
|
if login:
|
|
|
|
self.client.login(username=username, password=password)
|
|
|
|
return user
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2016-11-19 05:47:59 +00:00
|
|
|
def create_admin(self, username="admin", password="admin", login=True):
|
2017-02-10 03:41:01 +00:00
|
|
|
return self.create_user(username=username, password=password, admin_type=AdminType.ADMIN, problem_permission=ProblemPermission.OWN,
|
|
|
|
login=login)
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2016-11-19 05:47:59 +00:00
|
|
|
def create_super_admin(self, username="root", password="root", login=True):
|
2017-02-10 03:41:01 +00:00
|
|
|
return self.create_user(username=username, password=password, admin_type=AdminType.SUPER_ADMIN,
|
|
|
|
problem_permission=ProblemPermission.ALL, login=login)
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2016-11-19 04:32:23 +00:00
|
|
|
def reverse(self, url_name):
|
|
|
|
return reverse(url_name)
|
|
|
|
|
2016-10-29 18:17:35 +00:00
|
|
|
def assertSuccess(self, response):
|
2017-01-24 08:48:39 +00:00
|
|
|
if not response.data["error"] is None:
|
|
|
|
raise AssertionError("response with errors, response: " + str(response.data))
|
2015-08-05 00:44:28 +00:00
|
|
|
|
2017-02-10 07:13:03 +00:00
|
|
|
def assertFailed(self, response, msg=None):
|
2017-01-23 08:25:14 +00:00
|
|
|
self.assertTrue(response.data["error"] is not None)
|
2017-02-10 07:13:03 +00:00
|
|
|
if msg:
|
|
|
|
self.assertEqual(response.data["data"], msg)
|