You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_manipulation.py 1.2KB

123456789101112131415161718192021222324252627282930313233343536
  1. from oscar.apps.basket import models
  2. from oscar.test import factories
  3. from oscar.test.testcases import WebTestCase
  4. class TestAddingToBasket(WebTestCase):
  5. def test_works_for_standalone_product(self):
  6. product = factories.ProductFactory()
  7. detail_page = self.get(product.get_absolute_url())
  8. response = detail_page.forms['add_to_basket_form'].submit()
  9. self.assertIsRedirect(response)
  10. baskets = models.Basket.objects.all()
  11. self.assertEqual(1, len(baskets))
  12. basket = baskets[0]
  13. self.assertEqual(1, basket.num_items)
  14. def test_works_for_child_product(self):
  15. parent = factories.ProductFactory(structure='parent', stockrecords=[])
  16. for x in range(3):
  17. variant = factories.ProductFactory(parent=parent, structure='child')
  18. detail_page = self.get(variant.get_absolute_url())
  19. form = detail_page.forms['add_to_basket_form']
  20. response = form.submit()
  21. self.assertIsRedirect(response)
  22. baskets = models.Basket.objects.all()
  23. self.assertEqual(1, len(baskets))
  24. basket = baskets[0]
  25. self.assertEqual(3, basket.num_items)