Test embedded Model.DoesNotExist error

This commit is contained in:
Andrew Brookins 2021-09-29 20:32:44 -07:00
parent ef58e854c1
commit b80addbb13
2 changed files with 15 additions and 14 deletions

View file

@ -92,11 +92,7 @@ class RedisModelError(Exception):
class NotFoundError(Exception): class NotFoundError(Exception):
""" """A query found no results."""
A query found no results.
TODO: embed in Model class?
"""
class Operators(Enum): class Operators(Enum):
@ -671,16 +667,15 @@ class ModelMeta(ModelMetaclass):
key = f"{new_class.__module__}.{new_class.__name__}" key = f"{new_class.__module__}.{new_class.__name__}"
model_registry[key] = new_class model_registry[key] = new_class
if not hasattr(new_class, 'NotFoundError'): new_class.add_to_class(
new_class.add_to_class( 'NotFoundError',
subclass_exception(
'NotFoundError', 'NotFoundError',
subclass_exception( tuple(
'NotFoundError', x.NotFoundError for x in bases if hasattr(x, '_meta') and not issubclass(x, abc.ABC)
tuple( ) or (NotFoundError,),
x.NotFoundError for x in bases if hasattr(x, '_meta') and not issubclass(x, abc.ABC) attrs['__module__'],
), attached_to=new_class))
attrs['__module__'],
attached_to=new_class))
# Create proxies for each model field so that we can use the field # Create proxies for each model field so that we can use the field
# in queries, like Model.get(Model.field_name == 1) # in queries, like Model.get(Model.field_name == 1)

View file

@ -310,6 +310,12 @@ def test_sorting(members):
Member.find().sort_by('join_date').all() Member.find().sort_by('join_date').all()
def test_not_found():
with pytest.raises(Member.NotFoundError):
# This ID does not exist.
Member.get(1000)
def test_schema(): def test_schema():
class Address(BaseHashModel): class Address(BaseHashModel):
a_string: str = Field(index=True) a_string: str = Field(index=True)