def test_setup(self, mock_credential, mock_clients): user1 = mock.MagicMock(tenant_id="1") user2 = mock.MagicMock(tenant_id="1") user3 = mock.MagicMock(tenant_id="2") mock_clients.return_value.keystone.side_effect = [ user1, user2, user3 ] context = { "task": mock.MagicMock(), "config": { "existing_users": [user1, user2, user3] } } existing_users.ExistingUsers(context).setup() self.assertIn("users", context) self.assertIn("tenants", context) self.assertEqual(3, len(context["users"])) self.assertEqual( { "id": user1.user_id, "credential": mock_credential.return_value, "tenant_id": user1.tenant_id }, context["users"][0] ) self.assertEqual(["1", "2"], sorted(context["tenants"].keys())) self.assertEqual({"id": "1", "name": user1.tenant_name}, context["tenants"]["1"]) self.assertEqual({"id": "2", "name": user3.tenant_name}, context["tenants"]["2"])
def test_setup(self, mock_credential, mock_clients): user1 = mock.MagicMock(tenant_id="1", user_id="1", tenant_name="proj", username="******") user2 = mock.MagicMock(tenant_id="1", user_id="2", tenant_name="proj", username="******") user3 = mock.MagicMock(tenant_id="2", user_id="3", tenant_name="proj", username="******") user_list = [user1, user2, user3] class AuthRef(object): USER_ID_COUNT = 0 PROJECT_ID_COUNT = 0 @property def user_id(self): self.USER_ID_COUNT += 1 return user_list[self.USER_ID_COUNT - 1].user_id @property def project_id(self): self.PROJECT_ID_COUNT += 1 return user_list[self.PROJECT_ID_COUNT - 1].tenant_id mock_clients.return_value.keystone.auth_ref = AuthRef() mock_credential.side_effect = user_list context = { "task": mock.MagicMock(), "config": { "existing_users": user_list } } existing_users.ExistingUsers(context).setup() self.assertIn("users", context) self.assertIn("tenants", context) self.assertEqual(3, len(context["users"])) self.assertEqual( { "id": user1.user_id, "credential": user1, "tenant_id": user1.tenant_id }, context["users"][0]) self.assertEqual(["1", "2"], sorted(context["tenants"].keys())) self.assertEqual({ "id": "1", "name": user1.tenant_name }, context["tenants"]["1"]) self.assertEqual({ "id": "2", "name": user3.tenant_name }, context["tenants"]["2"])
def _get_user_ctx_for_validation(self, ctx): if self.existing_users: ctx["config"] = {"existing_users": self.existing_users} user_context = existing_users.ExistingUsers(ctx) else: user_context = users_ctx.UserGenerator(ctx) return user_context
def test_setup(self, mock_credential, mock_clients): user1 = mock.MagicMock(tenant_id="1", user_id="1", project_name="proj", username="******") user2 = mock.MagicMock(tenant_id="1", user_id="2", project_name="proj", username="******") user3 = mock.MagicMock(tenant_id="2", user_id="3", project_name="proj", username="******") user_list = [user1, user2, user3] for u in user_list: u.get_user_id.return_value = u.user_id u.get_project_id.return_value = u.tenant_id mock_clients.return_value.keystone.side_effect = user_list context = { "task": mock.MagicMock(), "config": { "existing_users": user_list } } existing_users.ExistingUsers(context).setup() self.assertIn("users", context) self.assertIn("tenants", context) self.assertEqual(3, len(context["users"])) self.assertEqual( { "id": user1.user_id, "credential": mock_credential.return_value, "tenant_id": user1.tenant_id }, context["users"][0] ) self.assertEqual(["1", "2"], sorted(context["tenants"].keys())) self.assertEqual({"id": "1", "name": user1.project_name}, context["tenants"]["1"]) self.assertEqual({"id": "2", "name": user3.project_name}, context["tenants"]["2"])
def test_cleanup(self): # NOTE(boris-42): Test that cleanup is not abstract existing_users.ExistingUsers({"task": mock.MagicMock()}).cleanup()