@@ -27,13 +27,13 @@ def test_watch_with_decode(self):
27
27
fake_resp .release_conn = Mock ()
28
28
fake_resp .read_chunked = Mock (
29
29
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' ,
34
34
'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 ' ,
37
37
'should_not_happened\n ' ])
38
38
39
39
fake_api = Mock ()
@@ -46,6 +46,10 @@ def test_watch_with_decode(self):
46
46
self .assertEqual ("ADDED" , e ['type' ])
47
47
# make sure decoder worked and we got a model with the right name
48
48
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 )
49
53
count += 1
50
54
# make sure we can stop the watch and the last event with won't be
51
55
# returned
@@ -133,6 +137,19 @@ def test_unmarshal_with_no_return_type(self):
133
137
self .assertEqual (["test1" ], event ['object' ])
134
138
self .assertEqual (["test1" ], event ['raw_object' ])
135
139
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
+
136
153
def test_watch_with_exception (self ):
137
154
fake_resp = Mock ()
138
155
fake_resp .close = Mock ()
0 commit comments