From 5ec5c9dc42de73a85287889bd82d3eb9b60984c5 Mon Sep 17 00:00:00 2001 From: Vincent Llorens Date: Wed, 22 Feb 2017 17:31:50 +0100 Subject: [PATCH] add some unit tests for Trust Sem-Ver: bugfix Change-Id: Ie4ca5c7ff5e8ae0a835650751571319ffc4a93ba --- .../unit/test_client_keystonev3_trust.py | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 synergy/tests/unit/test_client_keystonev3_trust.py diff --git a/synergy/tests/unit/test_client_keystonev3_trust.py b/synergy/tests/unit/test_client_keystonev3_trust.py new file mode 100644 index 0000000..b288616 --- /dev/null +++ b/synergy/tests/unit/test_client_keystonev3_trust.py @@ -0,0 +1,98 @@ +# coding: utf-8 +# +# 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 the Trust class. + +""" + +import mock + +from datetime import datetime +from synergy.client.keystone_v3 import Trust +from synergy.tests import base + + +class TestTrust(base.TestCase): + + def setUp(self): + super(TestTrust, self).setUp() + + def test_trust_no_expires_at(self): + data = { + "trust": { + "id": 1, + "impersonation": False, + "roles_links": "some links", + "trustor_user_id": 0, + "trustee_user_id": 1, + "links": "some links", + "roles": "roll roll roll", + "remaining_uses": 10, + "expires_at": None, + "project_id": 46}} + trust = Trust(data) + + self.assertEqual(1, trust.getId()) + self.assertEqual(False, trust.isImpersonations()) + self.assertEqual("some links", trust.getRolesLinks()) + self.assertEqual(0, trust.getTrustorUserId()) + self.assertEqual(1, trust.getTrusteeUserId()) + self.assertEqual("some links", trust.getlinks()) + self.assertEqual(46, trust.getProjectId()) + self.assertEqual("roll roll roll", trust.getRoles()) + self.assertEqual(10, trust.getRemainingUses()) + self.assertIsNone(trust.getExpiration()) + self.assertEqual(False, trust.isExpired()) + + def test_trust_not_expired(self): + mock_utcnow = datetime(2000, 1, 1) + data = { + "trust": { + "id": 1, + "impersonation": False, + "roles_links": "some links", + "trustor_user_id": 0, + "trustee_user_id": 1, + "links": "some links", + "roles": "roll roll roll", + "remaining_uses": 10, + "expires_at": "1900-01-01T00:00:00.000Z", + "project_id": 46}} + trust = Trust(data) + + self.assertEqual(datetime(1900, 1, 1, 0, 0, 0), trust.getExpiration()) + with mock.patch('datetime.datetime') as m: + m.utcnow.return_value = mock_utcnow + self.assertEqual(True, trust.isExpired()) + + def test_trust_expired(self): + mock_utcnow = datetime(2099, 1, 1) + data = { + "trust": { + "id": 1, + "impersonation": False, + "roles_links": "some links", + "trustor_user_id": 0, + "trustee_user_id": 1, + "links": "some links", + "roles": "roll roll roll", + "remaining_uses": 10, + "expires_at": "2099-01-01T00:00:00.000Z", + "project_id": 46}} + trust = Trust(data) + + self.assertEqual(datetime(2099, 1, 1, 0, 0, 0), trust.getExpiration()) + with mock.patch('datetime.datetime') as m: + m.utcnow.return_value = mock_utcnow + self.assertEqual(False, trust.isExpired())