summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/object
diff options
context:
space:
mode:
authorHonza Pokorny <honza@redhat.com>2017-06-21 12:53:38 -0300
committerHonza Pokorny <honza@redhat.com>2017-07-05 20:08:18 -0300
commitae35a29169ab460cdd5d6b8c26d376c000a5c10e (patch)
treedd11ee942ea877cfbeb329b21516e456f3476a83 /openstackclient/tests/unit/object
parentc0719c36d1a3f268b6bfba4c83aac632f1b546fe (diff)
downloadpython-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.py4
-rw-r--r--openstackclient/tests/unit/object/v1/test_object_all.py43
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)