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.

basket_tests.py 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import datetime
  2. from django.test import TestCase
  3. from django.test.client import RequestFactory
  4. from oscar.apps.basket.models import Basket
  5. from oscar.apps.basket.middleware import BasketMiddleware
  6. from oscar.test.helpers import create_product
  7. from oscar.apps.basket.reports import (
  8. OpenBasketReportGenerator, SubmittedBasketReportGenerator)
  9. class TestBasketModel(TestCase):
  10. def setUp(self):
  11. self.basket = Basket.objects.create()
  12. self.product = create_product()
  13. def test_an_empty_basket_has_zero_lines(self):
  14. self.assertEqual(0, self.basket.num_lines)
  15. def test_new_baskets_are_empty(self):
  16. self.assertTrue(self.basket.is_empty)
  17. def test_adding_product_creates_line(self):
  18. self.basket.add_product(self.product)
  19. self.assertEqual(1, self.basket.num_lines)
  20. def test_adding_multiproduct_line_returns_correct_number_of_items(self):
  21. self.basket.add_product(self.product, 10)
  22. self.assertEqual(self.basket.num_items, 10)
  23. self.assertEqual(self.basket.num_lines, 1)
  24. class TestBasketMiddleware(TestCase):
  25. def setUp(self):
  26. self.middleware = BasketMiddleware()
  27. def test_basket_is_attached_to_request(self):
  28. req = RequestFactory().get('/')
  29. self.middleware.process_request(req)
  30. self.assertTrue(hasattr(req, 'basket'))
  31. class TestBasketReports(TestCase):
  32. def test_open_report_doesnt_error(self):
  33. data = {
  34. 'start_date': datetime.date(2012, 5, 1),
  35. 'end_date': datetime.date(2012, 5, 17),
  36. 'formatter': 'CSV'
  37. }
  38. generator = OpenBasketReportGenerator(**data)
  39. generator.generate()
  40. def test_submitted_report_doesnt_error(self):
  41. data = {
  42. 'start_date': datetime.date(2012, 5, 1),
  43. 'end_date': datetime.date(2012, 5, 17),
  44. 'formatter': 'CSV'
  45. }
  46. generator = SubmittedBasketReportGenerator(**data)
  47. generator.generate()