def test_query_create_raises_value_error_when_kwarg_key_is_not_in_concrete_fields(self): qs = MockSet( model=create_model('first', 'second', 'third') ) attrs = dict(first=1, second=2, third=3, fourth=4) with self.assertRaises(FieldError): qs.create(**attrs)
def test_query_create_raises_value_error_when_kwarg_key_is_not_in_concrete_fields(self): qs = MockSet( model=create_model('first', 'second', 'third') ) attrs = dict(first=1, second=2, third=3, fourth=4) with self.assertRaises(FieldError): qs.create(**attrs)
class SellerViewTests(WebTest): def setUp(self): self.seller_qs = MockSet(model=Seller) self.category_qs = MockSet(model=Category) self.sale_qs = MockSet(model=Sale) self.seller = self.seller_qs.create( username='******', email='*****@*****.**', password='******', phone='+7-952-952-52-38' ) self.category1 = self.category_qs.create(category_name='Category1') self.category2 = self.category_qs.create(category_name='Category2') self.sale1 = self.sale_qs.create( title='1-title', body='1-body', photo='', price=1000, category=self.category1, author=self.seller ) self.sale2 = self.sale_qs.create( title='2-title', body='2-body', photo='', price=2000, category=self.category2, author=self.seller ) def test_basic_view(self): with patch.object(SellerDetail, 'get_object', return_value=self.seller): url = reverse('seller_detail', kwargs={'pk': 1}) # pk can be anything response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_sale_list_on_seller_guest_page(self): with patch.object(SellerDetail, 'get_object', return_value=self.seller): url = reverse('seller_detail', kwargs={'pk': 1}) # pk can be anything response = self.client.get(url) for sale in self.seller.get_sales_list(): self.assertContains(response, sale.title) self.assertContains(response, sale.category) def test_sale_list_on_seller_auth_page(self): with patch.object(SellerDetail, 'get_object', return_value=self.seller): url = reverse('seller_detail', kwargs={'pk': 1}) # pk can be anything response = self.client.get(url) for sale in self.seller.get_sales_list(): self.assertContains(response, sale.title) self.assertContains(response, sale.category) self.assertIn(sale.get_update_url(), response.content.decode()) self.assertIn(sale.get_delete_url(), response.content.decode())
def test_pagination_is_ten(self): sale_qs = MockSet(model=Sale) for i in range(15): sale_qs.create(pk=i, title='Title ' + str(i), body='Body ' + str(i), photo='', price=1000 * i, category=self.category1, author=self.seller) with patch.object(HomeView, 'get_queryset', return_value=sale_qs): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) self.assertTrue('is_paginated' in response.context) self.assertTrue(response.context['is_paginated'] == True) self.assertTrue(len(response.context['sale_list']) == 10)
def test_query_creates_new_model_and_adds_to_set(self): qs = MockSet(model=create_model('foo', 'bar', 'none')) attrs = dict(foo=1, bar='a') obj = qs.create(**attrs) assert obj in [x for x in qs] assert hasattr(obj, 'foo') and obj.foo == 1 assert hasattr(obj, 'bar') and obj.bar == 'a' assert hasattr(obj, 'none') and obj.none is None
def test_query_creates_new_model_and_adds_to_set(self): qs = MockSet(model=create_model('foo', 'bar', 'none')) attrs = dict(foo=1, bar='a') obj = qs.create(**attrs) obj.save.assert_called_once_with(force_insert=True, using=ANY) assert obj in [x for x in qs] assert hasattr(obj, 'foo') and obj.foo == 1 assert hasattr(obj, 'bar') and obj.bar == 'a' assert hasattr(obj, 'none') and obj.none is None
def test_query_creates_new_model_and_adds_to_set(self): qs = MockSet(model=create_model('foo', 'bar', 'none')) attrs = dict(foo=1, bar='a') obj = qs.create(**attrs) assert obj in [x for x in qs] assert hasattr(obj, 'foo') and obj.foo == 1 assert hasattr(obj, 'bar') and obj.bar == 'a' assert hasattr(obj, 'none') and obj.none is None
def test_two_sales(self): sale_qs = MockSet(model=Sale) sale1 = sale_qs.create(pk=1, title='1-title', body='1-body', photo='', price=1000, category=self.category1, author=self.seller) sale2 = sale_qs.create(pk=2, title='2-title', body='2-body', photo='', price=2000, category=self.category2, author=self.seller) with patch.object(HomeView, 'get_queryset', return_value=sale_qs): response = self.client.get(reverse('home')) self.assertContains(response, '1-title') self.assertContains(response, '2-title')
def test_query_creates_new_model_and_adds_to_set(self): qs = MockSet(cls=MockModel) attrs = dict(foo=1, bar='a') obj = qs.create(**attrs) obj.save.assert_called_once_with(force_insert=True, using=ANY) assert obj in [x for x in qs] for k, v in attrs.items(): assert getattr(obj, k, None) == v
def test_valid_user_creation(self): seller_qs = MockSet(model=Seller) seller = seller_qs.create(username='******', password='******', email='*****@*****.**', phone='+7-952-952-52-38', first_name='Andrei', last_name='Borodin', middle_name='Olegovich') self.assertEqual(seller.username, 'borodin_a_o') self.assertEqual(seller.password, 'password') self.assertEqual(seller.email, '*****@*****.**') self.assertEqual(seller.phone, '+7-952-952-52-38') self.assertEqual(seller.first_name, 'Andrei') self.assertEqual(seller.last_name, 'Borodin') self.assertEqual(seller.middle_name, 'Olegovich')
class HomeViewTests(WebTest): def setUp(self): self.seller_qs = MockSet(model=Seller) self.category_qs = MockSet(model=Category) self.seller = self.seller_qs.create( pk=1, username='******', email='*****@*****.**', password='******', phone='+7-952-952-52-38' ) self.category1 = self.category_qs.create(category_name='Category1') self.category2 = self.category_qs.create(category_name='Category2') def test_view_url_exists_at_desired_location(self): response = self.client.get('') self.assertEqual(response.status_code, 200) def test_view_url_accessible_by_name(self): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) def test_view_uses_correct_template(self): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'index.html') def test_zero_sales(self): response = self.client.get(reverse('home')) self.assertContains(response, 'No sales yet') def test_one_sale(self): sale_qs = MockSet(model=Sale) sale1 = sale_qs.create( pk=1, title='1-title', body='1-body', photo='', price=1000, category=self.category1, author=self.seller ) with patch.object(HomeView, 'get_queryset', return_value=sale_qs): response = self.client.get(reverse('home')) self.assertContains(response, '1-title') self.assertContains(response, '1-body') self.assertContains(response, 'Category1') self.assertContains(response, 1000) self.assertContains(response, self.seller.get_full_name()) def test_two_sales(self): sale_qs = MockSet(model=Sale) sale1 = sale_qs.create(pk=1, title='1-title', body='1-body', photo='', price=1000, category=self.category1, author=self.seller) sale2 = sale_qs.create(pk=2, title='2-title', body='2-body', photo='', price=2000, category=self.category2, author=self.seller) with patch.object(HomeView, 'get_queryset', return_value=sale_qs): response = self.client.get(reverse('home')) self.assertContains(response, '1-title') self.assertContains(response, '2-title') def test_unauthorized_links(self): response = self.client.get(reverse('home')) self.assertIn(reverse('register'), response.content.decode()) self.assertIn(reverse('login'), response.content.decode()) self.assertNotIn(reverse('logout'), response.content.decode()) def test_authorized_links(self): user = Seller.objects.create_user( username='******', password='******', email='*****@*****.**', phone='+7-952-952-52-38' ) self.client.force_login(user, backend=None) response = self.client.get(reverse('home')) self.assertIn(reverse('logout'), response.content.decode()) self.assertNotIn(reverse('register'), response.content.decode()) self.assertNotIn(reverse('login'), response.content.decode()) def test_pagination_is_ten(self): sale_qs = MockSet(model=Sale) for i in range(15): sale_qs.create(pk=i, title='Title ' + str(i), body='Body ' + str(i), photo='', price=1000 * i, category=self.category1, author=self.seller) with patch.object(HomeView, 'get_queryset', return_value=sale_qs): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) self.assertTrue('is_paginated' in response.context) self.assertTrue(response.context['is_paginated'] == True) self.assertTrue(len(response.context['sale_list']) == 10)