From 282a1e3fa5749aef9788540dddcdfea46718dc24 Mon Sep 17 00:00:00 2001 From: Chellygel Date: Thu, 30 Apr 2015 09:35:27 -0700 Subject: [PATCH] Adding new tests to cover failure scenarios I also removed a line of code from coverage as it seems the general practice is to ignore these lines in test coverage. This change will bring us to 100% coverage. Change-Id: I49f9de25389935f1d7b82559b41ed605eb77cb2e --- .coveragerc | 2 +- barbicanclient/barbican.py | 5 ++- barbicanclient/tests/test_barbican.py | 48 +++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/.coveragerc b/.coveragerc index 4befcd63..e852b135 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,3 +1,3 @@ [run] branch = True -omit = barbicanclient/openstack/*,barbicanclient/tests/* +omit = barbicanclient/openstack/*,barbicanclient/tests/* \ No newline at end of file diff --git a/barbicanclient/barbican.py b/barbicanclient/barbican.py index e1b3a732..94958e0b 100644 --- a/barbicanclient/barbican.py +++ b/barbicanclient/barbican.py @@ -74,7 +74,7 @@ class Barbican(app.App): else: if not any(v2_arg_combinations): msg = ('ERROR: please specify --os-tenant-id or' - '--os-tenant-name') + ' --os-tenant-name') successful = False if not successful and raise_exc: @@ -276,6 +276,5 @@ def main(argv=sys.argv[1:]): barbican_app = Barbican() return barbican_app.run(argv) - -if __name__ == '__main__': +if __name__ == '__main__': # pragma: no cover sys.exit(main(sys.argv[1:])) diff --git a/barbicanclient/tests/test_barbican.py b/barbicanclient/tests/test_barbican.py index 896f0865..eee5dc81 100644 --- a/barbicanclient/tests/test_barbican.py +++ b/barbicanclient/tests/test_barbican.py @@ -14,6 +14,7 @@ # limitations under the License. import six +from barbicanclient import barbican as barb from barbicanclient.tests import keystone_client_fixtures from barbicanclient.tests import test_client from barbicanclient.barbican import Barbican @@ -108,6 +109,53 @@ class WhenTestingBarbicanCLI(test_client.BaseEntityResource): expected_error_msg ) + def test_check_auth_arguments_v2(self): + args = ("--os-username 'bob' --os-password 'jan' --os-auth-url 'boop'" + " --os-tenant-id 123 --os-identity-api-version '2.0'") + argv, remainder = self.parser.parse_known_args(args.split()) + api_version = argv.os_identity_api_version + barbican = Barbican() + response = barbican.check_auth_arguments(argv, api_version) + self.assertEqual(True, response) + + def test_should_fail_check_auth_arguments_v2(self): + args = ("--os-username bob --os-password jan --os-auth-url boop" + " --os-identity-api-version 2.0") + message = 'ERROR: please specify --os-tenant-id or --os-tenant-name' + argv, remainder = self.parser.parse_known_args(args.split()) + api_version = argv.os_identity_api_version + e = self.assertRaises( + Exception, + self.barbican.check_auth_arguments, + argv, + api_version, + True + ) + self.assertIn(message, str(e)) + + def test_should_fail_create_client_with_no_auth_url(self): + args = '--os-auth-token 1234567890 --os-tenant-id 123' + message = 'ERROR: please specify --os-auth-url' + argv, remainder = self.parser.parse_known_args(args.split()) + e = self.assertRaises( + Exception, self.barbican.create_client, argv + ) + self.assertIn(message, str(e)) + + def test_should_fail_missing_credentials(self): + message = 'ERROR: please specify authentication credentials' + args = '' + argv, remainder = self.parser.parse_known_args(args.split()) + e = self.assertRaises( + Exception, self.barbican.create_client, argv + ) + self.assertIn(message, str(e)) + + def test_main(self): + args = '' + response = barb.main(args) + self.assertEqual(1, response) + class TestBarbicanWithKeystonePasswordAuth( keystone_client_fixtures.KeystoneClientFixture):