22
33from ravendb .tests .test_base import TestBase
44
5+
56class Item :
67 def __init__ (self , values : Dict [str , str ] = None ):
78 self .values = values
89
10+
911class TestRavenDB13452 (TestBase ):
1012 def setUp (self ):
1113 super ().setUp ()
1214
15+ def test_can_modify_dictionary_with_patch_add (self ):
16+ with self .store .open_session () as session :
17+ item = Item ({"Key1" : "Value1" , "Key2" : "Value2" })
18+ session .store (item , "items/1" )
19+ session .save_changes ()
20+
21+ with self .store .open_session () as session :
22+ item = session .load ("items/1" , Item )
23+ session .advanced .patch_object (item , "values" , lambda dict_ : dict_ .put ("Key3" , "Value3" ))
24+ session .save_changes ()
25+
26+ with self .store .open_session () as session :
27+ item = session .load ("items/1" , dict )
28+ values = item .get ("values" , None )
29+ self .assertIsNotNone (values )
30+ self .assertEqual (3 , len (values ))
31+ self .assertEqual ("Value1" , values .get ("Key1" ))
32+ self .assertEqual ("Value2" , values .get ("Key2" ))
33+ self .assertEqual ("Value3" , values .get ("Key3" ))
34+
1335 def test_can_modify_dictionary_with_patch_remove (self ):
1436 with self .store .open_session () as session :
1537 item = Item ()
@@ -29,11 +51,9 @@ def test_can_modify_dictionary_with_patch_remove(self):
2951
3052 with self .store .open_session () as session :
3153 item = session .load ("items/1" , dict )
32- values = item .get ("values" )
54+ values = item .get ("values" , None )
3355 self .assertIsNotNone (values )
3456 self .assertEqual (2 , len (values ))
3557
3658 self .assertEqual ("Value1" , values .get ("Key1" ))
3759 self .assertEqual ("Value3" , values .get ("Key3" ))
38-
39-
0 commit comments