diff options
| author | Honza Pokorny <honza@redhat.com> | 2017-06-21 12:53:38 -0300 |
|---|---|---|
| committer | Honza Pokorny <honza@redhat.com> | 2017-07-05 20:08:18 -0300 |
| commit | ae35a29169ab460cdd5d6b8c26d376c000a5c10e (patch) | |
| tree | dd11ee942ea877cfbeb329b21516e456f3476a83 /openstackclient/tests/unit/object | |
| parent | c0719c36d1a3f268b6bfba4c83aac632f1b546fe (diff) | |
| download | python-openstackclient-ae35a29169ab460cdd5d6b8c26d376c000a5c10e.tar.gz | |
Allow objects to be streamed to stdout
Change-Id: Icd8de6b2122fe77926d93da9bda08f56c3672a7a
Diffstat (limited to 'openstackclient/tests/unit/object')
| -rw-r--r-- | openstackclient/tests/unit/object/v1/fakes.py | 4 | ||||
| -rw-r--r-- | openstackclient/tests/unit/object/v1/test_object_all.py | 43 |
2 files changed, 47 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/object/v1/fakes.py b/openstackclient/tests/unit/object/v1/fakes.py index 72646d25..5d65d106 100644 --- a/openstackclient/tests/unit/object/v1/fakes.py +++ b/openstackclient/tests/unit/object/v1/fakes.py @@ -13,6 +13,8 @@ # under the License. # +import six + from keystoneauth1 import session from openstackclient.api import object_store_v1 as object_store @@ -67,6 +69,8 @@ OBJECT = { 'last_modified': object_modified_1, } +object_1_content = six.b('object 1 content') + OBJECT_2 = { 'name': object_name_2, 'bytes': object_bytes_2, diff --git a/openstackclient/tests/unit/object/v1/test_object_all.py b/openstackclient/tests/unit/object/v1/test_object_all.py index f215836e..363f2ea2 100644 --- a/openstackclient/tests/unit/object/v1/test_object_all.py +++ b/openstackclient/tests/unit/object/v1/test_object_all.py @@ -13,8 +13,10 @@ import copy +import mock from osc_lib import exceptions from requests_mock.contrib import fixture +import six from openstackclient.object.v1 import object as object_cmds from openstackclient.tests.unit.object.v1 import fakes as object_fakes @@ -202,3 +204,44 @@ class TestObjectShow(TestObjectAll): 'manifest', ) self.assertEqual(datalist, data) + + +class TestObjectSave(TestObjectAll): + + def setUp(self): + super(TestObjectSave, self).setUp() + + # Get the command object to test + self.cmd = object_cmds.SaveObject(self.app, None) + + def test_save_to_stdout(self): + self.requests_mock.register_uri( + 'GET', + object_fakes.ENDPOINT + + '/' + + object_fakes.container_name + + '/' + + object_fakes.object_name_1, + status_code=200, + content=object_fakes.object_1_content + ) + + arglist = [ + object_fakes.container_name, + object_fakes.object_name_1, + '--file', + '-' + ] + + verifylist = [ + ('container', object_fakes.container_name), + ('object', object_fakes.object_name_1), + ('file', '-'), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + with mock.patch('sys.stdout', new=six.BytesIO()) as fake_stdout: + self.cmd.take_action(parsed_args) + + self.assertEqual(fake_stdout.getvalue(), object_fakes.object_1_content) |
