Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)