Completed
Push — master ( 5230b5...45d7c5 )
by Asif
46s
created

crudbuilder.tests.ActualViewTestCase.setUp()   A

Complexity

Conditions 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 6
rs 9.4285
1
from django.test import TestCase, Client
2
from django.contrib.auth.models import User
3
from django.conf import settings
4
5
from crudbuilder.views import ViewBuilder
6
from crudbuilder.tests.crud import TestModelCrud
7
from crudbuilder.tests.forms import TestModelForm
8
from crudbuilder.tests.tables import TestModelTable
9
10
11
class ViewBuilderTestCase(TestCase):
12
    def setUp(self):
13
        self.builder = ViewBuilder('tests', 'testmodel', TestModelCrud)
14
15
    def test_get_model_class(self):
16
        model_class = self.builder.get_model_class
17
        self.assertEqual(model_class.__name__, "TestModel")
18
19
    def test_list_view(self):
20
        list_view = self.builder.generate_list_view()
21
        self.assertEqual(list_view.__name__, "TestmodelListView")
22
        self.assertEqual(list_view.table_pagination, self.builder.tables2_pagination)
23
24
    def test_create_view(self):
25
        create_view = self.builder.generate_create_view()
26
        self.assertEqual(create_view.__name__, 'TestmodelCreateView')
27
28
    def test_detail_view(self):
29
        detail_view = self.builder.generate_detail_view()
30
        self.assertEqual(detail_view.__name__, 'TestmodelDetailView')
31
32
    def test_update_view(self):
33
        update_view = self.builder.generate_update_view()
34
        self.assertEqual(update_view.__name__, 'TestmodelUpdateView')
35
36
    def test_table_pagination(self):
37
        tables2_pagination = self.builder.tables2_pagination
38
        self.assertEqual(tables2_pagination, 20)
39
40
        # test the default pagination
41
        self.builder.tables2_pagination = None
42
        list_view = self.builder.generate_list_view()
43
        self.assertEqual(list_view.table_pagination, 10)
44
45
    def test_tables2_feilds(self):
46
        tables2_feilds = self.builder.tables2_fields
47
        self.assertEqual(tables2_feilds,  ('name', 'email'))
48
49
    def test_custom_list_view_permission(self):
50
        # test custom permission
51
        self.builder.permission_required = dict(list='mycustom_list_perm')
52
        self.assertEqual(
53
            self.builder.view_permission('list'),
54
            'mycustom_list_perm')
55
56
    def test_default_list_view_permission(self):
57
        # test auto generated (default) permission
58
        self.assertEqual(
59
            self.builder.view_permission('list'),
60
            'tests.testmodel_list')
61
62
    def test_check_crud_views(self):
63
        self.builder.generate_crud()
64
        generated_views = [
65
            view_type for view_type in self.builder.classes.keys()]
66
        expected_views = [
67
            'TestmodelCreateView',
68
            'TestmodelListView',
69
            'TestmodelDetailView',
70
            'TestmodelUpdateView',
71
            'TestmodelDeleteView'
72
        ]
73
        self.assertEqual(sorted(generated_views), sorted(expected_views))
74
75
76
class ActualViewTestCase(TestCase):
77
    def setUp(self):
78
        self.client = Client()
79
        self.user = User.objects.create_user(
80
            username='asdf',
81
            password='asdf3452',
82
            email='[email protected]')
83
84
    def client_login(self):
85
        self.client.login(
86
            username=self.user.username,
87
            password='asdf3452'
88
        )
89
90
    def get_list_view(self):
91
        self.client_login()
92
        response = self.client.get('/crud/tests/testmodels/')
93
        self.assertEqual(200, response.status_code)
94
95
    def test_user_not_logged_in(self):
96
        response = self.client.get('/crud/tests/testmodels/')
97
        self.assertEqual(302, response.status_code)
98
99
    def test_user_logged_in(self):
100
        self.get_list_view()
101
102
    def test_view_with_custom_form(self):
103
        TestModelCrud.custom_modelform = TestModelForm
104
        self.get_list_view()
105
106
    def test_view_with_custom_tables2(self):
107
        TestModelCrud.custom_table2 = TestModelTable
108
        self.get_list_view()
109
110
    def test_view_with_custom_template(self):
111
        template = 'custom.html'
112
        TestModelCrud.custom_templates = dict(list=template)
113
        self.get_list_view()
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128