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.

manipulation_tests.py 1.1KB

1234567891011121314151617181920212223242526272829303132333435
  1. from oscar.test.testcases import WebTestCase
  2. from oscar.test import factories
  3. from oscar.apps.basket import models
  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. factories.ProductFactory(parent=parent, structure='child')
  18. detail_page = self.get(parent.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(1, basket.num_items)