Beispiel #1
0
class SellerDetailTests(TestCase):
    def setUp(self):
        self.user = UserFactory()
        self.seller = SellerFactory(owner=self.user)
        self.product = ProductFactory(seller=self.seller)

    def test_seller_detail_view_works_for_loggedin_user(self):
        self.client.force_login(self.user)
        response = self.client.get(self.seller.get_absolute_url())
        no_response = self.client.get('/sellers/5555')

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, self.seller.name.title())
        self.assertEqual(len(response.context_data['seller_products']), 1)
        self.assertNotContains(response, 'Hi I should not be on this page')
        self.assertTemplateUsed(response, 'sellers/seller_detail.html')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_detail_view_redirects_for_anonymous_user(self):
        response = self.client.get(self.seller.get_absolute_url())
        no_response = self.client.get('/sellers/1234/')

        self.assertEqual(response.status_code, 302)
        self.assertTemplateNotUsed(response, 'sellers/seller_detail.html')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_detail_resolves_sellerdetailview(self):
        view = resolve(self.seller.get_absolute_url())
        self.assertEqual(view.func.__name__,
                         SellerDetailView.as_view().__name__)
Beispiel #2
0
    def setUp(self):
        self.superuser = get_user_model().objects.create_superuser(
            username='******',
            email='*****@*****.**',
            password='******')
        self.user_1 = UserFactory()
        self.user_2 = UserFactory()

        self.seller_1 = SellerFactory(owner=self.user_1)
        self.seller_2 = SellerFactory(owner=self.user_2)

        self.product_1 = ProductFactory(seller=self.seller_1)
        self.product_2 = ProductFactory(seller=self.seller_2)
Beispiel #3
0
    def test_seller_create_with_valid_post_data_creates_a_new_seller(self):
        self.client.force_login(self.user)
        data = model_to_dict(SellerFactory())
        data.pop('logo')
        data.pop('header_image')
        response = self.client.post(reverse('seller_create'), data=data)

        self.assertEqual(response.status_code, 302)
        self.assertEqual(Seller.objects.count(), 2)
        self.assertEqual(Seller.objects.all()[0].name, data['name'])
Beispiel #4
0
class SellerUpdateTests(TestCase):
    def setUp(self):
        self.user = UserFactory()
        self.seller = SellerFactory(owner=self.user)

    def test_seller_update_page_works_for_logged_in_user(self):
        self.client.force_login(self.user)
        response = self.client.get(self.seller.get_update_url())
        no_response = self.client.get('/sellers/1234/update/')

        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'sellers/seller_update_form.html')
        self.assertContains(response, 'Update')
        self.assertNotContains(response, 'Hi I should not be on this page!')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_update_page_redirectos_for_anonymous_user(self):
        response = self.client.get(self.seller.get_update_url())
        no_response = self.client.get('/sellers/1234/update/')

        self.assertEqual(response.status_code, 302)
        self.assertTemplateNotUsed(response, 'sellers/seller_update_form.html')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_update_resolve_sellerupdateview(self):

        view = resolve(self.seller.get_update_url())
        self.assertEqual(view.func.__name__, SellerUpdate.as_view().__name__)

    def test_seller_update_for_non_existing_seller_routes_to_not_found(self):
        self.assertEqual(Seller.objects.count(), 1)
        non_existing_seller_url = self.seller.get_update_url()

        Seller.objects.all().delete()
        self.assertEqual(Seller.objects.count(), 0)

        self.client.force_login(self.user)
        response = self.client.get(non_existing_seller_url)
        self.assertEqual(response.status_code, 404)
Beispiel #5
0
 def setUp(self):
     self.user = UserFactory()
     self.seller = SellerFactory(owner=self.user)
     self.product = ProductFactory(seller=self.seller)
Beispiel #6
0
 def setUp(self):
     self.user = UserFactory()
     self.seller = SellerFactory(owner=self.user)
Beispiel #7
0
class SellerDeleteTests(TestCase):
    def setUp(self):
        self.user = UserFactory()
        self.seller = SellerFactory(owner=self.user)

    def test_seller_delete_page_works_for_logged_in_user(self):
        self.client.force_login(self.user)
        response = self.client.get(self.seller.get_delete_url())
        no_response = self.client.get('/sellers/1234/delete/')

        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'sellers/seller_confirm_delete.html')
        self.assertContains(response, 'Delete')
        self.assertNotContains(response, 'Hi I should not be on this page!')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_delete_with_valid_post_data_deletes_the_seller(self):
        self.assertEqual(Seller.objects.count(), 1)

        self.client.force_login(self.user)
        response = self.client.post(self.seller.get_delete_url())

        self.assertEqual(response.status_code, 302)
        self.assertEqual(Seller.objects.count(), 0)

        messages = list(get_messages(response.wsgi_request))
        self.assertEqual(len(messages), 1)
        self.assertEqual(str(messages[0]), "Seller was deleted successfully!")

    def test_seller_delete_for_non_existing_seller_routes_to_not_found(self):
        non_existing_seller_url = self.seller.get_delete_url()
        self.assertEqual(Seller.objects.count(), 1)

        Seller.objects.all().delete()

        self.client.force_login(self.user)
        response = self.client.get(non_existing_seller_url)
        self.assertEqual(response.status_code, 404)
        self.assertTemplateUsed(response, '404.html')

    def test_seller_delete_with_valid_post_for_non_existing_seller_routes_to_not_found(
            self):
        seller_url = self.seller.get_delete_url()
        Seller.objects.all().delete()

        self.assertEqual(Seller.objects.count(), 0)
        self.client.force_login(self.user)
        response = self.client.post(seller_url)

        self.assertEqual(response.status_code, 404)
        self.assertTemplateUsed(response, '404.html')

    def test_seller_delete_page_redirects_for_anonymous_user(self):
        response = self.client.get(self.seller.get_delete_url())
        no_response = self.client.get('/sellers/1234/delete/')

        self.assertEqual(response.status_code, 302)
        self.assertTemplateNotUsed(response,
                                   'sellers/seller_confirm_delete.html')
        self.assertEqual(no_response.status_code, 404)

    def test_seller_delete_view_resolves_sellerdeleteview(self):
        view = resolve(self.seller.get_delete_url())
        self.assertEqual(view.func.__name__, SellerDelete.as_view().__name__)