From f3c2491c45c39e2052be3e7ee769248f40aacb58 Mon Sep 17 00:00:00 2001 From: Arthur de Jong Date: Sat, 28 May 2016 13:17:52 +0200 Subject: Fix bug in Irish VAT number validation The last digits of the number that should be letters were not tested to be letters which could result in ValueError being raised for certain validations. This also clarifies the documentation and adds a convert() function to convert numbers from the old format (where the second character would be a letter or symbol) to the new format (7 digits followed by 1 or 2 letters). --- tests/test_ie_vat.doctest | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/test_ie_vat.doctest (limited to 'tests/test_ie_vat.doctest') diff --git a/tests/test_ie_vat.doctest b/tests/test_ie_vat.doctest new file mode 100644 index 0000000..cbdf958 --- /dev/null +++ b/tests/test_ie_vat.doctest @@ -0,0 +1,48 @@ +test_ie_vat.doctest - more detailed doctests for stdnum.ie.vat module + +Copyright (C) 2016 Arthur de Jong + +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.ie.vat module. It +tries to cover more corner cases and detailed functionality that is not +really useful as module documentation. + +>>> from stdnum.ie import vat + + +Extra tests for length checking and corner cases: + +>>> vat.validate('111222333') # check digits should be letters +Traceback (most recent call last): + ... +InvalidFormat: ... +>>> vat.validate('1234567ABC') # too long +Traceback (most recent call last): + ... +InvalidLength: ... + + +The convert() function should leave invalid or already converted values +alone. + +>>> vat.convert('IE8D79739I') +'0797398I' +>>> vat.convert('IE 632 3420 C') +'6323420C' +>>> vat.convert('123') +'123' -- cgit v1.2.3