def test_can_filter_by_spare_part_name(self): spare_part1 = SparePartFactory() spare_part2 = SparePartFactory() response = self.client.get('/store/?q=%s' % '+'.join(spare_part1.name.split())) self.assertEqual(list(response.context['spare_parts']), [spare_part1]) response = self.client.get('/store/?q=%s' % '+'.join(spare_part2.name.split())) self.assertEqual(list(response.context['spare_parts']), [spare_part2])
def test_can_filter_by_brand_name(self): brand1 = BrandFactory() brand2 = BrandFactory() spare_part1 = SparePartFactory(brand=brand1) spare_part2 = SparePartFactory(brand=brand2) response = self.client.get('/store/?q=%s' % '+'.join(brand1.name.split())) self.assertEqual(list(response.context['spare_parts']), [spare_part1]) response = self.client.get('/store/?q=%s' % '+'.join(brand2.name.split())) self.assertEqual(list(response.context['spare_parts']), [spare_part2])
def setUp(self): self.brand1 = BrandFactory() self.brand2 = BrandFactory() self.brand3 = BrandFactory() for _ in range(5): SparePartFactory(brand=self.brand1) SparePartFactory(brand=self.brand2) SparePartFactory(brand=self.brand1) self.response = self.client.get('/store/stats/')
def test_can_get_top_brands_stats(self): brand1 = BrandFactory() brand2 = BrandFactory() BrandFactory() # Brand with less than 5 items for _ in range(5): SparePartFactory(brand=brand1) SparePartFactory(brand=brand2) SparePartFactory(brand=brand1) url = '/api/stats/' response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2) self.assertEqual([response.data[0]['name'], response.data[1]['name']], [brand1.name, brand2.name])
def test_can_search_by_brand_name(self): url = '/api/list/?search=%s' spare_parts = [SparePartFactory() for _ in range(11)] search = '+'.join(spare_parts[3].brand.name.split()) response = self.client.get(url % search) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['results'][0]['brand']['name'], spare_parts[3].brand.name)
def test_get_spare_part_list(self): url = '/api/list/' for _ in range(11): SparePartFactory() response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['count'], 11) # Total spare parts self.assertTrue( response.data['next'].endswith('?page=2')) # Pagination online self.assertEqual(len(response.data['results']), 10) # Limit number os items per page
def setUp(self): self.spare_part = SparePartFactory() self.response = self.client.get('/store/%d/' % self.spare_part.id)
def test_returns_last_page_if_page_is_out_of_range(self): spare_parts = [SparePartFactory() for _ in range(11)] response = self.client.get('/store/?page=999') self.assertEqual(list(response.context['spare_parts']), [spare_parts[10]])
def test_second_page_returns_correct_spare_parts(self): spare_parts = [SparePartFactory() for _ in range(21)] response = self.client.get('/store/?page=2') self.assertEqual(list(response.context['spare_parts']), spare_parts[10:20])
def test_returns_10_parts_by_page(self): spare_parts = [SparePartFactory() for _ in range(11)] response = self.client.get('/store/') self.assertEqual(list(response.context['spare_parts']), spare_parts[:10])