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.

repository_tests.py 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from decimal import Decimal as D
  2. from django.test import TestCase
  3. from oscar.apps.basket.models import Basket
  4. from oscar.core.compat import get_user_model
  5. from oscar.apps.shipping import repository, methods
  6. User = get_user_model()
  7. class TestShippingRepository(TestCase):
  8. def setUp(self):
  9. self.repo = repository.Repository()
  10. self.basket = Basket()
  11. def test_returns_free_as_only_option(self):
  12. available_methods = self.repo.get_shipping_methods(
  13. user=None, basket=self.basket)
  14. self.assertEqual(1, len(available_methods))
  15. method = available_methods[0]
  16. self.assertTrue(isinstance(method, methods.Free))
  17. self.assertEquals(D('0.00'), method.basket_charge_incl_tax())
  18. self.assertEquals(D('0.00'), method.basket_charge_excl_tax())
  19. def test_allows_free_method_to_be_retrieved(self):
  20. method = self.repo.find_by_code(methods.Free.code, self.basket)
  21. self.assertTrue(isinstance(method, methods.Free))
  22. def test_allows_no_shipping_required_method_to_be_retrieved(self):
  23. method = self.repo.find_by_code(
  24. methods.NoShippingRequired.code, self.basket)
  25. self.assertTrue(isinstance(method, methods.NoShippingRequired))
  26. def test_returns_none_for_unknown_code(self):
  27. method = self.repo.find_by_code('asdf', self.basket)
  28. self.assertIsNone(method)