class TestRequestFilterMixin(TestCase): def setUp(self): super(TestRequestFilterMixin, self).setUp() self.mixin = RequestFilterMixin() def test_should_build_filter_based_on_request(self): self.mixin.supported_filters = { "query": "query_filter" } filters = self.mixin.build_filters({'query': 'Unicef'}) self.assertDictEqual(filters, {'query_filter': 'Unicef'}) def test_should_not_filter_out_with_unsupported_filters(self): self.mixin.supported_filters = { "query": "query_filter" } filters = self.mixin.build_filters({'query': 'Unicef', 'unsupported_filter': 'unsupported_filter'}) self.assertNotIn('unsupported_filter', filters) def test_should_apply_additional_supported_filter(self): self.mixin.supported_filters = { "query": "query_filter", "name": "name_filter" } filters = self.mixin.build_filters({'query': 'Unicef'}, name='Unicef') self.assertDictEqual(filters, {'query_filter': 'Unicef', 'name_filter': 'Unicef'}) def test_should_build_empty_filter_when_query_params_is_none(self): self.assertDictEqual(self.mixin.build_filters(None), {})
class TestRequestFilterMixin(TestCase): def setUp(self): super(TestRequestFilterMixin, self).setUp() self.mixin = RequestFilterMixin() def test_should_build_filter_based_on_request(self): self.mixin.supported_filters = {"query": "query_filter"} filters = self.mixin.build_filters({'query': 'Unicef'}) self.assertDictEqual(filters, {'query_filter': 'Unicef'}) def test_should_not_filter_out_with_unsupported_filters(self): self.mixin.supported_filters = {"query": "query_filter"} filters = self.mixin.build_filters({ 'query': 'Unicef', 'unsupported_filter': 'unsupported_filter' }) self.assertNotIn('unsupported_filter', filters) def test_should_apply_additional_supported_filter(self): self.mixin.supported_filters = { "query": "query_filter", "name": "name_filter" } filters = self.mixin.build_filters({'query': 'Unicef'}, name='Unicef') self.assertDictEqual(filters, { 'query_filter': 'Unicef', 'name_filter': 'Unicef' }) def test_should_build_empty_filter_when_query_params_is_none(self): self.assertDictEqual(self.mixin.build_filters(None), {})
from eums.models import DistributionPlanNode, DistributionPlan, Flow from rest_framework.utils.urls import replace_query_param from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from eums.api.sorting.standard_dic_sort import StandardDicSort from eums.api.filter.filter_mixin import RequestFilterMixin from eums.permissions.stock_report_permissions import StockReportPermissions PAGE_SIZE = 10 sort = StandardDicSort('last_shipment_date', 'last_received_date', 'total_value_received', 'total_value_dispensed', 'total_value_lost', 'balance') mixin = RequestFilterMixin() class StockReport(APIView): permission_classes = (StockReportPermissions, ) def get(self, request): reduced_stock_report = filter_stock_report(request) totals = _compute_totals(reduced_stock_report) reduced_stock_report = sort.sort_by(request, reduced_stock_report) paginated_results = Paginator(reduced_stock_report, PAGE_SIZE) page_number = _get_page_number(request) results_current_page = paginated_results.page(page_number) data = {
def setUp(self): super(TestRequestFilterMixin, self).setUp() self.mixin = RequestFilterMixin()