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_method.py 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from decimal import Decimal as D
  2. from unittest import mock
  3. from django.test import TestCase
  4. from oscar.apps.basket.models import Basket
  5. from oscar.apps.shipping import methods
  6. class TestFreeShipppingForEmptyBasket(TestCase):
  7. def setUp(self):
  8. self.method = methods.Free()
  9. self.basket = Basket()
  10. self.charge = self.method.calculate(self.basket)
  11. def test_is_free(self):
  12. self.assertEqual(D('0.00'), self.charge.incl_tax)
  13. self.assertEqual(D('0.00'), self.charge.excl_tax)
  14. def test_has_tax_known(self):
  15. self.assertTrue(self.charge.is_tax_known)
  16. def test_has_same_currency_as_basket(self):
  17. self.assertEqual(self.basket.currency, self.charge.currency)
  18. class TestFreeShipppingForNonEmptyBasket(TestCase):
  19. def setUp(self):
  20. self.method = methods.Free()
  21. self.basket = mock.Mock()
  22. self.basket.num_items = 1
  23. self.charge = self.method.calculate(self.basket)
  24. def test_is_free(self):
  25. self.assertEqual(D('0.00'), self.charge.incl_tax)
  26. self.assertEqual(D('0.00'), self.charge.excl_tax)
  27. class TestNoShippingRequired(TestCase):
  28. def setUp(self):
  29. self.method = methods.NoShippingRequired()
  30. basket = Basket()
  31. self.charge = self.method.calculate(basket)
  32. def test_is_free_for_empty_basket(self):
  33. self.assertEqual(D('0.00'), self.charge.incl_tax)
  34. self.assertEqual(D('0.00'), self.charge.excl_tax)
  35. def test_has_a_different_code_to_free(self):
  36. self.assertTrue(methods.NoShippingRequired.code
  37. != methods.Free.code)
  38. class TestFixedPriceShippingWithoutTax(TestCase):
  39. def setUp(self):
  40. self.method = methods.FixedPrice(D('10.00'))
  41. basket = Basket()
  42. self.charge = self.method.calculate(basket)
  43. def test_has_correct_charge(self):
  44. self.assertEqual(D('10.00'), self.charge.excl_tax)
  45. def test_does_not_include_tax(self):
  46. self.assertFalse(self.charge.is_tax_known)
  47. class TestFixedPriceShippingWithTax(TestCase):
  48. def setUp(self):
  49. self.method = methods.FixedPrice(
  50. charge_excl_tax=D('10.00'),
  51. charge_incl_tax=D('12.00'))
  52. basket = Basket()
  53. self.charge = self.method.calculate(basket)
  54. def test_has_correct_charge(self):
  55. self.assertEqual(D('10.00'), self.charge.excl_tax)
  56. self.assertEqual(D('12.00'), self.charge.incl_tax)
  57. def test_does_include_tax(self):
  58. self.assertTrue(self.charge.is_tax_known)