| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from decimal import Decimal as D
-
- from django.test import TestCase
- import mock
-
- from oscar.apps.checkout import calculators
- from oscar.apps.shipping import methods
- from oscar.core import prices
-
-
- class TestOrderTotalCalculator(TestCase):
-
- def setUp(self):
- self.calculator = calculators.OrderTotalCalculator()
-
- def test_returns_correct_totals_when_tax_is_not_known(self):
- basket = mock.Mock()
- basket.total_excl_tax = D('10.00')
- basket.is_tax_known = False
- method = methods.FixedPrice(D('5.00'))
-
- total = self.calculator.calculate(basket, method)
-
- self.assertIsInstance(total, prices.Price)
- self.assertEquals(D('10.00') + D('5.00'), total.excl_tax)
- self.assertFalse(total.is_tax_known)
- with self.assertRaises(AttributeError):
- total.incl_tax
- with self.assertRaises(AttributeError):
- total.tax
-
- def test_returns_correct_totals_when_tax_is_known(self):
- basket = mock.Mock()
- basket.total_excl_tax = D('10.00')
- basket.total_incl_tax = D('12.00')
- basket.is_tax_known = True
- method = methods.FixedPrice(D('5.00'), D('5.50'))
-
- total = self.calculator.calculate(basket, method)
-
- self.assertIsInstance(total, prices.Price)
- self.assertEquals(D('10.00') + D('5.00'), total.excl_tax)
- self.assertTrue(total.is_tax_known)
- self.assertEquals(D('12.00') + D('5.50'), total.incl_tax)
- self.assertEquals(D('2.00') + D('0.50'), total.tax)
|