class EUTaxationPolicyTestCase(TestCase): def setUp(self): self.policy = EUTaxationPolicy() def test_none(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, None), Decimal('23.0')) def test_private_nonEU(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'RU'), None) def test_private_EU_same(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'PL'), Decimal('23.0')) def test_private_EU_notsame(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'AT'), Decimal('20.0')) def test_company_nonEU(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'RU'), None) def test_company_EU_same(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'PL'), Decimal('23.0')) def test_company_EU_GR_vies_tax(self): """ Test, that greece has VAT OK. Greece has code GR in django-countries, but EL in VIES Tax ID is not valid VAT ID, so tax is counted """ self.assertEqual(self.policy.get_tax_rate('123456', 'GR'), 24) def test_company_EU_GR_vies_zero(self): """ Test, that greece has VAT OK. Greece has code GR in django-countries, but EL in VIES Tax ID is valid VAT ID, so no tax is counted """ self.assertEqual(self.policy.get_tax_rate('EL090145420', 'GR'), None) @mock.patch("stdnum.eu.vat.check_vies") def test_company_EU_notsame_vies_ok(self, mock_check): mock_check.return_value = {'valid': True} with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'AT'), None) @mock.patch("stdnum.eu.vat.check_vies") def test_company_EU_notsame_vies_not_ok(self, mock_check): mock_check.return_value = {'valid': False} with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'AT'), Decimal('20.0'))
class EUTaxationPolicyTestCase(TestCase): def setUp(self): self.policy = EUTaxationPolicy() def test_none(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, None), Decimal('23.0')) def test_private_nonEU(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'RU'), None) def test_private_EU_same(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'PL'), Decimal('23.0')) def test_private_EU_notsame(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate(None, 'AT'), Decimal('20.0')) def test_company_nonEU(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'RU'), None) def test_company_EU_same(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'PL'), Decimal('23.0')) @mock.patch("vatnumber.check_vies", lambda x: True) def test_company_EU_notsame_vies_ok(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'AT'), None) @mock.patch("vatnumber.check_vies", lambda x: False) def test_company_EU_notsame_vies_not_ok(self): with self.settings(PLANS_TAX=Decimal('23.0'), PLANS_TAX_COUNTRY='PL'): self.assertEqual(self.policy.get_tax_rate('123456', 'AT'), Decimal('20.0'))
def is_UE_customer(self): return EUTaxationPolicy.is_in_EU(self.buyer_country.code)
def setUp(self): self.policy = EUTaxationPolicy()