diff options
| author | Jenkins <jenkins@review.openstack.org> | 2014-07-11 18:22:06 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2014-07-11 18:22:06 +0000 |
| commit | bc6495c6a19abb67a9af9bc94e82e6c12b1a7b83 (patch) | |
| tree | 367c6f6c359ebed491cefae63ceabf8ddbe55093 /openstackclient/tests | |
| parent | 70283744a04f868072edc0a31fe49a3122c4bc6e (diff) | |
| parent | 4844a257790deef231176557776754dde929f840 (diff) | |
| download | python-openstackclient-bc6495c6a19abb67a9af9bc94e82e6c12b1a7b83.tar.gz | |
Merge "Add basic timing support"
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/common/test_timing.py | 87 |
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) |
