OnlineJudge/utils/api/tests.py

33 lines
1.2 KiB
Python
Raw Normal View History

2016-10-29 18:17:35 +00:00
from django.test.testcases import TestCase
2016-11-19 04:32:23 +00:00
from django.core.urlresolvers import reverse
2016-10-29 18:17:35 +00:00
from rest_framework.test import APIClient
2016-10-29 18:17:35 +00:00
from account.models import User, AdminType
2016-10-29 18:17:35 +00:00
class APITestCase(TestCase):
client_class = APIClient
def create_user(self, username, password, admin_type=AdminType.REGULAR_USER, login=True):
2016-10-29 18:17:35 +00:00
user = User.objects.create(username=username, admin_type=admin_type)
user.set_password(password)
user.save()
if login:
self.client.login(username=username, password=password)
return user
def create_admin(self, username="admin", password="admin", login=True):
2016-10-29 18:17:35 +00:00
return self.create_user(username=username, password=password, admin_type=AdminType.ADMIN, login=login)
def create_super_admin(self, username="root", password="root", login=True):
2016-10-29 18:17:35 +00:00
return self.create_user(username=username, password=password, admin_type=AdminType.SUPER_ADMIN, login=login)
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):
self.assertTrue(response.data["error"] is None)
2016-10-29 18:17:35 +00:00
def assertFailed(self, response):
self.assertTrue(response.data["error"] is not None)