From ff188bd5f100c3033b3fc53f186af6c52815a770 Mon Sep 17 00:00:00 2001 From: Leandro Regueiro Date: Sun, 8 Mar 2020 17:06:25 +0100 Subject: Add module to check any VAT number This effectively mimics vatnumber's `check_vat` function, so people can easily replace the outdated vatnumber library with stdnum. Closes https://github.com/arthurdejong/python-stdnum/pull/199 --- tests/test_vatin.doctest | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 tests/test_vatin.doctest (limited to 'tests') diff --git a/tests/test_vatin.doctest b/tests/test_vatin.doctest new file mode 100644 index 0000000..f0c5f92 --- /dev/null +++ b/tests/test_vatin.doctest @@ -0,0 +1,75 @@ +test_vatin.doctest - more detailed doctests for stdnum.vatin module + +Copyright (C) 2020 Leandro Regueiro + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA + + +This file contains more detailed doctests for the stdnum.vatin module. It +tries to test more corner cases and detailed functionality that is not +really useful as module documentation. + +>>> from stdnum import vatin + + +Check valid VAT numbers for several countries with existing validation: + +>>> vatin.validate('FR 40 303 265 045') +'FR40303265045' +>>> vatin.validate('DE136,695 976') +'DE136695976' +>>> vatin.validate('BR16.727.230/0001-97') +'BR16727230000197' +>>> vatin.validate('el-082857563') +'EL082857563' + + +Try validating invalid VAT numbers for country with validation: + +>>> vatin.compact('FR 40 303') +'FR40303' +>>> vatin.validate('FR 40 303') +Traceback (most recent call last): + ... +InvalidLength: ... +>>> vatin.validate('FR') +Traceback (most recent call last): + ... +InvalidFormat: ... + + +Try validating not specifying a country: + +>>> vatin.validate('') +Traceback (most recent call last): + ... +InvalidFormat: ... +>>> vatin.validate('00') +Traceback (most recent call last): + ... +InvalidFormat: ... + + +Try to validate for countries with no VAT validation: + +>>> vatin.validate('XX') +Traceback (most recent call last): + ... +InvalidComponent: ... +>>> vatin.validate('US') +Traceback (most recent call last): + ... +InvalidComponent: ... -- cgit v1.2.3