Skip to content

Commit f6c8fbd

Browse files
committed
Create validate_license_key method #56
Signed-off-by: Jono Yang <[email protected]>
1 parent ec9242f commit f6c8fbd

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/license_expression/__init__.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,12 @@ def unknown_license_keys(self, expression, unique=True, **kwargs):
408408
symbols = self.unknown_license_symbols(expression, unique=False, **kwargs)
409409
return self._keys(symbols, unique)
410410

411+
def validate_license_keys(self, expression):
412+
unknown_keys = self.unknown_license_keys(expression, unique=True)
413+
if unknown_keys:
414+
msg = 'Unknown license key(s): {}'.format(', '.join(unknown_keys))
415+
raise ExpressionError(msg)
416+
411417
def parse(self, expression, validate=False, strict=False, simple=False, **kwargs):
412418
"""
413419
Return a new license LicenseExpression object by parsing a license
@@ -475,10 +481,7 @@ def parse(self, expression, validate=False, strict=False, simple=False, **kwargs
475481
raise ExpressionError('expression must be a LicenseExpression once parsed.')
476482

477483
if validate:
478-
unknown_keys = self.unknown_license_keys(expression, unique=True)
479-
if unknown_keys:
480-
msg = 'Unknown license key(s): {}'.format(', '.join(unknown_keys))
481-
raise ExpressionError(msg)
484+
self.validate_license_keys(expression)
482485

483486
return expression
484487

@@ -721,9 +724,9 @@ def set_ExpressionInfo_fields(parsed_expression, expression_info):
721724
expression_info.errors.append(str(e))
722725
expression_info.invalid_symbols.append(e.token_string)
723726

724-
# Check `expression` keys
727+
# Check `expression` keys (validate)
725728
try:
726-
parsed_expression = self.parse(expression, validate=True)
729+
self.validate_license_keys(expression)
727730
except ExpressionError as e:
728731
error_message = str(e)
729732
expression_info.errors.append(error_message)

0 commit comments

Comments
 (0)