5858)
5959from aws_lambda_powertools .utilities .data_classes .dynamo_db_stream_event import (
6060 AttributeValue ,
61+ AttributeValueType ,
6162 DynamoDBRecordEventName ,
6263 DynamoDBStreamEvent ,
6364 StreamViewType ,
@@ -443,13 +444,43 @@ def test_dynamo_db_stream_trigger_event():
443444 assert record .user_identity is None
444445
445446
447+ def test_dynamo_attribute_value_b_value ():
448+ example_attribute_value = {"B" : "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk" }
449+
450+ attribute_value = AttributeValue (example_attribute_value )
451+
452+ assert attribute_value .get_type == AttributeValueType .Binary
453+ assert attribute_value .b_value == attribute_value .get_value
454+
455+
456+ def test_dynamo_attribute_value_bs_value ():
457+ example_attribute_value = {"BS" : ["U3Vubnk=" , "UmFpbnk=" , "U25vd3k=" ]}
458+
459+ attribute_value = AttributeValue (example_attribute_value )
460+
461+ assert attribute_value .get_type == AttributeValueType .BinarySet
462+ assert attribute_value .bs_value == attribute_value .get_value
463+
464+
465+ def test_dynamo_attribute_value_bool_value ():
466+ example_attribute_value = {"BOOL" : True }
467+
468+ attribute_value = AttributeValue (example_attribute_value )
469+
470+ assert attribute_value .get_type == AttributeValueType .Boolean
471+ assert attribute_value .bool_value == attribute_value .get_value
472+
473+
446474def test_dynamo_attribute_value_list_value ():
447475 example_attribute_value = {"L" : [{"S" : "Cookies" }, {"S" : "Coffee" }, {"N" : "3.14159" }]}
448476 attribute_value = AttributeValue (example_attribute_value )
449477 list_value = attribute_value .list_value
450478 assert list_value is not None
451479 item = list_value [0 ]
452480 assert item .s_value == "Cookies"
481+ assert attribute_value .get_type == AttributeValueType .List
482+ assert attribute_value .l_value == attribute_value .list_value
483+ assert attribute_value .list_value == attribute_value .get_value
453484
454485
455486def test_dynamo_attribute_value_map_value ():
@@ -461,6 +492,65 @@ def test_dynamo_attribute_value_map_value():
461492 assert map_value is not None
462493 item = map_value ["Name" ]
463494 assert item .s_value == "Joe"
495+ assert attribute_value .get_type == AttributeValueType .Map
496+ assert attribute_value .m_value == attribute_value .map_value
497+ assert attribute_value .map_value == attribute_value .get_value
498+
499+
500+ def test_dynamo_attribute_value_n_value ():
501+ example_attribute_value = {"N" : "123.45" }
502+
503+ attribute_value = AttributeValue (example_attribute_value )
504+
505+ assert attribute_value .get_type == AttributeValueType .Number
506+ assert attribute_value .n_value == attribute_value .get_value
507+
508+
509+ def test_dynamo_attribute_value_ns_value ():
510+ example_attribute_value = {"NS" : ["42.2" , "-19" , "7.5" , "3.14" ]}
511+
512+ attribute_value = AttributeValue (example_attribute_value )
513+
514+ assert attribute_value .get_type == AttributeValueType .NumberSet
515+ assert attribute_value .ns_value == attribute_value .get_value
516+
517+
518+ def test_dynamo_attribute_value_null_value ():
519+ example_attribute_value = {"NULL" : True }
520+
521+ attribute_value = AttributeValue (example_attribute_value )
522+
523+ assert attribute_value .get_type == AttributeValueType .Null
524+ assert attribute_value .null_value == attribute_value .get_value
525+
526+
527+ def test_dynamo_attribute_value_s_value ():
528+ example_attribute_value = {"S" : "Hello" }
529+
530+ attribute_value = AttributeValue (example_attribute_value )
531+
532+ assert attribute_value .get_type == AttributeValueType .String
533+ assert attribute_value .s_value == attribute_value .get_value
534+
535+
536+ def test_dynamo_attribute_value_ss_value ():
537+ example_attribute_value = {"SS" : ["Giraffe" , "Hippo" , "Zebra" ]}
538+
539+ attribute_value = AttributeValue (example_attribute_value )
540+
541+ assert attribute_value .get_type == AttributeValueType .StringSet
542+ assert attribute_value .ss_value == attribute_value .get_value
543+
544+
545+ def test_dynamo_attribute_value_type_error ():
546+ example_attribute_value = {"UNSUPPORTED" : "'value' should raise a type error" }
547+
548+ attribute_value = AttributeValue (example_attribute_value )
549+
550+ with pytest .raises (TypeError ):
551+ print (attribute_value .get_value )
552+ with pytest .raises (ValueError ):
553+ print (attribute_value .get_type )
464554
465555
466556def test_event_bridge_event ():
0 commit comments