summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/tests/unit/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'testapi/testapi-client/testapiclient/tests/unit/utils.py')
-rw-r--r--testapi/testapi-client/testapiclient/tests/unit/utils.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/testapi/testapi-client/testapiclient/tests/unit/utils.py b/testapi/testapi-client/testapiclient/tests/unit/utils.py
new file mode 100644
index 0000000..c59aadd
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/tests/unit/utils.py
@@ -0,0 +1,58 @@
+import httplib
+
+from mock import mock
+from six.moves.urllib import parse
+import testtools
+
+from testapiclient.tests.unit import fakes
+from testapiclient.utils import clientmanager
+
+FAKE_FAILURE = fakes.FakeResponse(status_code=httplib.FORBIDDEN, data='Error')
+
+
+class ParserException(Exception):
+ pass
+
+
+class TestCommand(testtools.TestCase):
+ api_url = 'http://localhost:8000/api/v1/'
+
+ def setUp(self):
+ super(TestCommand, self).setUp()
+ self.env_variables = {
+ 'testapi_url': 'http://localhost:8000/api/v1',
+ 'testapi_cas_auth_url':
+ (
+ 'https://identity.linuxfoundation.org/user' +
+ '/login?destination=cas/login%3Fservice%3D'
+ ),
+ 'testapi_cas_signin_return': '/auth/signin_return'
+ }
+ self.config_mock = mock.patch.dict(
+ 'os.environ', self.env_variables).start()
+ self.fake_stdout = fakes.FakeStdout()
+ self.fake_log = fakes.FakeLog()
+ self.app = fakes.FakeApp(self.fake_stdout, self.fake_log)
+ self.app.client_manager = clientmanager.ClientManager()
+ self.get_mock = mock.patch('requests.Session.get').start()
+ self.post_mock = mock.patch('requests.Session.post').start()
+ self.delete_mock = mock.patch('requests.Session.delete').start()
+ self.put_mock = mock.patch('requests.Session.put').start()
+
+ def check_parser(self, cmd, args, verify_args):
+ cmd_parser = cmd.get_parser('check_parser')
+ try:
+ parsed_args = cmd_parser.parse_args(args)
+ except SystemExit:
+ raise ParserException("Argument parse failed")
+ for av in verify_args:
+ attr, value = av
+ if attr:
+ self.assertIn(attr, parsed_args)
+ self.assertEqual(value, getattr(parsed_args, attr))
+ return parsed_args
+
+ def assert_url(self, actual_url, expected_url):
+ actual_parsed = parse.parse_qs(parse.urlparse(actual_url).query)
+ expected_parsed = parse.parse_qs(parse.urlparse(expected_url).query)
+ assert actual_parsed == expected_parsed