def test_get_queryset(self): j = JQueryDataTableMixin() j.model = mock.Mock() q = j.get_queryset() self.assertEqual( q._extract_mock_name(), "mock.objects.all()" )
def test_apply_filter_without_search_value(self, mocked_parse): q = mock.Mock() j = JQueryDataTableMixin() j.request = mock.Mock() self.assertEqual( j.apply_filter(q), q )
def test_get_table_data_with_object_list( self, mocked_get_queryset, mocked_queryset_count, mocked_apply_filter, mocked_order, mocked_paginate_objects, mocked_get_row, mocked_get_row_identifier, mocked_get_row_href ): j = JQueryDataTableMixin() mocked_queryset = mock.Mock() mocked_apply_filter.return_value = mocked_queryset mocked_get_queryset.return_value = mocked_apply_filter mocked_get_queryset.return_value = mocked_queryset mocked_queryset_count.return_value = 1 mocked_apply_filter.return_value = mocked_queryset mocked_order.return_value = mocked_queryset paginator_object = mock.Mock() paginator_object.count = 2 page_object = mock.Mock() page_object.object_list = [1, 2, 3] mocked_paginate_objects.return_value = paginator_object, page_object mocked_get_row.return_value = {} mocked_get_row_identifier.return_value = 3 mocked_get_row_href.return_value = "" j.request = mock.Mock() j.request.GET.get = mock.Mock() j.request.GET.get.return_value = 4 result = j.get_table_data() expected = { "draw": 4, "recordsTotal": 1, "recordsFiltered": 2, "data": [ {"DT_RowData": { "pk": 3, "href": "" }}, {"DT_RowData": { "pk": 3, "href": "" }}, {"DT_RowData": { "pk": 3, "href": "" }} ] } self.assertEqual( DeepDiff(expected, result), {} )
def test_get_rows(self): j = JQueryDataTableMixin() j.columns = ["some_column"] o = mock.Mock() o.some_column = "some_column_value" row = j.get_row(o) self.assertEqual( row, { 'some_column': 'some_column_value' } )
def test_apply_filter_without_searchable_fields(self, mocked_parse): mocked_parse.return_value = { "search": { "value": "some value" } } q = mock.Mock() j = JQueryDataTableMixin() j.request = mock.Mock() new_queryset = j.apply_filter(q) self.assertEqual( j.apply_filter(q), q )
def test_apply_filter_with_searchable_fields(self, mocked_parse, mocked_get_inputs): mocked_get_inputs.return_value = mock.Mock() mocked_parse.return_value = { "search": { "value": "some value" } } q = mock.Mock() j = JQueryDataTableMixin() j.searchable_fields = ["some field"] j.request = mock.Mock() new_queryset = j.apply_filter(q) self.assertEqual( new_queryset._extract_mock_name(), "mock.annotate().filter()" )
def test(self): with mock.patch("accountancy.views.JQueryDataTableMixin.order_by") as mocked_order_by, \ mock.patch("accountancy.views.get_value") as mocked_get_value, \ mock.patch("accountancy.views.sort_multiple") as mocked_sort_multiple: mocked_order_by.return_value = ["total", "-ref"] mocked_get_value.return_value = "a" j = JQueryDataTableMixin() j.order_objects([mock.Mock()]) args, kwargs = mocked_sort_multiple.call_args_list[0] self.assertEqual( args[1][1], False ) self.assertEqual( args[2][1], True )