model.base: fix id_short validation
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
Activity
mentioned in merge request !79 (merged)
mentioned in commit cfd95fb3