def test_header_names_must_be_unique(self): HEADERS = ( Header('field_a'), Header('field_a'), ) with self.assertRaises(ImproperlyConfigured): HeaderSet(None, HEADERS)
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), )
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)
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)))
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)
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])
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])
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, '')
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')
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])
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
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)
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=')
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)
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')
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=')
def test_non_sortable_header(self): header = Header('field_a', is_sortable=False) self.assertFalse(header.is_sortable)
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')
def test_header_with_label_declaration(self): header = Header('field_a', 'Test Label') self.assertEqual(header.label, 'Test Label')