You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

64 lines
1.9 KiB

from abc import ABCMeta
from django.conf import settings
from django.shortcuts import resolve_url
from django.test import TestCase
from accounts_app.models import UserProfile
from group_app.models import Group
from tariff_app.models import Tariff
class MyBaseTestCase(metaclass=ABCMeta):
def _client_get_check_login(self, url):
"""
Checks if url is protected from unauthorized access
:param url:
:return: authorized response
"""
r = self.client.get(url)
self.assertRedirects(r, "%s?next=%s" % (getattr(settings, 'LOGIN_URL'), url))
self.client.force_login(self.adminuser)
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
return r
def setUp(self):
grp = Group.objects.create(title='Grp1')
my_admin = UserProfile.objects.create_superuser('+79781234567', 'local_superuser', 'ps')
self.adminuser = my_admin
self.group = grp
class ServiceTestCase(MyBaseTestCase, TestCase):
def setUp(self):
super(ServiceTestCase, self).setUp()
trf = Tariff.objects.create(
title='test',
descr='Some descr',
speedIn=10.0,
speedOut=2.0,
amount=1.0,
calc_type='Df'
)
trf.groups.add(self.group.pk)
trf.save()
self.tariff = trf
def test_add_same_services(self):
print('test_add_same_services')
url = resolve_url('tariff_app:add')
self._client_get_check_login(url)
self.client.post(url, data={
'title': 'same srv',
'descr': 'descriptive',
'speedIn': 10.0,
'speedOut': 2.0,
'amount': 1.0,
'calc_type': 'Df'
})
try:
Tariff.objects.get(title='same srv')
raise self.failureException('Services cannot be saved because it duplicates other service')
except Tariff.DoesNotExist:
pass