Пример #1
0
    def test_invalid_submission(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = 'ATU66688999'

        submission = {'basket': basket, 'shipping_address': address}

        expected_rate = D('0.20')

        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)

        address.vatin = 'ATU66688202'
        address.line1 = 'hastexo'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)

        address.vatin = ''
        address.line1 = 'hastexo Professional Services GmbH'
        address.phone_number = '+49 9 999 9999'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)
Пример #2
0
    def test_invalid_submission(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = 'ATU66688999'

        submission = { 'basket': basket,
                       'shipping_address': address }

        expected_rate = D('0.20')

        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)

        address.vatin = 'ATU66688202'
        address.line1 = 'hastexo'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)

        address.vatin = ''
        address.line1 = 'hastexo Professional Services GmbH'
        address.phone_number = '+49 9 999 9999'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_submission(submission)
Пример #3
0
    def test_valid_submission_reverse_charge(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = { 'basket': basket,
                       'shipping_address': address }

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))

        # We're pretending we're a store in Germany. Then we can do
        # reverse charge.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.00'))
        # However, if we're using an empty VATIN, the regular VAT
        # rate applies again.
        address.vatin = ''
        address.line1 = 'HASTEXO PROFESSIONAL SERVICES GMBH'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))
Пример #4
0
    def test_valid_submission_reverse_charge(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = {'basket': basket, 'shipping_address': address}

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))

        # We're pretending we're a store in Germany. Then we can do
        # reverse charge.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.00'))
        # However, if we're using an empty VATIN, the regular VAT
        # rate applies again.
        address.vatin = ''
        address.line1 = 'HASTEXO PROFESSIONAL SERVICES GMBH'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))
Пример #5
0
    def test_valid_submission(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = { 'basket': basket,
                       'shipping_address': address }

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))

        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.00'))

        address.vatin = ''
        address.line1 = 'HASTEXO PROFESSIONAL SERVICES GMBH'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))
Пример #6
0
    def test_valid_submission_no_reverse_charge(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = {'basket': basket, 'shipping_address': address}

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))

        # Do they have a VATIN? Doesn't matter if they're in the same
        # country as the store; VAT still applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))
Пример #7
0
    def test_valid_submission(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = {'basket': basket, 'shipping_address': address}

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))

        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.00'))

        address.vatin = ''
        address.line1 = 'HASTEXO PROFESSIONAL SERVICES GMBH'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate, D('0.20'))
Пример #8
0
    def test_valid_submission_no_reverse_charge(self):
        basket = Mock()
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''

        submission = { 'basket': basket,
                       'shipping_address': address }

        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))

        # Do they have a VATIN? Doesn't matter if they're in the same
        # country as the store; VAT still applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_submission(submission)
        self.assertEqual(result_rate,
                         D('0.20'))