c0aefdef29
Signed-off-by: volpino <fox91@anche.no>
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
from urllib import urlencode
|
|
|
|
from django.test import TestCase
|
|
from django.test.client import Client
|
|
from django.core.urlresolvers import reverse
|
|
from django.contrib.auth.models import User
|
|
|
|
from djeuscan.tests.euscan_factory import UserFactory
|
|
|
|
|
|
class SystemTestCase(TestCase):
|
|
"""
|
|
Base class for system tests
|
|
"""
|
|
fixtures = ["test_data.json"]
|
|
|
|
def setUp(self):
|
|
self.client = Client()
|
|
|
|
def get(self, url_name, *args, **kwargs):
|
|
param = kwargs.pop("param", None)
|
|
if param:
|
|
url = "%s?%s" % (reverse(url_name, args=args, kwargs=kwargs),
|
|
urlencode(param))
|
|
else:
|
|
url = reverse(url_name, args=args, kwargs=kwargs)
|
|
return self.client.get(url)
|
|
|
|
def post(self, url_name, *args, **kwargs):
|
|
data = kwargs.pop("data", {})
|
|
url = reverse(url_name, args=args, kwargs=kwargs)
|
|
return self.client.post(url, data)
|
|
|
|
def login(self):
|
|
user = UserFactory.build()
|
|
user.set_password("pass")
|
|
user.save()
|
|
return Login(self, user.username, "pass")
|
|
|
|
|
|
class Login(object):
|
|
def __init__(self, testcase, user, password):
|
|
self.testcase = testcase
|
|
success = testcase.client.login(username=user, password=password)
|
|
self.testcase.assertTrue(
|
|
success,
|
|
"login with username=%r, password=%r failed" % (user, password)
|
|
)
|
|
|
|
def __enter__(self):
|
|
pass
|
|
|
|
def __exit__(self, *args):
|
|
self.testcase.client.logout()
|
|
|
|
from test_models import *
|
|
from test_views import *
|
|
from test_charts import *
|