您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

method_tests.py 2.6KB

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