summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorUnmesh Gurjar <unmesh.gurjar@vertex.co.in>2012-04-03 11:45:22 +0530
committerUnmesh Gurjar <unmesh.gurjar@vertex.co.in>2012-05-09 12:10:09 +0530
commitb69dbc2f2748cf3261dce02057c60cdb7affd4ce (patch)
treeede3ac89f151bef7bc48911b081a34dec32a8e94 /tests
parent2bf26cf47d650346fbe8c84701f19f36ed7b4624 (diff)
downloadkeystone-b69dbc2f2748cf3261dce02057c60cdb7affd4ce.tar.gz
keystone-b69dbc2f2748cf3261dce02057c60cdb7affd4ce.tar.xz
keystone-b69dbc2f2748cf3261dce02057c60cdb7affd4ce.zip
Added tenant name validation. Fixes bug 966249.
1. Verified name length while creating/updating tenant (for all backends). 2. Disallowed blank tenant name in create/update. 3. Added unit test coverage. Change-Id: Ied1e2707ba16e14d791308fb618ca18effa0245f
Diffstat (limited to 'tests')
-rw-r--r--tests/test_backend.py62
-rw-r--r--tests/test_backend_kvs.py1
-rw-r--r--tests/test_backend_sql.py2
3 files changed, 63 insertions, 2 deletions
diff --git a/tests/test_backend.py b/tests/test_backend.py
index d7079ba6..c5404ad3 100644
--- a/tests/test_backend.py
+++ b/tests/test_backend.py
@@ -303,6 +303,65 @@ class IdentityTests(object):
tenants = self.identity_api.get_tenants_for_user('foo')
self.assertIn(tenant_id, tenants)
+ def test_create_tenant_long_name_fails(self):
+ tenant = {'id': 'fake1', 'name': 'a' * 65}
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.create_tenant,
+ tenant['id'],
+ tenant)
+
+ def test_create_tenant_blank_name_fails(self):
+ tenant = {'id': 'fake1', 'name': ''}
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.create_tenant,
+ tenant['id'],
+ tenant)
+
+ def test_create_tenant_invalid_name_fails(self):
+ tenant = {'id': 'fake1', 'name': None}
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.create_tenant,
+ tenant['id'],
+ tenant)
+ tenant = {'id': 'fake1', 'name': 123}
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.create_tenant,
+ tenant['id'],
+ tenant)
+
+ def test_update_tenant_blank_name_fails(self):
+ tenant = {'id': 'fake1', 'name': 'fake1'}
+ self.identity_api.create_tenant('fake1', tenant)
+ tenant['name'] = ''
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.update_tenant,
+ tenant['id'],
+ tenant)
+
+ def test_update_tenant_long_name_fails(self):
+ tenant = {'id': 'fake1', 'name': 'fake1'}
+ self.identity_api.create_tenant('fake1', tenant)
+ tenant['name'] = 'a' * 65
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.update_tenant,
+ tenant['id'],
+ tenant)
+
+ def test_update_tenant_invalid_name_fails(self):
+ tenant = {'id': 'fake1', 'name': 'fake1'}
+ self.identity_api.create_tenant('fake1', tenant)
+ tenant['name'] = None
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.update_tenant,
+ tenant['id'],
+ tenant)
+
+ tenant['name'] = 123
+ self.assertRaises(exception.ValidationError,
+ self.identity_api.update_tenant,
+ tenant['id'],
+ tenant)
+
class TokenTests(object):
def test_token_crud(self):
@@ -326,7 +385,8 @@ class TokenTests(object):
def test_expired_token(self):
token_id = uuid.uuid4().hex
- expire_time = datetime.datetime.utcnow() - datetime.timedelta(minutes=1)
+ expire_time = datetime.datetime.utcnow() - datetime.timedelta(
+ minutes=1)
data = {'id': token_id, 'a': 'b', 'expires': expire_time}
data_ref = self.token_api.create_token(token_id, data)
self.assertDictEqual(data_ref, data)
diff --git a/tests/test_backend_kvs.py b/tests/test_backend_kvs.py
index 6e2f0d4e..695fcd54 100644
--- a/tests/test_backend_kvs.py
+++ b/tests/test_backend_kvs.py
@@ -13,6 +13,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+
from keystone import test
from keystone.identity.backends import kvs as identity_kvs
from keystone.token.backends import kvs as token_kvs
diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py
index 9ccc7826..5cb04f16 100644
--- a/tests/test_backend_sql.py
+++ b/tests/test_backend_sql.py
@@ -70,7 +70,7 @@ class SqlIdentity(test.TestCase, test_backend.IdentityTests):
def test_create_null_tenant_name(self):
tenant = {'id': uuid.uuid4().hex,
'name': None}
- self.assertRaises(exception.Conflict,
+ self.assertRaises(exception.ValidationError,
self.identity_api.create_tenant,
tenant['id'],
tenant)