コード例 #1
0
ファイル: tests.py プロジェクト: kfarr2/ITS
    def test_filter(self):

        """
        Test 1 - Checks that valuable items will be displayed when filtering for
        valuable items. Also Checks that searches based on location and category work.

        Test 2 - Checks that archived items are displayed when filtering for
        archived items.

        Test 3 - Checks that a non-valuable and non-archived items are displayed when filtering
        for non-valuable and non-archived items.

        Test 4 - Checks that items are sorted in the order specified.

        Test 5 - Search on last name
        """

        # Test 1 - Valuable item / Search on location and category.

        new_item1 = make(Item, is_archived=False, is_valuable=True)
        new_action = Action.objects.get(machine_name=Action.CHECKED_IN)
        make(Status, action_taken=new_action, item=new_item1)

        data = {'select_items': "valuable",
                'select_location': new_item1.location.name,
                'select_category': new_item1.category.name,
                'keyword_or_last_name': new_item1.description,
                'sort_by': '', }

        item_filter_form = AdminItemFilterForm(data)
        item_list = item_filter_form.filter()

        values = item_list.values()

        self.assertEqual(values.get()['item_id'], new_item1.pk)

        # Test 2 - Archived item

        new_item2 = make(Item, is_archived=True, is_valuable=True)

        data = {'select_items': "archived",
                'select_location': None,
                'select_category': None,
                'keyword_or_last_name': new_item2.description,
                'sort_by': '', }

        with patch('its.items.forms.AdminItemFilterForm.is_valid', return_value=True):
            item_filter_form = AdminItemFilterForm(data)
            item_filter_form.cleaned_data = data
            item_list = item_filter_form.filter()
            values = item_list.values()

            self.assertEqual(values.get()['item_id'], new_item2.pk)

        # Test 3 - not valuable, not archived item
        new_item3 = make(Item, is_archived=False, is_valuable=False)

        data = {'select_items': "",
                'select_location': None,
                'select_category': None,
                'keyword_or_last_name': new_item3.description,
                'sort_by': '', }

        with patch('its.items.forms.AdminItemFilterForm.is_valid', return_value=True):
            item_filter_form = AdminItemFilterForm(data)
            item_filter_form.cleaned_data = data
            item_list = item_filter_form.filter()
            values = item_list.values()

            self.assertEqual(values.get()['item_id'], new_item3.pk)

        # Test 4 - test item sorting
        make(Item, is_archived=False, is_valuable=False)

        data = {'select_items': "",
                'select_location': None,
                'select_category': None,
                'keyword_or_last_name': '',
                'sort_by': 'pk', }

        with patch('its.items.forms.AdminItemFilterForm.is_valid', return_value=True):
            item_filter_form = AdminItemFilterForm(data)
            item_filter_form.cleaned_data = data
            item_list = item_filter_form.filter()
            values = item_list.values()

            self.assertLess(values[0]['item_id'], values[1]['item_id'])
            self.assertLess(values[1]['item_id'], values[2]['item_id'])

        # Test 5 - Search on last name
        user = create_full_user("test", "test", "*****@*****.**")

        new_item5 = make(Item, is_archived=False, is_valuable=False, possible_owner=user)

        data = {'select_items': "",
                'select_location': None,
                'select_category': None,
                'keyword_or_last_name': user.last_name,
                'sort_by': '', }

        with patch('its.items.forms.AdminItemFilterForm.is_valid', return_value=True):
            item_filter_form = AdminItemFilterForm(data)
            item_filter_form.cleaned_data = data
            item_list = item_filter_form.filter()
            values = item_list.values()

            self.assertEqual(values.get()['item_id'], new_item5.pk)