@@ -1164,7 +1164,7 @@ def test__get_meaning_w_empty_array_value():
11641164 value_pb ._pb .array_value .values .pop ()
11651165
11661166 result = _get_meaning (value_pb , is_list = True )
1167- assert result == ( None , None )
1167+ assert result is None
11681168
11691169
11701170def test__get_meaning_w_array_value ():
@@ -1271,11 +1271,12 @@ def test__get_meaning_w_array_value_meaning_fully_unset():
12711271 sub_value_pb2 .string_value = "bye"
12721272
12731273 result = _get_meaning (value_pb , is_list = True )
1274- assert result == ( None , None )
1274+ assert result is None
12751275
12761276
1277- @pytest .mark .parametrize ("orig_meaning_data" , [0 , 1 ])
1278- def test__set_pb_meaning_w_array_value_fully_unset (orig_meaning_data ):
1277+ @pytest .mark .parametrize ("orig_root_meaning" , [0 ,1 ])
1278+ @pytest .mark .parametrize ("orig_sub_meaning" , [0 ,1 ])
1279+ def test__set_pb_meaning_w_array_value_fully_unset (orig_root_meaning , orig_sub_meaning ):
12791280 """
12801281 call _set_pb_meaning_from_entity with meaning=None data.
12811282 Should not touch proto's meaning field
@@ -1286,15 +1287,35 @@ def test__set_pb_meaning_w_array_value_fully_unset(orig_meaning_data):
12861287
12871288 orig_pb = entity_pb2 .Entity ()
12881289 value_pb = orig_pb ._pb .properties .get_or_create ("value" )
1289- value_pb .meaning = orig_meaning_data
1290+ value_pb .meaning = orig_root_meaning
12901291 sub_value_pb1 = value_pb .array_value .values .add ()
1291- sub_value_pb1 .meaning = orig_meaning_data
1292+ sub_value_pb1 .meaning = orig_sub_meaning
12921293
12931294 entity = Entity (key = "key" )
12941295 entity ._meanings = {"value" : ((None , None ), None )}
12951296 _set_pb_meaning_from_entity (entity , "value" , None , value_pb , is_list = True )
1296- assert value_pb .meaning == orig_meaning_data
1297- assert value_pb .array_value .values [0 ].meaning == orig_meaning_data
1297+ assert value_pb .meaning == orig_root_meaning
1298+ assert value_pb .array_value .values [0 ].meaning == orig_sub_meaning
1299+
1300+
1301+ @pytest .mark .parametrize ("orig_meaning" , [0 , 1 ])
1302+ def test__set_pb_meaning_w_value_unset (orig_meaning ):
1303+ """
1304+ call _set_pb_meaning_from_entity with meaning=None data.
1305+ Should not touch proto's meaning field
1306+ """
1307+ from google .cloud .datastore_v1 .types import entity as entity_pb2
1308+ from google .cloud .datastore .helpers import _set_pb_meaning_from_entity
1309+ from google .cloud .datastore .entity import Entity
1310+
1311+ orig_pb = entity_pb2 .Entity ()
1312+ value_pb = orig_pb ._pb .properties .get_or_create ("value" )
1313+ value_pb .meaning = orig_meaning
1314+
1315+ entity = Entity (key = "key" )
1316+ entity ._meanings = {"value" : (None , None )}
1317+ _set_pb_meaning_from_entity (entity , "value" , None , value_pb , is_list = False )
1318+ assert value_pb .meaning == orig_meaning
12981319
12991320
13001321def test__array_w_meaning_end_to_end ():
0 commit comments