brn: fix parsing offsets when coming from string

This commit is contained in:
Iain Learmonth 2022-06-22 16:30:34 +01:00
parent 58028e3629
commit 16c1d26e3b

View file

@ -28,10 +28,10 @@ class BRN:
def from_str(cls, s: str) -> BRN: def from_str(cls, s: str) -> BRN:
parts = s.split(":") parts = s.split(":")
if len(parts) != 6 or parts[0].lower() != "brn" or not is_integer(parts[2]): if len(parts) != 6 or parts[0].lower() != "brn" or not is_integer(parts[2]):
raise TypeError(f"Expected a valid BRN but got {repr(s)}.") raise TypeError(f"Expected a valid BRN but got {repr(s)} (invalid parts).")
resource_parts = parts[4].split("/") resource_parts = parts[5].split("/")
if len(resource_parts) != 5: if len(resource_parts) != 2:
raise TypeError(f"Expected a valid BRN but got {repr(s)}.") raise TypeError(f"Expected a valid BRN but got {repr(s)} (invalid resource parts).")
return cls( return cls(
global_namespace=parts[1], global_namespace=parts[1],
group_id=int(parts[2]), group_id=int(parts[2]),