Skip to content

Commit 96aa276

Browse files
Merge pull request #127 from aboutcode-org/125_crash-in-licensing.validate
Update try/except to prevent crash in licensing.validate
2 parents 3df597c + 867a5e6 commit 96aa276

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

src/license_expression/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,10 +808,14 @@ def validate(self, expression, strict=True, **kwargs):
808808
# Check `expression` type and syntax
809809
try:
810810
parsed_expression = self.parse(expression, strict=strict)
811-
except ExpressionError as e:
811+
except ExpressionParseError as e:
812812
expression_info.errors.append(str(e))
813813
expression_info.invalid_symbols.append(e.token_string)
814814
return expression_info
815+
except ExpressionError as e:
816+
expression_info.errors.append(str(e))
817+
expression_info.invalid_symbols.append(str(expression))
818+
return expression_info
815819

816820
# Check `expression` keys (validate)
817821
try:

tests/test_license_expression.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2478,6 +2478,15 @@ def test_validation_invalid_license_key(self):
24782478
assert result.errors == ["Unknown license key(s): cool-license"]
24792479
assert result.invalid_symbols == ["cool-license"]
24802480

2481+
def test_validation_invalid_license_key_chara(self):
2482+
result = self.licensing.validate("cool,license")
2483+
assert result.original_expression == "cool,license"
2484+
assert not result.normalized_expression
2485+
assert result.errors == [
2486+
"Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'cool,license'"
2487+
]
2488+
assert result.invalid_symbols == ["cool,license"]
2489+
24812490
def test_validate_exception(self):
24822491
result = self.licensing.validate("GPL-2.0-or-later WITH WxWindows-exception-3.1")
24832492
assert result.original_expression == "GPL-2.0-or-later WITH WxWindows-exception-3.1"

0 commit comments

Comments
 (0)