Completed
Push — master ( 1431df...00fc17 )
by Asif
53s
created

crudbuilder.tests.ViewTestCase.setUp()   A

Complexity

Conditions 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 9
rs 9.6666
1
from django.test import TestCase, Client
2
from django.contrib.auth.models import User
3
from django.core.urlresolvers import reverse
4
from django.test.utils import override_settings
5
6
from crudbuilder.tests.models import TestModel
7
from crudbuilder.tests.crud import TestModelCrud
8
from crudbuilder.tests.forms import TestModelForm
9
from crudbuilder.tests.tables import TestModelTable
10
11
12
class ViewTestCase(TestCase):
13
    def setUp(self):
14
        self.client = Client()
15
        TestModelCrud.custom_modelform = TestModelForm
16
        TestModelCrud.custom_table2 = TestModelTable
17
18
        self.user = User.objects.create_user(
19
            username='asdf',
20
            password='asdf3452',
21
            email='[email protected]')
22
23
    def client_login(self):
24
        self.client.login(
25
            username=self.user.username,
26
            password='asdf3452'
27
        )
28
29
    def get_list_view(self):
30
        self.client_login()
31
        response = self.client.get(reverse('tests-testmodel-list'))
32
        self.assertEqual(200, response.status_code)
33
34
    def test_user_not_logged_in(self):
35
        response = self.client.get(reverse('tests-testmodel-list'))
36
        self.assertEqual(302, response.status_code)
37
38
    def tearDown(self):
39
        TestModelCrud.custom_table2 = None
40
        TestModelCrud.custom_modelform = None
41
42
    def test_user_logged_in(self):
43
        self.get_list_view()
44
45
    def test_view_with_default_form(self):
46
        TestModelCrud.custom_modelform = None
47
        self.get_list_view()
48
49
    def test_view_with_default_tables2(self):
50
        TestModelCrud.custom_table2 = None
51
        self.get_list_view()
52
53
    def test_invalid_entry_create(self):
54
        self.client_login()
55
        data = {'name': 'Test text', 'email': 'same.org'}
56
        response = self.client.post('/crud/tests/testmodels/create/', data)
57
        self.assertEqual(response.status_code, 200)
58
        self.assertFormError(
59
            response, "form", "email", "Enter a valid email address.")
60
61
    def test_valid_entry_create(self):
62
        self.client_login()
63
        data = {'name': 'Test text', 'email': '[email protected]'}
64
        self.assertEqual(TestModel.objects.count(), 0)
65
66
        response = self.client.post('/crud/tests/testmodels/create/', data)
67
        self.assertEqual(response.status_code, 302)
68
        self.assertEqual(TestModel.objects.count(), 1)
69
70
        TestModelCrud.custom_modelform = TestModelForm
71
        response = self.client.post('/crud/tests/testmodels/1/update/', data)
72
        self.assertEqual(response.status_code, 302)
73
74
    @override_settings(PERMISSION_REQUIRED_FOR_CRUD=True)
75
    def test_permission_required_enabled(self):
76
        self.client_login()
77
        response = self.client.get('/crud/tests/testmodels/')
78
        self.assertEqual(302, response.status_code)
79
80
    def test_search_list(self):
81
        self.client_login()
82
        response = self.client.get('/crud/tests/testmodels/?search=some_text')
83
        self.assertEqual(200, response.status_code)
84
85
    @override_settings(LOGIN_REQUIRED_FOR_CRUD=False)
86
    def test_no_login(self):
87
        response = self.client.get(reverse('tests-testmodel-list'))
88
        self.assertEqual(200, response.status_code)
89
90
91