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)