def test_remove_command_non_added_user(remove_command_event, non_added_user_response, telegram_test_user_entity, mock_setup): # pylint: disable=no-member app.dynamodb.get_item.return_value = non_added_user_response app.TelegramClient.return_value = telegram_test_user_entity ret = app.lambda_handler(remove_command_event, "") assert ret['statusCode'] == 200 app.dynamodb.get_item.assert_called_once_with( TableName='Roles', Key={ 'pk': { 'S': 'user_{}'.format(TEST_USER_ID) }, 'sk': { 'S': 'role_blacklist' } }) app.clients[BOT_KEY].get_entity.assert_called_once_with('@test_user') assert app.dynamodb.delete_item.call_count == 0 requests.post.assert_called_once_with( 'https://api.telegram.org/bot{}/sendMessage'.format(BOT_KEY), data={ 'chat_id': 99999999, 'reply_to_message_id': 13, 'text': '@test_user ({}) is not added'.format(TEST_USER_ID) })
def test_public_command(public_command_event, mock_setup): # pylint: disable=no-member ret = app.lambda_handler(public_command_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 0 assert requests.post.call_count == 0
def test_command_from_non_admin(remove_non_admin_command_event, mock_setup): # pylint: disable=no-member ret = app.lambda_handler(remove_non_admin_command_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 0 assert requests.post.call_count == 0
def test_non_banned_user(new_member_event, non_added_user_response, mock_setup): # pylint: disable=no-member app.dynamodb.get_item.return_value = non_added_user_response ret = app.lambda_handler(new_member_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 1 assert requests.post.call_count == 0
def test_unknown_command(unknown_command_event, mock_setup): # pylint: disable=no-member ret = app.lambda_handler(unknown_command_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 0 requests.post.assert_called_once_with( 'https://api.telegram.org/bot{}/sendMessage'.format(BOT_KEY), data={ 'chat_id': 99999999, 'reply_to_message_id': 13, 'text': 'Unknown command' })
def test_bot_new_chat_event(bot_new_chat_event, mock_setup): # pylint: disable=no-member ret = app.lambda_handler(bot_new_chat_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 0 requests.post.assert_called_once_with( 'https://api.telegram.org/bot{}/sendMessage'.format(BOT_KEY), data={ 'chat_id': -1009999992388, 'text': 'Hello from the @FurryPartyOfArtAndLabor. In order for this bot to be operational in this chat, it' ' must be made an admin.' })
def test_start_command_event(start_command_event, mock_setup): # pylint: disable=no-member ret = app.lambda_handler(start_command_event, "") assert ret['statusCode'] == 200 assert app.dynamodb.get_item.call_count == 0 requests.post.assert_called_once_with( 'https://api.telegram.org/bot{}/sendMessage'.format(BOT_KEY), data={ 'chat_id': 99999999, 'text': 'Hello from the @FurryPartyOfArtAndLabor. This bot was created and released to the public to help' ' room owners secure their rooms from raids and alt-right recruiters. Simply add to your room and' ' the bot will autoblock any Nazifur on its list of users from your room before any trouble can' ' start.' })
def test_whitelisted_user(new_member_whitelist_event, added_user_whitelist_response, mock_setup): # pylint: disable=no-member app.dynamodb.get_item.return_value = added_user_whitelist_response ret = app.lambda_handler(new_member_whitelist_event, "") assert ret['statusCode'] == 200 app.dynamodb.get_item.assert_called_once_with(TableName='Roles', Key={ 'pk': { 'S': 'user_999999402' }, 'sk': { 'S': 'role_whitelist' } }) assert requests.post.call_count == 0
def test_blacklisted_user(new_member_event, added_user_response, mock_setup): # pylint: disable=no-member app.dynamodb.get_item.return_value = added_user_response ret = app.lambda_handler(new_member_event, "") assert ret['statusCode'] == 200 app.dynamodb.get_item.assert_called_once_with(TableName='Roles', Key={ 'pk': { 'S': 'user_999999402' }, 'sk': { 'S': 'role_blacklist' } }) requests.post.assert_called_once_with( 'https://api.telegram.org/bot{}/kickChatMember'.format(BOT_KEY), data={ 'chat_id': -1009999992388, 'user_id': 999999402 })
def test_bad_ssm_config(message_event, mock_bad_setup): with pytest.raises(Exception): app.lambda_handler(message_event, "") assert app.config is None