@@ -978,7 +978,10 @@ def test_default_none_and_merge_none(self):
978978
979979 def test_default_options_and_merge_none (self ):
980980 default = TransactionOptions (
981- isolation_level = TransactionOptions .IsolationLevel .REPEATABLE_READ
981+ isolation_level = TransactionOptions .IsolationLevel .REPEATABLE_READ ,
982+ read_write = TransactionOptions .ReadWrite (
983+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .PESSIMISTIC ,
984+ ),
982985 )
983986 merge = None
984987 result = self ._callFUT (default , merge )
@@ -988,7 +991,10 @@ def test_default_options_and_merge_none(self):
988991 def test_default_none_and_merge_options (self ):
989992 default = None
990993 merge = TransactionOptions (
991- isolation_level = TransactionOptions .IsolationLevel .SERIALIZABLE
994+ isolation_level = TransactionOptions .IsolationLevel .SERIALIZABLE ,
995+ read_write = TransactionOptions .ReadWrite (
996+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
997+ ),
992998 )
993999 expected = merge
9941000 result = self ._callFUT (default , merge )
@@ -1044,6 +1050,67 @@ def test_default_isolation_and_merge_options_isolation_unspecified(self):
10441050 result = self ._callFUT (default , merge )
10451051 self .assertEqual (result , expected )
10461052
1053+ def test_default_and_merge_read_lock_mode_options (self ):
1054+ default = TransactionOptions (
1055+ read_write = TransactionOptions .ReadWrite (
1056+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .PESSIMISTIC ,
1057+ ),
1058+ )
1059+ merge = TransactionOptions (
1060+ read_write = TransactionOptions .ReadWrite (
1061+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1062+ ),
1063+ exclude_txn_from_change_streams = True ,
1064+ )
1065+ expected = TransactionOptions (
1066+ read_write = TransactionOptions .ReadWrite (
1067+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1068+ ),
1069+ exclude_txn_from_change_streams = True ,
1070+ )
1071+ result = self ._callFUT (default , merge )
1072+ self .assertEqual (result , expected )
1073+
1074+ def test_default_read_lock_mode_and_merge_options (self ):
1075+ default = TransactionOptions (
1076+ read_write = TransactionOptions .ReadWrite (
1077+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1078+ ),
1079+ )
1080+ merge = TransactionOptions (
1081+ read_write = TransactionOptions .ReadWrite (),
1082+ exclude_txn_from_change_streams = True ,
1083+ )
1084+ expected = TransactionOptions (
1085+ read_write = TransactionOptions .ReadWrite (
1086+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1087+ ),
1088+ exclude_txn_from_change_streams = True ,
1089+ )
1090+ result = self ._callFUT (default , merge )
1091+ self .assertEqual (result , expected )
1092+
1093+ def test_default_read_lock_mode_and_merge_options_isolation_unspecified (self ):
1094+ default = TransactionOptions (
1095+ read_write = TransactionOptions .ReadWrite (
1096+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1097+ ),
1098+ )
1099+ merge = TransactionOptions (
1100+ read_write = TransactionOptions .ReadWrite (
1101+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .READ_LOCK_MODE_UNSPECIFIED ,
1102+ ),
1103+ exclude_txn_from_change_streams = True ,
1104+ )
1105+ expected = TransactionOptions (
1106+ read_write = TransactionOptions .ReadWrite (
1107+ read_lock_mode = TransactionOptions .ReadWrite .ReadLockMode .OPTIMISTIC ,
1108+ ),
1109+ exclude_txn_from_change_streams = True ,
1110+ )
1111+ result = self ._callFUT (default , merge )
1112+ self .assertEqual (result , expected )
1113+
10471114
10481115class Test_interval (unittest .TestCase ):
10491116 from google .protobuf .struct_pb2 import Value
0 commit comments