summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-07-11 18:22:06 +0000
committerGerrit Code Review <review@openstack.org>2014-07-11 18:22:06 +0000
commitbc6495c6a19abb67a9af9bc94e82e6c12b1a7b83 (patch)
tree367c6f6c359ebed491cefae63ceabf8ddbe55093 /openstackclient/tests
parent70283744a04f868072edc0a31fe49a3122c4bc6e (diff)
parent4844a257790deef231176557776754dde929f840 (diff)
downloadpython-openstackclient-bc6495c6a19abb67a9af9bc94e82e6c12b1a7b83.tar.gz
Merge "Add basic timing support"
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/common/test_timing.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/openstackclient/tests/common/test_timing.py b/openstackclient/tests/common/test_timing.py
new file mode 100644
index 00000000..aa910b91
--- /dev/null
+++ b/openstackclient/tests/common/test_timing.py
@@ -0,0 +1,87 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+"""Test Timing pseudo-command"""
+
+from openstackclient.common import timing
+from openstackclient.tests import fakes
+from openstackclient.tests import utils
+
+
+timing_url = 'GET http://localhost:5000'
+timing_start = 1404802774.872809
+timing_end = 1404802775.724802
+
+
+class FakeGenericClient(object):
+
+ def __init__(self, **kwargs):
+ self.auth_token = kwargs['token']
+ self.management_url = kwargs['endpoint']
+
+
+class TestTiming(utils.TestCommand):
+
+ def setUp(self):
+ super(TestTiming, self).setUp()
+
+ self.app.timing_data = []
+
+ self.app.client_manager.compute = FakeGenericClient(
+ endpoint=fakes.AUTH_URL,
+ token=fakes.AUTH_TOKEN,
+ )
+
+ self.app.client_manager.volume = FakeGenericClient(
+ endpoint=fakes.AUTH_URL,
+ token=fakes.AUTH_TOKEN,
+ )
+
+ # Get the command object to test
+ self.cmd = timing.Timing(self.app, None)
+
+ def test_timing_list_no_data(self):
+ arglist = []
+ verifylist = []
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+
+ collist = ('URL', 'Seconds')
+ self.assertEqual(collist, columns)
+ datalist = [
+ ('Total', 0.0,)
+ ]
+ self.assertEqual(datalist, data)
+
+ def test_timing_list(self):
+ self.app.timing_data = [
+ (timing_url, timing_start, timing_end),
+ ]
+
+ arglist = []
+ verifylist = []
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+
+ collist = ('URL', 'Seconds')
+ self.assertEqual(collist, columns)
+ timing_sec = timing_end - timing_start
+ datalist = [
+ (timing_url, timing_sec),
+ ('Total', timing_sec)
+ ]
+ self.assertEqual(datalist, data)