update exception
This commit is contained in:
@@ -512,7 +512,7 @@ class DynamoDBPersistenceLayer:
|
||||
return True
|
||||
|
||||
|
||||
class MissingError(ValueError):
|
||||
class MissingError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@@ -556,14 +556,9 @@ class DynamoDBCollection:
|
||||
self,
|
||||
persistence_layer: DynamoDBPersistenceLayer,
|
||||
/,
|
||||
exception_cls: Type[ValueError] = MissingError,
|
||||
exception_cls: Type[Exception] = MissingError,
|
||||
tz: str = TZ,
|
||||
) -> None:
|
||||
if not issubclass(exception_cls, ValueError):
|
||||
raise TypeError(
|
||||
f'exception_cls must be a subclass of ValueError, got {exception_cls}'
|
||||
)
|
||||
|
||||
self.persistence_layer = persistence_layer
|
||||
self.exception_cls = exception_cls
|
||||
self.tz = tz
|
||||
@@ -572,11 +567,13 @@ class DynamoDBCollection:
|
||||
self,
|
||||
key: Key,
|
||||
path_spec: str | None = None,
|
||||
/,
|
||||
raise_on_error: bool = True,
|
||||
exception_cls: Type[Exception] | None = None,
|
||||
default: Any = None,
|
||||
delimiter: str = '#',
|
||||
) -> Any:
|
||||
exc_cls = self.exception_cls
|
||||
exc_cls = exception_cls or self.exception_cls
|
||||
data = self.persistence_layer.get_item(key)
|
||||
|
||||
if raise_on_error and not data:
|
||||
@@ -592,6 +589,7 @@ class DynamoDBCollection:
|
||||
def put_item(
|
||||
self,
|
||||
key: Key,
|
||||
*,
|
||||
ttl: int | datetime | None = None,
|
||||
**kwargs: Any,
|
||||
) -> bool:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "layercake"
|
||||
version = "0.1.13"
|
||||
version = "0.1.14"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
||||
@@ -10,7 +10,6 @@ from layercake.dynamodb import (
|
||||
DynamoDBCollection,
|
||||
DynamoDBPersistenceLayer,
|
||||
KeyPair,
|
||||
MissingError,
|
||||
PartitionKey,
|
||||
PrefixKey,
|
||||
TransactItems,
|
||||
@@ -121,8 +120,13 @@ def test_collection_get_item(
|
||||
'update_date': '2023-11-09T12:13:04.308986-03:00',
|
||||
}
|
||||
|
||||
with pytest.raises(MissingError):
|
||||
collect.get_item(key=KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound'))
|
||||
class NotFoundError(Exception): ...
|
||||
|
||||
with pytest.raises(NotFoundError):
|
||||
collect.get_item(
|
||||
KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound'),
|
||||
exception_cls=NotFoundError,
|
||||
)
|
||||
|
||||
|
||||
def test_collection_put_item(
|
||||
|
||||
2
layercake/uv.lock
generated
2
layercake/uv.lock
generated
@@ -488,7 +488,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "layercake"
|
||||
version = "0.1.12"
|
||||
version = "0.1.14"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "arnparse" },
|
||||
|
||||
Reference in New Issue
Block a user