Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

repository_tests.py 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from django.test import TestCase
  2. from nose.plugins.attrib import attr
  3. import mock
  4. from oscar.apps.shipping import repository, methods
  5. @attr('shipping')
  6. class TestDefaultShippingRepository(TestCase):
  7. def setUp(self):
  8. self.repo = repository.Repository()
  9. def test_returns_free_when_basket_is_non_empty(self):
  10. basket = mock.Mock()
  11. basket.is_shipping_required = mock.Mock(return_value=True)
  12. basket.has_shipping_discounts = False
  13. available_methods = self.repo.get_shipping_methods(
  14. basket=basket)
  15. self.assertEqual(1, len(available_methods))
  16. method = available_methods[0]
  17. self.assertTrue(isinstance(method, methods.Free))
  18. def test_returns_no_shipping_required_when_basket_does_not_require_shipping(self):
  19. basket = mock.Mock()
  20. basket.is_shipping_required = mock.Mock(return_value=False)
  21. basket.has_shipping_discounts = False
  22. available_methods = self.repo.get_shipping_methods(
  23. basket=basket)
  24. self.assertEqual(1, len(available_methods))
  25. method = available_methods[0]
  26. self.assertTrue(isinstance(method, methods.NoShippingRequired))
  27. def test_returns_free_shipping_as_default(self):
  28. basket = mock.Mock()
  29. basket.is_shipping_required = mock.Mock(return_value=True)
  30. basket.has_shipping_discounts = False
  31. method = self.repo.get_default_shipping_method(
  32. basket=basket)
  33. self.assertTrue(isinstance(method, methods.Free))