@@ -27,13 +27,13 @@ def test_watch_with_decode(self):
2727 fake_resp .release_conn = Mock ()
2828 fake_resp .read_chunked = Mock (
2929 return_value = [
30- '{"type": "ADDED", "object": {"metadata": {"name": "test1"} '
31- ', "spec": {}, "status": {}}}\n ' ,
32- '{"type": "ADDED", "object": {"metadata": {"name": "test2"} '
33- ', "spec": {}, "sta' ,
30+ '{"type": "ADDED", "object": {"metadata": {"name": "test1", '
31+ '"resourceVersion": "1"}, "spec": {}, "status": {}}}\n ' ,
32+ '{"type": "ADDED", "object": {"metadata": {"name": "test2", '
33+ '"resourceVersion": "2"}, "spec": {}, "sta' ,
3434 'tus": {}}}\n '
35- '{"type": "ADDED", "object": {"metadata": {"name": "test3"} ,'
36- '"spec": {}, "status": {}}}\n ' ,
35+ '{"type": "ADDED", "object": {"metadata": {"name": "test3",'
36+ '"resourceVersion": "3"}, " spec": {}, "status": {}}}\n ' ,
3737 'should_not_happened\n ' ])
3838
3939 fake_api = Mock ()
@@ -46,6 +46,10 @@ def test_watch_with_decode(self):
4646 self .assertEqual ("ADDED" , e ['type' ])
4747 # make sure decoder worked and we got a model with the right name
4848 self .assertEqual ("test%d" % count , e ['object' ].metadata .name )
49+ # make sure decoder worked and updated Watch.resource_version
50+ self .assertEqual (
51+ "%d" % count , e ['object' ].metadata .resource_version )
52+ self .assertEqual ("%d" % count , w .resource_version )
4953 count += 1
5054 # make sure we can stop the watch and the last event with won't be
5155 # returned
@@ -133,6 +137,19 @@ def test_unmarshal_with_no_return_type(self):
133137 self .assertEqual (["test1" ], event ['object' ])
134138 self .assertEqual (["test1" ], event ['raw_object' ])
135139
140+ def test_unmarshal_with_custom_object (self ):
141+ w = Watch ()
142+ event = w .unmarshal_event ('{"type": "ADDED", "object": {"apiVersion":'
143+ '"test.com/v1beta1","kind":"foo","metadata":'
144+ '{"name": "bar", "resourceVersion": "1"}}}' ,
145+ 'object' )
146+ self .assertEqual ("ADDED" , event ['type' ])
147+ # make sure decoder deserialized json into dictionary and updated
148+ # Watch.resource_version
149+ self .assertTrue (isinstance (event ['object' ], dict ))
150+ self .assertEqual ("1" , event ['object' ]['metadata' ]['resourceVersion' ])
151+ self .assertEqual ("1" , w .resource_version )
152+
136153 def test_watch_with_exception (self ):
137154 fake_resp = Mock ()
138155 fake_resp .close = Mock ()
0 commit comments