Exemplo n.º 1
0
 def test_header_names_must_be_unique(self):
     HEADERS = (
         Header('field_a'),
         Header('field_a'),
     )
     with self.assertRaises(ImproperlyConfigured):
         HeaderSet(None, HEADERS)
Exemplo n.º 2
0
 class TestSortForm(SortForm):
     model = ChangeListModel
     HEADERS = (
         Header('field_a'),
         Header('field_b'),
         Header('named_header', column_name='field_c'),
         Header('not_sortable', is_sortable=False),
     )
Exemplo n.º 3
0
 def test_header_set_declared_as_header_classes(self):
     HEADERS = (
         Header('field_a'),
         Header('field_b', 'Test Label'),
         Header('test_name', 'Test Name', column_name='field_c'),
         Header('created_at', is_sortable=False),
     )
     self.do_header_set_assertions(HEADERS)
Exemplo n.º 4
0
    def test_iteration_yields_bound_headers(self):
        HEADERS = (
            Header('field_a'),
            Header('field_b', 'Test Label'),
            Header('test_name', 'Test Name', column_name='field_c'),
            Header('created_at', is_sortable=False),
        )
        form = mock.NonCallableMagicMock(forms.Form)
        form.prefix = None
        header_set = HeaderSet(form, HEADERS)

        self.assertTrue(
            all((isinstance(header, BoundHeader) for header in header_set)))
Exemplo n.º 5
0
 def test_sort_priority_display(self):
     HEADERS = (
         Header('field_a'),
         Header('field_b'),
         Header('field_c'),
     )
     self.form.data = {'sorts': '-2.1'}
     self.form.cleaned_data = {'sorts': [-2, 1]}
     self.form.HEADERS = HEADERS
     header_set = HeaderSet(self.form, HEADERS)
     self.assertEqual(header_set['field_a'].priority, 2)
     self.assertEqual(header_set['field_b'].priority, 1)
     self.assertEqual(header_set['field_c'].priority, None)
Exemplo n.º 6
0
 def test_add_to_sorts_with_active_sorts(self):
     HEADERS = (
         Header('field_a'),
         Header('field_b'),
         Header('field_c'),
     )
     self.form.data = {'sorts': '1.-2'}
     self.form.cleaned_data = {'sorts': [1, -2]}
     self.form.HEADERS = HEADERS
     header_set = HeaderSet(self.form, HEADERS)
     self.assertEqual(header_set['field_a'].add_to_sorts(), [-1, -2])
     self.assertEqual(header_set['field_b'].add_to_sorts(), [2, 1])
     self.assertEqual(header_set['field_c'].add_to_sorts(), [3, 1, -2])
Exemplo n.º 7
0
 def test_add_to_sorts_with_no_sorts(self):
     HEADERS = (
         Header('field_a'),
         Header('field_b'),
         Header('field_c'),
     )
     self.form.data = {}
     self.form.cleaned_data = {'sorts': []}
     self.form.HEADERS = HEADERS
     header_set = HeaderSet(self.form, HEADERS)
     self.assertEqual(header_set['field_a'].add_to_sorts(), [1])
     self.assertEqual(header_set['field_b'].add_to_sorts(), [2])
     self.assertEqual(header_set['field_c'].add_to_sorts(), [3])
Exemplo n.º 8
0
 def test_css_classes(self):
     HEADERS = (
         Header('field_a'),
         Header('field_b'),
         Header('field_c'),
     )
     self.form.data = {'sorts': '1.-2'}
     self.form.cleaned_data = {'sorts': [1, -2]}
     self.form.HEADERS = HEADERS
     header_set = HeaderSet(self.form, HEADERS)
     self.assertEqual(header_set['field_a'].css_classes, 'active ascending')
     self.assertEqual(header_set['field_b'].css_classes,
                      'active descending')
     self.assertEqual(header_set['field_c'].css_classes, '')
Exemplo n.º 9
0
    def test_header_bare_declaration(self):
        header = Header('field_a')

        self.assertTrue(header.is_sortable)
        self.assertEqual(header.name, 'field_a')
        self.assertEqual(header.column_name, 'field_a')
        self.assertEqual(header.label, 'Field a')
Exemplo n.º 10
0
    def test_index_and_key_lookups(self):
        HEADERS = (
            Header('field_a'),
            Header('field_b', 'Test Label'),
            Header('test_name', 'Test Name', column_name='field_c'),
            Header('created_at', is_sortable=False),
        )
        form = mock.NonCallableMagicMock(forms.Form)
        form.prefix = None
        header_set = HeaderSet(form, HEADERS)

        self.assertIsInstance(header_set[0], BoundHeader)
        self.assertEqual(header_set[0].header, HEADERS[0])

        self.assertIsInstance(header_set['field_b'], BoundHeader)
        self.assertEqual(header_set['field_b'].header, HEADERS[1])
Exemplo n.º 11
0
 def setUp(self):
     self.HEADERS = (Header('test_name',
                            'Test Label',
                            'column_name',
                            is_sortable=True), )
     self.form = mock.NonCallableMagicMock(forms.Form)
     self.form.prefix = None
     self.form.HEADERS = self.HEADERS
Exemplo n.º 12
0
 def test_header_set_mixed_declaration_styles(self):
     HEADERS = (
         'field_a',
         ('field_b', 'Test Label'),
         ('test_name', {
             'label': 'Test Name',
             'column_name': 'field_c'
         }),
         Header('created_at', is_sortable=False),
     )
     self.do_header_set_assertions(HEADERS)
Exemplo n.º 13
0
    def test_bound_header_querystring_with_querydict(self):
        HEADERS = (Header('field_a'), )
        self.form.data = QueryDict('field=value')
        self.form.cleaned_data = {'field': 'value'}
        self.form.HEADERS = HEADERS
        header_set = HeaderSet(self.form, HEADERS)

        self.assertQueryStringEqual(header_set['field_a'].querystring,
                                    'field=value&sorts=1')
        self.assertQueryStringEqual(header_set['field_a'].singular_querystring,
                                    'field=value&sorts=1')
        self.assertQueryStringEqual(header_set['field_a'].remove_querystring,
                                    'field=value&sorts=')
Exemplo n.º 14
0
 def test_bad_header_declaration(self):
     HEADERS = (
         {
             'bad_declaration': 'test'
         },
         ('field_b', 'Test Label'),
         ('test_name', {
             'label': 'Test Name',
             'column_name': 'field_c'
         }),
         Header('created_at', is_sortable=False),
     )
     with self.assertRaises(ImproperlyConfigured):
         self.do_header_set_assertions(HEADERS)
Exemplo n.º 15
0
    def test_bound_header_querystring_properties(self):
        HEADERS = (
            Header('field_a'),
            Header('field_b'),
            Header('field_c'),
        )
        self.form.data = {'sorts': '1.-2'}
        self.form.cleaned_data = {'sorts': [1, -2]}
        self.form.HEADERS = HEADERS
        header_set = HeaderSet(self.form, HEADERS)

        self.assertEqual(header_set['field_a'].querystring, 'sorts=-1.-2')
        self.assertEqual(header_set['field_a'].singular_querystring,
                         'sorts=-1')
        self.assertEqual(header_set['field_a'].remove_querystring, 'sorts=-2')

        self.assertEqual(header_set['field_b'].querystring, 'sorts=2.1')
        self.assertEqual(header_set['field_b'].singular_querystring, 'sorts=2')
        self.assertEqual(header_set['field_b'].remove_querystring, 'sorts=1')

        self.assertEqual(header_set['field_c'].querystring, 'sorts=3.1.-2')
        self.assertEqual(header_set['field_c'].singular_querystring, 'sorts=3')
        self.assertEqual(header_set['field_c'].remove_querystring,
                         'sorts=1.-2')
Exemplo n.º 16
0
    def test_bound_header_querystring_with_querydict_overwrites_instead_of_appending(
            self):
        HEADERS = (Header('field_a'), )
        self.form.data = QueryDict('field=value&sorts=1')
        self.form.cleaned_data = {'field': 'value', 'sorts': [1]}
        self.form.HEADERS = HEADERS
        header_set = HeaderSet(self.form, HEADERS)

        # It used to output 'field=value&sorts=1&sorts=-1'
        self.assertQueryStringEqual(header_set['field_a'].querystring,
                                    'field=value&sorts=-1')
        self.assertQueryStringEqual(header_set['field_a'].singular_querystring,
                                    'field=value&sorts=-1')
        self.assertQueryStringEqual(header_set['field_a'].remove_querystring,
                                    'field=value&sorts=')
Exemplo n.º 17
0
    def test_non_sortable_header(self):
        header = Header('field_a', is_sortable=False)

        self.assertFalse(header.is_sortable)
Exemplo n.º 18
0
    def test_header_with_column_declared(self):
        header = Header('not_a_column', column_name='field_a')

        self.assertEqual(header.name, 'not_a_column')
        self.assertEqual(header.column_name, 'field_a')
Exemplo n.º 19
0
    def test_header_with_label_declaration(self):
        header = Header('field_a', 'Test Label')

        self.assertEqual(header.label, 'Test Label')