|
16 | 16 |
|
17 | 17 | import os
|
18 | 18 |
|
| 19 | +import json |
| 20 | + |
19 | 21 | import time
|
20 | 22 |
|
21 | 23 | from unittest.mock import Mock, call
|
@@ -577,43 +579,43 @@ def test_pod_log_empty_lines(self):
|
577 | 579 | self.api.delete_namespaced_pod.assert_called_once_with(name=pod_name, namespace=self.namespace)
|
578 | 580 |
|
579 | 581 | if __name__ == '__main__':
|
580 |
| -def test_watch_with_deserialize_param(self): |
581 |
| - """test watch.stream() deserialize param""" |
582 |
| - # prepare test data |
583 |
| - test_json = '{"type": "ADDED", "object": {"metadata": {"name": "test1", "resourceVersion": "1"}, "spec": {}, "status": {}}}' |
584 |
| - fake_resp = Mock() |
585 |
| - fake_resp.close = Mock() |
586 |
| - fake_resp.release_conn = Mock() |
587 |
| - fake_resp.stream = Mock(return_value=[test_json + '\n']) |
588 |
| - |
589 |
| - fake_api = Mock() |
590 |
| - fake_api.get_namespaces = Mock(return_value=fake_resp) |
591 |
| - fake_api.get_namespaces.__doc__ = ':return: V1NamespaceList' |
592 |
| - |
593 |
| - # test case with deserialize=True |
594 |
| - w = Watch() |
595 |
| - for e in w.stream(fake_api.get_namespaces, deserialize=True): |
596 |
| - self.assertEqual("ADDED", e['type']) |
597 |
| - # Verify that the object is deserialized correctly |
598 |
| - self.assertTrue(hasattr(e['object'], 'metadata')) |
599 |
| - self.assertEqual("test1", e['object'].metadata.name) |
600 |
| - self.assertEqual("1", e['object'].metadata.resource_version) |
601 |
| - # Verify that the original object is saved |
602 |
| - self.assertEqual(json.loads(test_json)['object'], e['raw_object']) |
603 |
| - |
604 |
| - # test case with deserialize=False |
605 |
| - w = Watch() |
606 |
| - for e in w.stream(fake_api.get_namespaces, deserialize=False): |
607 |
| - self.assertEqual("ADDED", e['type']) |
608 |
| - # The validation object remains in the original dictionary format |
609 |
| - self.assertIsInstance(e['object'], dict) |
610 |
| - self.assertEqual("test1", e['object']['metadata']['name']) |
611 |
| - self.assertEqual("1", e['object']['metadata']['resourceVersion']) |
612 |
| - |
613 |
| - # verify the api is called twice |
614 |
| - fake_api.get_namespaces.assert_has_calls([ |
615 |
| - call(_preload_content=False, watch=True), |
616 |
| - call(_preload_content=False, watch=True) |
617 |
| - ]) |
618 |
| -if __name__ == '__main__': |
619 |
| - unittest.main() |
| 582 | + def test_watch_with_deserialize_param(self): |
| 583 | + """test watch.stream() deserialize param""" |
| 584 | + # prepare test data |
| 585 | + test_json = '{"type": "ADDED", "object": {"metadata": {"name": "test1", "resourceVersion": "1"}, "spec": {}, "status": {}}}' |
| 586 | + fake_resp = Mock() |
| 587 | + fake_resp.close = Mock() |
| 588 | + fake_resp.release_conn = Mock() |
| 589 | + fake_resp.stream = Mock(return_value=[test_json + '\n']) |
| 590 | + |
| 591 | + fake_api = Mock() |
| 592 | + fake_api.get_namespaces = Mock(return_value=fake_resp) |
| 593 | + fake_api.get_namespaces.__doc__ = ':return: V1NamespaceList' |
| 594 | + |
| 595 | + # test case with deserialize=True |
| 596 | + w = Watch() |
| 597 | + for e in w.stream(fake_api.get_namespaces, deserialize=True): |
| 598 | + self.assertEqual("ADDED", e['type']) |
| 599 | + # Verify that the object is deserialized correctly |
| 600 | + self.assertTrue(hasattr(e['object'], 'metadata')) |
| 601 | + self.assertEqual("test1", e['object'].metadata.name) |
| 602 | + self.assertEqual("1", e['object'].metadata.resource_version) |
| 603 | + # Verify that the original object is saved |
| 604 | + self.assertEqual(json.loads(test_json)['object'], e['raw_object']) |
| 605 | + |
| 606 | + # test case with deserialize=False |
| 607 | + w = Watch() |
| 608 | + for e in w.stream(fake_api.get_namespaces, deserialize=False): |
| 609 | + self.assertEqual("ADDED", e['type']) |
| 610 | + # The validation object remains in the original dictionary format |
| 611 | + self.assertIsInstance(e['object'], dict) |
| 612 | + self.assertEqual("test1", e['object']['metadata']['name']) |
| 613 | + self.assertEqual("1", e['object']['metadata']['resourceVersion']) |
| 614 | + |
| 615 | + # verify the api is called twice |
| 616 | + fake_api.get_namespaces.assert_has_calls([ |
| 617 | + call(_preload_content=False, watch=True), |
| 618 | + call(_preload_content=False, watch=True) |
| 619 | + ]) |
| 620 | + if __name__ == '__main__': |
| 621 | + unittest.main() |
0 commit comments