test_prepare_filenames_index()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
1
# coding=utf-8
2
"""
3
"""
4
__author__ = 'Alisue <[email protected]>'
5
from django.test import TestCase
6
from roughpages import backends
7
from roughpages.tests.compat import MagicMock, override_settings
8
9
10
@override_settings(
11
    ROUGHPAGES_BACKEND='roughpages.backends.AuthTemplateFilenameBackend',
12
)
13
class RoughpagesBackendsTestCase(TestCase):
14
    def setUp(self):
15
        # clear cache
16
        if hasattr(backends.get_backend, '_backend_instance'):
17
            del backends.get_backend._backend_instance
18
19
    def test_get_backend(self):
20
        backend = backends.get_backend()
21
        self.assertTrue(isinstance(backend,
22
                                   backends.AuthTemplateFilenameBackend))
23
24
    def test_get_backend_with_string(self):
25
        backend = backends.get_backend(
26
            'roughpages.backends.PlainTemplateFilenameBackend')
27
        self.assertTrue(isinstance(backend,
28
                                   backends.PlainTemplateFilenameBackend))
29
30
    def test_get_backend_with_instance(self):
31
        backend = backends.get_backend(backends.PlainTemplateFilenameBackend)
32
        self.assertTrue(isinstance(backend,
33
                                   backends.PlainTemplateFilenameBackend))
34
35
36
class RoughpagesTemplateFilenameBackendBaseTestCase(TestCase):
37
    def setUp(self):
38
        self.backend = backends.TemplateFilenameBackendBase()
39
        self.request = MagicMock()
40
41
    def test_prepare_filenames_raise_exception(self):
42
        """prepare_filenames should raise NotImplementedError"""
43
        self.assertRaises(NotImplementedError,
44
                          self.backend.prepare_filenames,
45
                          'foo/bar/hoge',
46
                          self.request)
47
48
49
class RoughpagesPlainTemplateFilenameBackendTestCase(TestCase):
50
    def setUp(self):
51
        self.backend = backends.PlainTemplateFilenameBackend()
52
        self.request = MagicMock()
53
54
    def test_prepare_filenames(self):
55
        """prepare_filenames should return a list with original filename"""
56
        r = self.backend.prepare_filenames('foo/bar/hoge',
57
                                           self.request)
58
        self.assertEqual(r, ['foo/bar/hoge.html'])
59
60
    def test_prepare_filenames_index(self):
61
        """prepare_filenames should return a list with original filename"""
62
        r = self.backend.prepare_filenames('',
63
                                           self.request)
64
        self.assertEqual(r, ['index.html'])
65
66
67
class RoughpagesAuthTemplateFilenameBackendTestCase(TestCase):
68
    def setUp(self):
69
        self.backend = backends.AuthTemplateFilenameBackend()
70
        self.annonymous_request = MagicMock()
71
        self.annonymous_request.user.is_authenticated.return_value = False
72
        self.authenticated_request = MagicMock()
73
        self.authenticated_request.user.is_authenticated.return_value = True
74
75
    def test_prepare_filenames_with_anonymous(self):
76
        """prepare_filenames should return a list for anonymous user"""
77
        r = self.backend.prepare_filenames('foo/bar/hoge',
78
                                           self.annonymous_request)
79
        self.assertEqual(r, [
80
            'foo/bar/hoge.anonymous.html',
81
            'foo/bar/hoge.html',
82
        ])
83
84
    def test_prepare_filenames_with_anonymous_index(self):
85
        """prepare_filenames should return a list for anonymous user"""
86
        r = self.backend.prepare_filenames('',
87
                                           self.annonymous_request)
88
        self.assertEqual(r, [
89
            'index.anonymous.html',
90
            'index.html',
91
        ])
92
93
    def test_prepare_filenames_with_authenticated(self):
94
        """prepare_filenames should return a list for authenticated user"""
95
        r = self.backend.prepare_filenames('foo/bar/hoge',
96
                                           self.authenticated_request)
97
        self.assertEqual(r, [
98
            'foo/bar/hoge.authenticated.html',
99
            'foo/bar/hoge.html',
100
        ])
101
102
    def test_prepare_filenames_with_authenticated_index(self):
103
        """prepare_filenames should return a list for authenticated user"""
104
        r = self.backend.prepare_filenames('',
105
                                           self.authenticated_request)
106
        self.assertEqual(r, [
107
            'index.authenticated.html',
108
            'index.html',
109
        ])
110