wip
This commit is contained in:
@@ -1,7 +1,40 @@
|
||||
from datetime import datetime
|
||||
from ipaddress import IPv4Address
|
||||
|
||||
import pytest
|
||||
from botocore.exceptions import ClientError
|
||||
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer, TransactItems
|
||||
from layercake.dynamodb import (
|
||||
DynamoDBPersistenceLayer,
|
||||
Key,
|
||||
KeyPair,
|
||||
TransactItems,
|
||||
serialize,
|
||||
)
|
||||
|
||||
|
||||
def test_serialize():
|
||||
assert serialize(
|
||||
{
|
||||
'id': '123',
|
||||
'sk': 'abc',
|
||||
'date': datetime.fromisoformat('2025-03-20T18:29:10.713994'),
|
||||
'ip': IPv4Address('127.0.0.1'),
|
||||
}
|
||||
) == {
|
||||
'id': {'S': '123'},
|
||||
'sk': {'S': 'abc'},
|
||||
'date': {'S': '2025-03-20T18:29:10.713994'},
|
||||
'ip': {'S': '127.0.0.1'},
|
||||
}
|
||||
|
||||
|
||||
def test_key():
|
||||
assert Key(('122', 'abc'), prefix='schedules') == 'schedules#122#abc'
|
||||
|
||||
|
||||
def test_keypair():
|
||||
assert KeyPair('123', 'abc') == {'id': '123', 'sk': 'abc'}
|
||||
|
||||
|
||||
def test_transact_write_items(dynamodb_client):
|
||||
@@ -33,5 +66,6 @@ def test_transact_write_items(dynamodb_client):
|
||||
},
|
||||
cond_expr='attribute_not_exists(sk)',
|
||||
)
|
||||
|
||||
with pytest.raises(ClientError):
|
||||
user_layer.transact_write_items(transact)
|
||||
|
||||
21
layercake/tests/test_funcs.py
Normal file
21
layercake/tests/test_funcs.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from layercake.funcs import omit, pick
|
||||
|
||||
|
||||
def test_omit():
|
||||
values = {'indigo': '#4b0082', 'navy': '#000080'}
|
||||
assert omit(['indigo'], values) == {'navy': '#000080'}
|
||||
assert omit(['test'], values) == values
|
||||
|
||||
|
||||
def test_pick():
|
||||
values = {'indigo': '#4b0082', 'navy': '#000080'}
|
||||
assert pick(['navy'], values) == {'navy': '#000080'}
|
||||
assert pick(['test'], values) == {}
|
||||
|
||||
|
||||
def test_pick_default_val():
|
||||
values = {'name': 'test'}
|
||||
assert pick(['name', 'surname'], values, exclude_none=False, default=False) == {
|
||||
'name': 'test',
|
||||
'surname': False,
|
||||
}
|
||||
Reference in New Issue
Block a user