From 3496143962a061c980875a7cc35d33f2cdca7b3d Mon Sep 17 00:00:00 2001
From: Gregoo <versatile.mailbox@gmail.com>
Date: Sat, 8 Feb 2025 10:15:54 +0100
Subject: [PATCH] Fix None being submitted to a metadata get()
---
bricktracker/metadata_list.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/bricktracker/metadata_list.py b/bricktracker/metadata_list.py
index 44bf18fe..13b9629c 100644
--- a/bricktracker/metadata_list.py
+++ b/bricktracker/metadata_list.py
@@ -3,7 +3,7 @@ from typing import List, overload, Self, Type, TypeVar
from flask import url_for
-from .exceptions import NotFoundException
+from .exceptions import ErrorException, NotFoundException
from .fields import BrickRecordFields
from .record_list import BrickRecordList
from .set_owner import BrickSetOwner
@@ -113,12 +113,17 @@ class BrickMetadataList(BrickRecordList[T]):
# Grab a specific status
@classmethod
- def get(cls, id: str, /, *, allow_none: bool = False) -> T:
+ def get(cls, id: str | None, /, *, allow_none: bool = False) -> T:
new = cls.new()
- if allow_none and id == '':
+ if allow_none and (id == '' or id is None):
return new.model()
+ if id is None:
+ raise ErrorException('Cannot get {kind} with no ID'.format(
+ kind=new.kind.capitalize()
+ ))
+
if id not in new.mapping:
raise NotFoundException(
'{kind} with ID {id} was not found in the database'.format(