def test_team_bots_return_team_bots_list_without_token(self): data = MagicMock() '''Mocked outputs''' user = User(user_id=0) user.team_id = 0 bot1 = Bot(bot_id=1, name="Bot-Test1", callback=None, token="Test-Token") bot2 = Bot(bot_id=2, name="Bot-Test2", callback=None, token="Test-Token") bots = [bot1, bot2] sys.modules[ "models.authentication"].Authenticator.authenticate_team.return_value = user sys.modules[ "daos.bots"].BotDatabaseClient.get_team_bots.return_value = bots response = BotService.team_bots(data) self.assertEqual(UserResponseStatus.LIST.value, response.json().get("status")) self.assertEqual(1, response.json().get("bots")[0].get("id")) self.assertEqual(2, response.json().get("bots")[1].get("id")) self.assertEqual("Bot-Test1", response.json().get("bots")[0].get("name")) self.assertEqual("Bot-Test2", response.json().get("bots")[1].get("name")) self.assertIsNone(response.json().get("bots")[0].get("callback")) self.assertIsNone(response.json().get("bots")[1].get("callback")) self.assertFalse("token" in response.json().get("bots")[0]) self.assertFalse("token" in response.json().get("bots")[1]) self.assertIsInstance(response, SuccessfulBotListResponse)
def test_create_bot_with_correct_data_works_properly(self): data = MagicMock() '''Mocked outputs''' mod = User(user_id=0) mod.team_id = 0 def add_client(): from tests.test_services import test_bots client = RegularClient(client_id=0) MockedBotDatabase.batch_clients = client return client def add_bot(bot): from tests.test_services import test_bots MockedBotDatabase.batch_bots = bot def add_team_bot(team_bot): from tests.test_services import test_bots MockedBotDatabase.batch_team_bots = team_bot def commit(): from tests.test_services import test_bots MockedBotDatabase.stored_clients += [ MockedBotDatabase.batch_clients ] MockedBotDatabase.stored_bots += [MockedBotDatabase.batch_bots] MockedBotDatabase.stored_team_bots += [ MockedBotDatabase.batch_team_bots ] MockedBotDatabase.batch_clients = None MockedBotDatabase.batch_bots = None MockedBotDatabase.batch_team_bots = None sys.modules[ "models.authentication"].Authenticator.authenticate_team.return_value = mod sys.modules["daos.users"].UserDatabaseClient.add_client = MagicMock( side_effect=add_client) sys.modules["daos.bots"].BotDatabaseClient.add_bot = MagicMock( side_effect=add_bot) sys.modules["daos.teams"].TeamDatabaseClient.add_team_user = MagicMock( side_effect=add_team_bot) sys.modules["daos.database"].DatabaseClient.commit = MagicMock( side_effect=commit) response = BotService.create_bot(data) self.assertIsNone(MockedBotDatabase.batch_bots) self.assertIsNone(MockedBotDatabase.batch_clients) self.assertIsNone(MockedBotDatabase.batch_team_bots) self.assertEqual(1, len(MockedBotDatabase.stored_bots)) self.assertEqual(0, MockedBotDatabase.stored_bots[0].id) self.assertEqual(1, len(MockedBotDatabase.stored_clients)) self.assertEqual(0, MockedBotDatabase.stored_clients[0].id) self.assertEqual(1, len(MockedBotDatabase.stored_team_bots)) self.assertEqual(0, MockedBotDatabase.stored_team_bots[0].user_id) self.assertEqual(0, MockedBotDatabase.stored_team_bots[0].team_id) self.assertEqual(TeamRoles.BOT.value, MockedBotDatabase.stored_team_bots[0].role) self.assertEqual(UserResponseStatus.OK.value, response.status) self.assertIsInstance(response, SuccessfulUserMessageResponse)
def test_create_bot_with_name_in_use_returns_bad_request(self): data = MagicMock() '''Mocked outputs''' mod = User(user_id=0) mod.team_id = 0 def add_client(): from tests.test_services import test_bots client = RegularClient(client_id=0) MockedBotDatabase.batch_clients = client return client def add_bot(bot): from tests.test_services import test_bots MockedBotDatabase.batch_bots = bot def add_team_bot(team_bot): from tests.test_services import test_bots MockedBotDatabase.batch_team_bots = team_bot def commit(): raise IntegrityError(mock, mock, mock) def rollback(): from tests.test_services import test_bots MockedBotDatabase.batch_clients = None MockedBotDatabase.batch_bots = None MockedBotDatabase.batch_team_bots = None sys.modules[ "models.authentication"].Authenticator.authenticate_team.return_value = mod sys.modules["daos.users"].UserDatabaseClient.add_client = MagicMock( side_effect=add_client) sys.modules["daos.bots"].BotDatabaseClient.add_bot = MagicMock( side_effect=add_bot) sys.modules["daos.teams"].TeamDatabaseClient.add_team_user = MagicMock( side_effect=add_team_bot) sys.modules["daos.database"].DatabaseClient.commit = MagicMock( side_effect=commit) sys.modules["daos.database"].DatabaseClient.rollback = MagicMock( side_effect=rollback) sys.modules[ "daos.bots"].BotDatabaseClient.get_bot_by_name.return_value = MagicMock( ) response = BotService.create_bot(data) self.assertIsNone(MockedBotDatabase.batch_bots) self.assertIsNone(MockedBotDatabase.batch_clients) self.assertIsNone(MockedBotDatabase.batch_team_bots) self.assertEqual(0, len(MockedBotDatabase.stored_bots)) self.assertEqual(0, len(MockedBotDatabase.stored_clients)) self.assertEqual(0, len(MockedBotDatabase.stored_team_bots)) self.assertEqual(UserResponseStatus.ALREADY_REGISTERED.value, response.status) self.assertIsInstance(response, BadRequestUserMessageResponse)