From f9572140bcd7f871a3f1c1a1b06181c0a61cbf23 Mon Sep 17 00:00:00 2001 From: Morgan Fainberg Date: Sun, 18 Aug 2013 22:17:21 -0700 Subject: [PATCH] Fixing potential NameErrors Fixing a couple locations that could potentially raise NameErrors instead of intended exceptions. These were found by looking at flake8 F821 (undefined name) errors. Added in unit tests to verify NameErrors would not be raised. Change-Id: I8619cb0be495b814335a5aea23daca025484d3c6 --- keystoneclient/utils.py | 2 +- keystoneclient/v3/users.py | 1 + tests/test_utils.py | 9 +++++++++ tests/v3/test_users.py | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/keystoneclient/utils.py b/keystoneclient/utils.py index db3ce74a6..479f7c01c 100644 --- a/keystoneclient/utils.py +++ b/keystoneclient/utils.py @@ -108,7 +108,7 @@ def find_resource(manager, name_or_id): msg = ("Multiple %s matches found for '%s', use an ID to be more" " specific." % (manager.resource_class.__name__.lower(), name_or_id)) - raise exc.CommandError(msg) + raise exceptions.CommandError(msg) def unauthenticated(f): diff --git a/keystoneclient/v3/users.py b/keystoneclient/v3/users.py index f4870939e..7bd781f62 100644 --- a/keystoneclient/v3/users.py +++ b/keystoneclient/v3/users.py @@ -17,6 +17,7 @@ import logging from keystoneclient import base +from keystoneclient import exceptions LOG = logging.getLogger(__name__) diff --git a/tests/test_utils.py b/tests/test_utils.py index ea3b039e2..94c4a09e6 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -38,6 +38,9 @@ class FakeManager(object): raise exceptions.NotFound(resource_id) def find(self, name=None): + if name == '9999': + # NOTE(morganfainberg): special case that raises NoUniqueMatch. + raise exceptions.NoUniqueMatch() for resource_id, resource in self.resources.items(): if resource['name'] == str(name): return resource @@ -76,3 +79,9 @@ class FindResourceTestCase(test_utils.TestCase): def test_find_by_int_name(self): output = utils.find_resource(self.manager, 9876) self.assertEqual(output, self.manager.resources['5678']) + + def test_find_no_unique_match(self): + self.assertRaises(exceptions.CommandError, + utils.find_resource, + self.manager, + 9999) diff --git a/tests/v3/test_users.py b/tests/v3/test_users.py index d1974b2ee..9982feab2 100644 --- a/tests/v3/test_users.py +++ b/tests/v3/test_users.py @@ -20,6 +20,7 @@ import uuid import requests +from keystoneclient import exceptions from keystoneclient.v3 import users from tests.v3 import utils @@ -63,6 +64,10 @@ class UserTests(utils.TestCase, utils.CrudTests): self.mox.ReplayAll() self.manager.add_to_group(user=ref['id'], group=group_id) + self.assertRaises(exceptions.ValidationError, + self.manager.remove_from_group, + user=ref['id'], + group=None) def test_list_users_in_group(self): group_id = uuid.uuid4().hex @@ -110,6 +115,11 @@ class UserTests(utils.TestCase, utils.CrudTests): self.manager.check_in_group(user=ref['id'], group=group_id) + self.assertRaises(exceptions.ValidationError, + self.manager.check_in_group, + user=ref['id'], + group=None) + def test_remove_user_from_group(self): group_id = uuid.uuid4().hex ref = self.new_ref() @@ -131,6 +141,10 @@ class UserTests(utils.TestCase, utils.CrudTests): self.mox.ReplayAll() self.manager.remove_from_group(user=ref['id'], group=group_id) + self.assertRaises(exceptions.ValidationError, + self.manager.remove_from_group, + user=ref['id'], + group=None) def test_create_with_project(self): # Can create a user with the deprecated project option rather than