55import random
66
77import docker
8- from botocore .exceptions import ClientError
98from pydantic import BaseModel as PydanticBaseModel , Field , root_validator , ValidationError
109from pydanticrud import BaseModel , DynamoDbBackend , ConditionCheckFailed
1110import pytest
@@ -67,7 +66,6 @@ class ComplexKeyModel(BaseModel):
6766 category_id : int
6867 notification_id : str
6968 thread_id : str
70- body : str = 'some random string'
7169
7270 class Config :
7371 title = "ComplexModelTitle123"
@@ -398,7 +396,7 @@ def test_query_with_hash_key_complex(dynamo, complex_query_data):
398396
399397@pytest .mark .parametrize ('order' , ('asc' , 'desc' ))
400398def test_ordered_query_with_hash_key_complex (dynamo , complex_query_data , order ):
401- middle_record = complex_query_data [(len (complex_query_data ) // 2 )]
399+ middle_record = complex_query_data [(len (complex_query_data )// 2 )]
402400 res = ComplexKeyModel .query (
403401 Rule (f"account == '{ middle_record ['account' ]} ' and sort_date_key >= '{ middle_record ['sort_date_key' ]} '" ),
404402 order = order
@@ -416,9 +414,8 @@ def test_ordered_query_with_hash_key_complex(dynamo, complex_query_data, order):
416414@pytest .mark .parametrize ('order' , ('asc' , 'desc' ))
417415def test_pagination_query_with_hash_key_complex (dynamo , complex_query_data , order ):
418416 page_size = 2
419- middle_record = complex_query_data [(len (complex_query_data ) // 2 )]
420- query_rule = Rule (
421- f"account == '{ middle_record ['account' ]} ' and sort_date_key >= '{ middle_record ['sort_date_key' ]} '" )
417+ middle_record = complex_query_data [(len (complex_query_data )// 2 )]
418+ query_rule = Rule (f"account == '{ middle_record ['account' ]} ' and sort_date_key >= '{ middle_record ['sort_date_key' ]} '" )
422419 res = ComplexKeyModel .query (query_rule , order = order , limit = page_size )
423420 res_data = [(m .account , m .sort_date_key ) for m in res ]
424421 check_data = sorted ([
@@ -435,13 +432,13 @@ def test_pagination_query_with_hash_key_complex(dynamo, complex_query_data, orde
435432 (m ["account" ], m ["sort_date_key" ])
436433 for m in complex_query_data
437434 if m ["account" ] == middle_record ['account' ] and m ["sort_date_key" ] >= middle_record ['sort_date_key' ]
438- ], reverse = order == 'desc' )[page_size :page_size * 2 ]
435+ ], reverse = order == 'desc' )[page_size :page_size * 2 ]
439436 assert res_data == check_data
440437
441438
442439def test_pagination_query_with_index_complex (dynamo , complex_query_data ):
443440 page_size = 2
444- middle_record = complex_query_data [(len (complex_query_data ) // 2 )]
441+ middle_record = complex_query_data [(len (complex_query_data )// 2 )]
445442 query_rule = Rule (f"account == '{ middle_record ['account' ]} ' and category_id >= { middle_record ['category_id' ]} " )
446443 check_data = ComplexKeyModel .query (query_rule )
447444 res = ComplexKeyModel .query (query_rule , limit = page_size )
@@ -531,28 +528,3 @@ def test_alias_model_validator_ingest(dynamo):
531528 data .pop ("typ" )
532529 with pytest .raises (ValidationError ):
533530 AliasKeyModel (** data )
534-
535-
536- def test_batch_write (dynamo , complex_table ):
537- response = {"UnprocessedItems" : {}}
538- data = [
539- ComplexKeyModel .parse_obj (complex_model_data_generator ())
540- for x in range (0 , 10 )
541- ]
542- un_proc = ComplexKeyModel .batch_save (data )
543- assert un_proc == response ["UnprocessedItems" ]
544- res_get = ComplexKeyModel .get ((data [0 ].account , data [0 ].sort_date_key ))
545- res_query = ComplexKeyModel .query (Rule (f"account == '{ data [0 ].account } ' and sort_date_key == '{ data [0 ].sort_date_key } '" ))
546- assert res_get == data [0 ]
547- assert res_query .count == 1
548- assert res_query .records == [data [0 ]]
549-
550-
551- def test_message_batch_write_client_exception (dynamo , complex_table ):
552- data = [
553- ComplexKeyModel .parse_obj (complex_model_data_generator (body = "some big string" * 10000 ))
554- for x in range (0 , 2 )
555- ]
556- with pytest .raises (ClientError ) as exc :
557- ComplexKeyModel .batch_save (data )
558- assert exc .value .response ['Error' ]['Message' ] == 'Item size has exceeded the maximum allowed size'
0 commit comments