Skip to content

Commit 86b85cc

Browse files
committed
More validation improvements
1 parent 249ed3f commit 86b85cc

12 files changed

+467
-113
lines changed

finvoice/sender/senderinfo.py

Lines changed: 226 additions & 44 deletions
Large diffs are not rendered by default.

generators/gends_user_methods_senderinfo.py

Lines changed: 146 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def show(self):
8484
#
8585
# Replace the following method specifications with your own.
8686

87-
method1 = MethodSpec(name='validate_valueOf_',
87+
method10 = MethodSpec(name='validate_valueOf_',
8888
source='''\
8989
def validate_valueOf_(self, value):
9090
if ( isinstance( value, basestring ) and value.__len__() <= 35 ):
@@ -96,7 +96,7 @@ def validate_valueOf_(self, value):
9696
class_names=r'^SellerAccountIDType|SellerAccountIDType2$',
9797
)
9898

99-
method2 = MethodSpec(name='build',
99+
method20 = MethodSpec(name='build',
100100
source='''\
101101
def build(self, node):
102102
already_processed = set()
@@ -111,7 +111,7 @@ def build(self, node):
111111
class_names=r'^SellerAccountIDType|SellerAccountIDType2$',
112112
)
113113

114-
method3 = MethodSpec(name='validate_IdentificationSchemeName',
114+
method30 = MethodSpec(name='validate_IdentificationSchemeName',
115115
source='''\
116116
def validate_IdentificationSchemeName(self, value):
117117
if ( value == "IBAN" ):
@@ -123,7 +123,7 @@ def validate_IdentificationSchemeName(self, value):
123123
class_names=r'^SellerAccountIDType|SellerAccountIDType2$',
124124
)
125125

126-
method4 = MethodSpec(name='buildAttributes',
126+
method40 = MethodSpec(name='buildAttributes',
127127
source='''\
128128
def buildAttributes(self, node, attrs, already_processed):
129129
value = find_attr_value_('IdentificationSchemeName', node)
@@ -139,7 +139,7 @@ def buildAttributes(self, node, attrs, already_processed):
139139
class_names=r'^SellerAccountIDType|SellerAccountIDType2$',
140140
)
141141

142-
method5 = MethodSpec(name='validate_valueOf_',
142+
method50 = MethodSpec(name='validate_valueOf_',
143143
source='''\
144144
def validate_valueOf_(self, value):
145145
if ( isinstance( value, basestring ) and 8 <= value.__len__() <= 11 ):
@@ -151,7 +151,7 @@ def validate_valueOf_(self, value):
151151
class_names=r'^SellerBicType|SellerBicType2$',
152152
)
153153

154-
method6 = MethodSpec(name='build',
154+
method60 = MethodSpec(name='build',
155155
source='''\
156156
def build(self, node):
157157
already_processed = set()
@@ -166,7 +166,7 @@ def build(self, node):
166166
class_names=r'^SellerBicType|SellerBicType2$',
167167
)
168168

169-
method7 = MethodSpec(name='validate_IdentificationSchemeName',
169+
method70 = MethodSpec(name='validate_IdentificationSchemeName',
170170
source='''\
171171
def validate_IdentificationSchemeName(self, value):
172172
if ( value == "BIC" ):
@@ -178,7 +178,7 @@ def validate_IdentificationSchemeName(self, value):
178178
class_names=r'^SellerBicType|SellerBicType2$',
179179
)
180180

181-
method8 = MethodSpec(name='buildAttributes',
181+
method80 = MethodSpec(name='buildAttributes',
182182
source='''\
183183
def buildAttributes(self, node, attrs, already_processed):
184184
value = find_attr_value_('IdentificationSchemeName', node)
@@ -194,7 +194,7 @@ def buildAttributes(self, node, attrs, already_processed):
194194
class_names=r'^SellerBicType|SellerBicType2$',
195195
)
196196

197-
method9 = MethodSpec(name='validate_SellerInstructionFreeTextType',
197+
method90 = MethodSpec(name='validate_SellerInstructionFreeTextType',
198198
source='''\
199199
def validate_SellerInstructionFreeTextType(self, value):
200200
if ( value.__len__() <= 3 ):
@@ -206,7 +206,19 @@ def validate_SellerInstructionFreeTextType(self, value):
206206
class_names=r'^SellerInvoiceDetailsType$',
207207
)
208208

209-
method10 = MethodSpec(name='buildChildren',
209+
method91 = MethodSpec(name='validate_SellerInvoiceTypeDetailsType',
210+
source='''\
211+
def validate_SellerInvoiceTypeDetailsType(self, value):
212+
if ( value.__len__() <= 3 ):
213+
pass
214+
else:
215+
raise_value_error( value.__len__(), 'Expected maximum of 3 elements' )
216+
return value
217+
''',
218+
class_names=r'^SellerInvoiceDetailsType$',
219+
)
220+
221+
method100 = MethodSpec(name='buildChildren',
210222
source='''\
211223
def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
212224
if nodeName_ == 'SellerDirectDebitIdentifier':
@@ -229,6 +241,7 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
229241
obj_ = SellerInvoiceTypeDetailsType.factory()
230242
obj_.build(child_)
231243
self.SellerInvoiceTypeDetails.append(obj_)
244+
self.validate_SellerInvoiceTypeDetailsType(self.SellerInvoiceTypeDetails)
232245
obj_.original_tagname_ = 'SellerInvoiceTypeDetails'
233246
elif nodeName_ == 'SellerServiceCode':
234247
SellerServiceCode_ = child_.text
@@ -239,7 +252,7 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
239252
class_names=r'^SellerInvoiceDetailsType$',
240253
)
241254

242-
method11 = MethodSpec(name='validate_valueOf_',
255+
method110 = MethodSpec(name='validate_valueOf_',
243256
source='''\
244257
def validate_valueOf_(self, value):
245258
if ( isinstance( value, basestring ) and 1 <= value.__len__() <= 420 ):
@@ -251,7 +264,7 @@ def validate_valueOf_(self, value):
251264
class_names=r'^SellerInstructionFreeTextType$',
252265
)
253266

254-
method12 = MethodSpec(name='build',
267+
method120 = MethodSpec(name='build',
255268
source='''\
256269
def build(self, node):
257270
already_processed = set()
@@ -266,7 +279,7 @@ def build(self, node):
266279
class_names=r'^SellerInstructionFreeTextType$',
267280
)
268281

269-
method13 = MethodSpec(name='validate_valueOf_',
282+
method130 = MethodSpec(name='validate_valueOf_',
270283
source='''\
271284
def validate_valueOf_(self, value):
272285
if ( isinstance( value, basestring ) and value.__len__() <= 35 ):
@@ -278,7 +291,7 @@ def validate_valueOf_(self, value):
278291
class_names=r'^SellerInvoiceTypeTextType$',
279292
)
280293

281-
method14 = MethodSpec(name='build',
294+
method140 = MethodSpec(name='build',
282295
source='''\
283296
def build(self, node):
284297
already_processed = set()
@@ -293,7 +306,7 @@ def build(self, node):
293306
class_names=r'^SellerInvoiceTypeTextType$',
294307
)
295308

296-
method13 = MethodSpec(name='validate_valueOf_',
309+
method150 = MethodSpec(name='validate_valueOf_',
297310
source='''\
298311
def validate_valueOf_(self, value):
299312
if ( isinstance( value, basestring ) and 4 <= value.__len__() <= 70 ):
@@ -305,7 +318,7 @@ def validate_valueOf_(self, value):
305318
class_names=r'^SellerInvoiceIdentifierTextType3$',
306319
)
307320

308-
method14 = MethodSpec(name='build',
321+
method160 = MethodSpec(name='build',
309322
source='''\
310323
def build(self, node):
311324
already_processed = set()
@@ -320,7 +333,7 @@ def build(self, node):
320333
class_names=r'^SellerInvoiceIdentifierTextType3$',
321334
)
322335

323-
method15 = MethodSpec(name='validate_valueOf_',
336+
method170 = MethodSpec(name='validate_valueOf_',
324337
source='''\
325338
def validate_SellerInvoiceIdentifierTextType3(self, value):
326339
if ( value.__len__() <= 2 ):
@@ -332,7 +345,7 @@ def validate_SellerInvoiceIdentifierTextType3(self, value):
332345
class_names=r'^SellerInvoiceTypeDetailsType$',
333346
)
334347

335-
method16 = MethodSpec(name='buildChildren',
348+
method180 = MethodSpec(name='buildChildren',
336349
source='''\
337350
def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
338351
if nodeName_ == 'SellerInvoiceTypeText':
@@ -350,7 +363,7 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
350363
class_names=r'^SellerInvoiceTypeDetailsType$',
351364
)
352365

353-
method17 = MethodSpec(name='validate_valueOf_',
366+
method190 = MethodSpec(name='validate_valueOf_',
354367
source='''\
355368
def validate_valueOf_(self, value):
356369
import datetime
@@ -363,7 +376,7 @@ def validate_valueOf_(self, value):
363376
class_names=r'^date$',
364377
)
365378

366-
method18 = MethodSpec(name='build',
379+
method200 = MethodSpec(name='build',
367380
source='''\
368381
def build(self, node):
369382
already_processed = set()
@@ -378,7 +391,7 @@ def build(self, node):
378391
class_names=r'^date$',
379392
)
380393

381-
method19 = MethodSpec(name='validate_Format',
394+
method210 = MethodSpec(name='validate_Format',
382395
source='''\
383396
def validate_Format(self, value):
384397
if ( value == "CCYYMMDD" ):
@@ -390,7 +403,7 @@ def validate_Format(self, value):
390403
class_names=r'^date$',
391404
)
392405

393-
method20 = MethodSpec(name='buildAttributes',
406+
method220 = MethodSpec(name='buildAttributes',
394407
source='''\
395408
def buildAttributes(self, node, attrs, already_processed):
396409
value = find_attr_value_('Format', node)
@@ -401,31 +414,124 @@ def buildAttributes(self, node, attrs, already_processed):
401414
''',
402415
class_names=r'^date$',
403416
)
417+
418+
method230 = MethodSpec(name='validate_SellerOrganisationNamesType',
419+
source='''\
420+
def validate_SellerOrganisationNamesType(self, value):
421+
if ( value.__len__() <= 3 ):
422+
pass
423+
else:
424+
raise_value_error( value.__len__(), 'Expected maximum of 3 elements' )
425+
return value
426+
''',
427+
class_names=r'^SellerPartyDetailsType$',
428+
)
429+
430+
method231 = MethodSpec(name='validate_SellerOrganisationBankName',
431+
source='''\
432+
def validate_SellerOrganisationBankName(self, value):
433+
if ( value.__len__() <= 2 ):
434+
pass
435+
else:
436+
raise_value_error( value.__len__(), 'Expected maximum of 3 elements' )
437+
return value
438+
''',
439+
class_names=r'^SellerPartyDetailsType$',
440+
)
441+
442+
method240 = MethodSpec(name='buildChildren',
443+
source='''\
444+
def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
445+
if nodeName_ == 'SellerPartyIdentifier':
446+
SellerPartyIdentifier_ = child_.text
447+
SellerPartyIdentifier_ = self.gds_validate_string(SellerPartyIdentifier_, node, 'SellerPartyIdentifier')
448+
self.SellerPartyIdentifier = SellerPartyIdentifier_
449+
self.validate_genericStringType1_48(self.SellerPartyIdentifier) # validate type genericStringType1_48
450+
elif nodeName_ == 'SellerOrganisationNames':
451+
obj_ = SellerOrganisationNamesType.factory()
452+
obj_.build(child_)
453+
self.SellerOrganisationNames.append(obj_)
454+
self.validate_SellerOrganisationNamesType(self.SellerOrganisationNames)
455+
obj_.original_tagname_ = 'SellerOrganisationNames'
456+
elif nodeName_ == 'SellerOrganisationBankName':
457+
SellerOrganisationBankName_ = child_.text
458+
SellerOrganisationBankName_ = self.gds_validate_string(SellerOrganisationBankName_, node, 'SellerOrganisationBankName')
459+
self.SellerOrganisationBankName.append(SellerOrganisationBankName_)
460+
self.validate_genericStringType1_35(self.SellerOrganisationBankName) # validate type genericStringType1_35
461+
self.validate_SellerOrganisationBankName(self.SellerOrganisationBankName)
462+
elif nodeName_ == 'SellerPostalAddressDetails':
463+
obj_ = SellerPostalAddressDetailsType.factory()
464+
obj_.build(child_)
465+
self.SellerPostalAddressDetails = obj_
466+
obj_.original_tagname_ = 'SellerPostalAddressDetails'
467+
elif nodeName_ == 'IndustryCode':
468+
IndustryCode_ = child_.text
469+
IndustryCode_ = self.gds_validate_string(IndustryCode_, node, 'IndustryCode')
470+
self.IndustryCode = IndustryCode_
471+
self.validate_genericStringType0_6(self.IndustryCode) # validate type genericStringType0_6
472+
''',
473+
class_names=r'^SellerPartyDetailsType$',
474+
)
475+
476+
method250 = MethodSpec(name='validate_SellerOrganisationName',
477+
source='''\
478+
def validate_SellerOrganisationName(self, value):
479+
if ( value.__len__() <= 2 ):
480+
pass
481+
else:
482+
raise_value_error( value.__len__(), 'Expected maximum of 2 elements' )
483+
return value
484+
''',
485+
class_names=r'^SellerOrganisationNamesType$',
486+
)
487+
488+
method260 = MethodSpec(name='buildChildren',
489+
source='''\
490+
def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
491+
if nodeName_ == 'SellerOrganisationName':
492+
SellerOrganisationName_ = child_.text
493+
SellerOrganisationName_ = self.gds_validate_string(SellerOrganisationName_, node, 'SellerOrganisationName')
494+
self.SellerOrganisationName.append(SellerOrganisationName_)
495+
self.validate_genericStringType2_70(self.SellerOrganisationName) # validate type genericStringType2_70
496+
self.validate_SellerOrganisationName(self.SellerOrganisationName)
497+
''',
498+
class_names=r'^SellerOrganisationNamesType$',
499+
)
500+
404501
#
405502
# Provide a list of your method specifications.
406503
# This list of specifications must be named METHOD_SPECS.
407504
#
408505
METHOD_SPECS = (
409-
method1,
410-
method2,
411-
method3,
412-
method4,
413-
method5,
414-
method6,
415-
method7,
416-
method8,
417-
method9,
418506
method10,
419-
method11,
420-
method12,
421-
method13,
422-
method14,
423-
method15,
424-
method16,
425-
method17,
426-
method18,
427-
method19,
428507
method20,
508+
method30,
509+
method40,
510+
method50,
511+
method60,
512+
method70,
513+
method80,
514+
method90,
515+
method91,
516+
method100,
517+
method110,
518+
method120,
519+
method130,
520+
method140,
521+
method150,
522+
method160,
523+
method170,
524+
method180,
525+
method190,
526+
method200,
527+
method210,
528+
method220,
529+
method230,
530+
method230,
531+
method231,
532+
method240,
533+
method250,
534+
method260,
429535
)
430536

431537

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
if ( isinstance( value, basestring ) and 8 <= value.__len__() <= 11 ):
2-
pass
1+
if ( isinstance( value, basestring ) ):
2+
if ( 8 <= value.__len__() <= 11 ):
3+
pass
4+
else:
5+
raise_value_error( value, 'Expected value between 8..11 characters' )
36
else:
4-
raise_value_error( value, 'Expected value between 8..11 characters' )
7+
for v in value:
8+
if ( isinstance( v, basestring ) and 8 <= v.__len__() <= 11 ):
9+
pass
10+
else:
11+
raise_value_error( v, 'Expected value between 8..11 characters' )
512
return value
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
if ( isinstance( value, basestring ) and 0 <= value.__len__() <= 35 ):
2-
pass
1+
if ( isinstance( value, basestring ) ):
2+
if ( 0 <= value.__len__() <= 35 ):
3+
pass
4+
else:
5+
raise_value_error( value, 'Expected value between 0..35 characters' )
36
else:
4-
raise_value_error( value, 'Expected value between 0..35 characters' )
7+
for v in value:
8+
if ( isinstance( v, basestring ) and 0 <= v.__len__() <= 35 ):
9+
pass
10+
else:
11+
raise_value_error( v, 'Expected value between 0..35 characters' )
512
return value

0 commit comments

Comments
 (0)