1test_isil.doctest - more detailed doctests for the stdnum.isil module 2 3Copyright (C) 2016 Arthur de Jong 4 5This library is free software; you can redistribute it and/or 6modify it under the terms of the GNU Lesser General Public 7License as published by the Free Software Foundation; either 8version 2.1 of the License, or (at your option) any later version. 9 10This library is distributed in the hope that it will be useful, 11but WITHOUT ANY WARRANTY; without even the implied warranty of 12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13Lesser General Public License for more details. 14 15You should have received a copy of the GNU Lesser General Public 16License along with this library; if not, write to the Free Software 17Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 1802110-1301 USA 19 20 21This file contains more detailed doctests for the stdnum.isil module. It 22tries to validate a number of numbers that have been found online. 23 24>>> from stdnum import isil 25>>> from stdnum.exceptions import * 26 27 28The number should start with a valid country code or prefix: 29 30>>> isil.validate('ZZ-1234') 31Traceback (most recent call last): 32 ... 33InvalidComponent: ... 34 35 36The number should not be too long: 37 38>>> isil.validate('WW-RM026712423345334534512334534545') 39Traceback (most recent call last): 40 ... 41InvalidLength: ... 42 43 44A number with an unknown agency should not be upper-cased: 45 46>>> isil.format('zz-RM0267') 47'zz-RM0267' 48 49 50These have been found online and should all be valid numbers. 51 52>>> numbers = ''' 53... 54... AT-FHJ-BG 55... AT-FHK 56... AT-FHK-FE 57... AT-FHS-K 58... AT-GEOL 59... AT-HGMW 60... AT-KWPU 61... AT-LAST 62... AT-LBB 63... AT-NMW-Z 64... AT-NOeLB 65... AT-OBV 66... AT-OeAW-BA 67... AT-PHK 68... AT-PHS 69... AT-PHST 70... AT-PHT 71... AT-PHV 72... AT-STICHWORT 73... AT-UBG-SH 74... AT-UBGL 75... AT-UBI-HB 76... AT-UBL 77... AT-UBMG-HB 78... AT-UBMS 79... AT-UBMS-MUS 80... AT-UBMUL-FBG 81... AT-UBMUL-HB 82... AT-UBMUW-360 83... AT-UBMUW-400 84... AT-UBMW 85... AT-UBTUG-HB 86... AT-UBVUW-UB 87... AT-UBW 88... AT-UBWW 89... AT-UBWW-874 90... AT-VMW 91... AT-WBR 92... AT-WHK 93... AT-WSTLA-B 94... 95... AU-ABC:ARC 96... AU-ABC:PL 97... AU-ABC:RN 98... AU-ANL:AJA 99... AU-ANU:ADBO 100... AU-ANU:IR 101... AU-ANU:ON 102... AU-NABC 103... AU-NABM 104... AU-NACON 105... AU-NACU:AA 106... AU-NAIM 107... AU-NEF 108... AU-NJHS 109... AU-NNCU:A 110... AU-NRNA 111... AU-NU 112... AU-NU:DF 113... AU-NUWS 114... AU-QMINT 115... AU-QU 116... AU-SMUA 117... AU-SUSA 118... AU-TS:RL 119... AU-TU 120... AU-VAAPM 121... AU-VACMU 122... AU-VAGH 123... AU-VAHRI 124... AU-VAMD 125... AU-VANDS 126... AU-VDU 127... AU-VEMU 128... AU-VLGA 129... AU-VPM 130... AU-VS:NAH 131... AU-VSWT 132... AU-VU 133... AU-WAHB 134... AU-XACA 135... 136... BE-A0510 137... BE-A3004 138... BE-A5000 139... BE-A5001 140... BE-A5002 141... BE-AAR00 142... BE-ALN00 143... BE-ANN03 144... BE-ANT01 145... BE-BDE00 146... BE-BEE00 147... BE-BRL06 148... BE-BRL07 149... BE-BRL10 150... BE-BUE01 151... BE-DIT00 152... BE-DNE00 153... BE-DPE00 154... BE-EKN00 155... BE-GAN00 156... BE-GET02 157... BE-HCT00 158... BE-HED00 159... BE-HEN00 160... BE-HES01 161... BE-JEE00 162... BE-KLT00 163... BE-KNE00 164... BE-KRG00 165... BE-LLE00 166... BE-LNL00 167... BE-LUK01 168... BE-LUN00 169... BE-MSE00 170... BE-NET00 171... BE-OSE00 172... BE-RIT00 173... BE-SJS01 174... BE-ZEE00 175... BE-ZUE00 176... 177... CA-QMCB 178... 179... CH-000050-X 180... CH-000051-7 181... CH-000084-8 182... CH-000190-0 183... CH-000244-3 184... CH-000422-7 185... CH-000423-4 186... CH-000425-9 187... CH-000560-3 188... CH-000886-6 189... CH-001008-0 190... CH-001010-9 191... CH-001057-5 192... CH-001059-X 193... CH-001113-6 194... CH-001243-0 195... CH-001283-6 196... CH-001350-0 197... CH-001539-4 198... CH-001631-1 199... CH-001644-X 200... CH-001645-7 201... CH-001646-4 202... CH-001648-9 203... CH-001649-6 204... CH-001654-6 205... CH-001666-7 206... CH-001669-9 207... CH-001760-9 208... CH-001800-6 209... CH-001815-9 210... CH-001821-6 211... CH-001824-8 212... CH-001825-5 213... CH-001832-X 214... CH-001839-0 215... CH-001844-0 216... CH-001845-8 217... CH-001846-5 218... CH-001851-5 219... 220... CY-02-CUT 221... 222... DE-101c 223... DE-16-18 224... DE-1769 225... DE-1786 226... DE-180-1-2 227... DE-1834h 228... DE-1834k 229... DE-1869 230... DE-188-878 231... DE-188-e 232... DE-1886 233... DE-1935 234... DE-1939 235... DE-1988 236... DE-1996 237... DE-2300 238... DE-2343 239... DE-360 240... DE-379 241... DE-38-230 242... DE-412 243... DE-416 244... DE-450 245... DE-465M-15 246... DE-469 247... DE-46a 248... DE-570 249... DE-6-235 250... DE-6-271 251... DE-6-321 252... DE-7-040 253... DE-7-061 254... DE-718 255... DE-758 256... DE-781 257... DE-82-204 258... DE-82-219 259... DE-Bor4 260... DE-Kn184 261... DE-Tue120 262... 263... GB-NiBfQU 264... GB-StAlCLS 265... GB-StDnUAD 266... GB-StGlU 267... GB-StPaUWSP 268... GB-UK-AbCCL 269... GB-UK-DhCL 270... GB-UK-LoRCN 271... GB-UK-WiU 272... GB-UkBrCC 273... GB-UkBsBC 274... GB-UkCU-TRH 275... GB-UkCmUG 276... GB-UkCoI 277... GB-UkCvUL 278... GB-UkCyUK 279... GB-UkElC 280... GB-UkExU 281... GB-UkFlBUFL 282... GB-UkHsBUUC 283... GB-UkIfBRL 284... GB-UkLRCM 285... GB-UkLUC 286... GB-UkLoBS 287... GB-UkLoMdU 288... GB-UkLoSTAC 289... GB-UkLuBC 290... GB-UkMaUHSM 291... GB-UkNrSTB 292... GB-UkOlOLS 293... GB-UkRlWC 294... GB-UkSbWC-T 295... GB-UkScaSH 296... GB-UkSfCL 297... GB-UkSfSSSH 298... GB-UkSofDA 299... GB-UkTeS 300... GB-UkWbSWB 301... GB-UkWfC 302... GB-WlCaUW 303... 304... IT-RM0267 305... 306... NL-04-0041-000 307... NL-AlSARM 308... NL-AsdUvA 309... NL-AsnDA 310... NL-CoGC 311... NL-DdvHVA 312... NL-DtAD 313... NL-DtHHD 314... NL-EhvRHCE 315... NL-EmnGE 316... NL-FwGF 317... NL-GnADNG 318... NL-GnGRA 319... NL-GnPG 320... NL-GnUMG 321... NL-HAMuscom 322... NL-HaKV 323... NL-HaNIMH 324... NL-HaNRK 325... NL-HlGH 326... NL-HnWFA 327... NL-HvsSAGV 328... NL-KrdGA 329... NL-LdnRMV 330... NL-LnsGDM 331... NL-LwPF 332... NL-MpGM 333... NL-MssHVM 334... NL-MtmGM 335... NL-NmRAN 336... NL-OmnHKO 337... NL-OmnOO 338... NL-OmsVHO 339... NL-RtEUR 340... NL-RtSA 341... NL-SelGV 342... NL-SloGS 343... NL-VbGALV 344... NL-WtGAW 345... NL-WtslGT 346... NL-ZhGZ 347... Nl-GdSAMH 348... 349... OCLC-ABI 350... OCLC-ATNHK 351... OCLC-ATQCO 352... OCLC-ATVMV 353... OCLC-BEMCH 354... OCLC-BRI 355... OCLC-CKI 356... OCLC-CSF 357... OCLC-DEKNV 358... OCLC-EMSBC 359... OCLC-ENC 360... OCLC-EZU 361... OCLC-FLNSW 362... OCLC-FNL 363... OCLC-GYR 364... OCLC-I8S 365... OCLC-IDT 366... OCLC-ILW 367... OCLC-JAKUC 368... OCLC-JXE 369... OCLC-JYY 370... OCLC-KW5 371... OCLC-LABMH 372... OCLC-MLBVL 373... OCLC-MSL 374... OCLC-NEZH8 375... OCLC-OME 376... OCLC-QBA 377... OCLC-QP7 378... OCLC-SMP 379... OCLC-SVZ 380... OCLC-TXCLY 381... OCLC-TY7 382... OCLC-U9V 383... OCLC-UDU 384... OCLC-WK6 385... OCLC-WYEMB 386... OCLC-XOH 387... OCLC-YA6 388... OCLC-YEJ 389... 390... US-DLC 391... US-InU-Mu 392... US-MdBJ-W 393... 394... ''' 395>>> [x for x in numbers.splitlines() if x and not isil.is_valid(x)] 396[] 397 398 399These have been found online but seem invalid: 400 401... OCLC-B#P 402... OCLC-LT$ 403... OCLC-RE# 404... OCLC-RG$ 405