Skip to content

model.base: fix id_short validation

Leon Mauritz Möller requested to merge backport/id_short_validation into master

This commit backports 445b1d8f from fix/id_short_validation (!78 (merged)).

In RegEx, the $ asserts the end of a string or line. When used in re.match() it asserts the end of the string by default, unless the last character is a newline symbol (\n). Then it asserts the end of the string before the newline. Thus the first regex check doesn't filter valid id_shorts ending in a newline, which it should. See https://docs.python.org/3.9/library/re.html#index-2

Using re.fullmatch() instead fixes this issue, making the ^ and $ unnecessary as well.

Next to adding a test for this behaviour this commit also simplifies the check for an alphabetical character at the start of the id_short. And although both checks could also be merged into one, they are left separate to be able to report more accurate errors.

Merge request reports