58
58
)
59
59
from aws_lambda_powertools .utilities .data_classes .dynamo_db_stream_event import (
60
60
AttributeValue ,
61
+ AttributeValueType ,
61
62
DynamoDBRecordEventName ,
62
63
DynamoDBStreamEvent ,
63
64
StreamViewType ,
@@ -443,13 +444,43 @@ def test_dynamo_db_stream_trigger_event():
443
444
assert record .user_identity is None
444
445
445
446
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
+
446
474
def test_dynamo_attribute_value_list_value ():
447
475
example_attribute_value = {"L" : [{"S" : "Cookies" }, {"S" : "Coffee" }, {"N" : "3.14159" }]}
448
476
attribute_value = AttributeValue (example_attribute_value )
449
477
list_value = attribute_value .list_value
450
478
assert list_value is not None
451
479
item = list_value [0 ]
452
480
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
453
484
454
485
455
486
def test_dynamo_attribute_value_map_value ():
@@ -461,6 +492,65 @@ def test_dynamo_attribute_value_map_value():
461
492
assert map_value is not None
462
493
item = map_value ["Name" ]
463
494
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 )
464
554
465
555
466
556
def test_event_bridge_event ():
0 commit comments