def testMoveTargetLatestBodySegment(self): with boddle(json=self.generateMoveRequest(""" _A_y _100 _1Y_ a1__ """)): move_response = main.move() self.assertEqual('{"move": "right"}', move_response.body)
def testMoveDontTargetLatestBodySegment(self): with boddle(json=self.generateMoveRequest(""" ____ Y000 0000 y___ """)): move_response = main.move() self.assertEqual('{"move": "up"}', move_response.body)
def testMoveAvoidEnemyHead(self): with boddle(json=self.generateMoveRequest(""" __A1 _Y0a __y_ ____ """)): move_response = main.move() self.assertEqual('{"move": "down"}', move_response.body)
def testMoveCorner(self): with boddle(json=self.generateMoveRequest(""" Y___ 0___ y___ ____ """)): move_response = main.move() self.assertEqual('{"move": "right"}', move_response.body)
def testMoveDontEatWhenNextToTail(self): with boddle(json=self.generateMoveRequest(""" 000_ 0_Yy 0_X0 0000 """)): move_response = main.move(traits="opp") self.assertEqual('{"move": "right"}', move_response.body)
def test_webhook_verify_bad_token(self): with boddle( query={ msbot.constants.MODE: msbot.constants.SUBSCRIBE, msbot.constants.TOKEN: 'BAD_TOKEN', msbot.constants.CHALLENGE: 'TEST_CHALLENGE' }): webhook.webhook_verify() self.assertEqual(webhook.response.status_code, 403)
def test_webhook_verify_success(self): with boddle( query={ msbot.constants.MODE: msbot.constants.SUBSCRIBE, msbot.constants.TOKEN: TEST_VERIFY_TOKEN, msbot.constants.CHALLENGE: 'TEST_CHALLENGE' }): self.assertEqual(webhook.webhook_verify(), 'TEST_CHALLENGE') self.assertEqual(webhook.response.status_code, 200)
def test_delete_app(): with boddle(params={}): response = delete_app("app1") client = app_settings.get_database() result = client[app_settings.DATABASE_MAIN]["apps"].find_one({"name":"app1", "username":"******"}) assert result == None #for app in AppDBOMongoMock.APPS: # assert not (app["name"] != "app1" and app["username"] != "testuser") bottle.redirect.assert_called_with("/dashboard?flash=Successful delete.")
def test_secure_app(): with boddle(params={}): response = secure_app("app1", 1) client = app_settings.get_database() result = client[app_settings.DATABASE_MAIN]["apps"].find_one({"name":"app1", "username": "******"}) assert int(result["security"]) == 1 response = secure_app("app1", 0) result = client[app_settings.DATABASE_MAIN]["apps"].find_one({"name":"app1", "username": "******"}) assert int(result["security"]) == 0
def test_route_tiles_kml(): with boddle( params={ 'share_link': "https://www.statshunters.com/share/test", 'individual': "1", }): kml = statshunters.route_tiles_kml() assert kml.startswith("<kml") assert len(re.findall("<Polygon", kml)) == 23
def test_webhook_verify_bad_mode(self): with boddle( query={ msbot.constants.MODE: 'BAD_MODE', msbot.constants.TOKEN: TEST_VERIFY_TOKEN, msbot.constants.CHALLENGE: 'TEST_CHALLENGE' }): webhook.webhook_verify() self.assertEqual(webhook.response.status_code, 403)
def test_qr_code_generation_form(mocked_auth_utils, mocked_common_utils): with boddle(method='get', params={'album_id':test_album_id}): mocked_common_utils.side_effect = _side_effect view_data = { 'album_id' : test_album_id, 'palettes' : config['palettes'], 'user' : 'stud' } assert qr_controller.show_qr_generation_form() == template('qr_views/qr_form.html',view_data)
def testMoveEnemy(self): with boddle(json=self.generateMoveRequest(""" _A1a _Y__ _0__ _y__ """)): move_response = main.move() self.assertNotEqual('{"move": "up"}', move_response.body)
def test_optional_start_responses(self): """ Test optional responses to '/start' POST """ paramData = {'width': 20, 'height': 20, 'game_id': 'game1'} headers = {'Content-Type': 'application/json'} with boddle(json=paramData, headers=headers): response = main.start() self.assertIn('head_type', response) self.assertIn('tail_type', response)
def test_video_serivng(mocked_database_utils): mocked_database_utils.return_value = test_album_documet with boddle(method='get', params={ 'album_id': test_album_id, 'video_name': test_video_file_path }): assert video_management_controller.view_video_page() == template( 'show_views/video.html', {'video_file_path': test_album_id + '/' + test_video_file_path})
def test_qr_code_generationw(mocked_database_utils, mocked_auth_utils, mocked_common_utils): mocked_database_utils.return_value = test_album_documet mocked_common_utils.side_effect = _side_effect with boddle(method='post', params={'album_id':test_album_id, 'palettes' : 'plain_black'}): assert qr_controller.generate_qr_codes() == template('qr_views/qr.html', { 'album_id' : test_album_id, 'qr_images' : qr_codes_list, 'user' : 'stud'}) assert exists('static/qr_images/'+test_album_id+'/vid1.jpg') assert exists('static/qr_images/'+test_album_id+'/vid2.jpg') assert exists('static/qr_images/'+test_album_id+'/vid3.jpg') shutil.rmtree('static/videos/' + test_album_id + '/') shutil.rmtree('static/qr_images/' + test_album_id + '/')
def test_get_sequences_offset_lt(self): with boddle(query={"page": 0, "size": 20, "offsetlt": 50}): result = lrr_search_web_service.get_sequences(MOTIF_VERSION) self.assertIsNotNone(result) result = json.loads(result) self.assertIsNotNone(result.get("sequences"), result) self.assertEqual(1, len(result.get("sequences")), result) self.assertEqual('SEQ1', result.get("sequences")[0].get("sequence_id"), result) with boddle(query={"page": 0, "size": 20, "offsetlt": 201}): result = lrr_search_web_service.get_sequences(MOTIF_VERSION) self.assertIsNotNone(result) result = json.loads(result) self.assertIsNotNone(result.get("sequences"), result) self.assertEqual(2, len(result.get("sequences")), result) self.assertEqual( {'SEQ1', 'SEQ2'}, set([seq['sequence_id'] for seq in result.get("sequences")]), result)
def test_add_text_workflow_job(self): """ Method for testing the 'JobsController.add_text_workflow_job' function. """ # Testing with valid request (valid parameters) with open("./pytest/json_schemas/simple_request.json", 'r') as f: valid_parameters = json.load(f) with boddle(json=valid_parameters): result = JobsController.add_text_workflow_job() # Test type of the response (should be string) self.assertEqual(type(result), str) # Test JSON schema of the response self.assertEqual(jsonschema.validate(json.loads(result), JobsControllerTest.RESPONSE_SCHEMA), None)
def test_start_response(self): """ Test required responses to `/start` POST """ paramData = {'game_id': 'game1', 'width': 20, 'height': 20} headers = {'Content-Type': 'application/json'} with boddle(json=paramData, headers=headers): response = main.start() self.assertIn('color', response) self.assertIn('head_url', response) self.assertIn('name', response) self.assertIn('taunt', response)
def testMoveEatWhenStarving(self): move_request = self.generateMoveRequest(""" ____ X_Yy __00 ____ """) move_request['you']['health'] = 5 with boddle(json=move_request): move_response = main.move() self.assertEqual('{"move": "left"}', move_response.body)
def testMoveEatWhenTrappedAndPeckish(self): move_request = self.generateMoveRequest(""" 00X_ 00Yy 0000 0000 """) move_request['you']['health'] = 15 with boddle(json=move_request): move_response = main.move() self.assertEqual('{"move": "up"}', move_response.body)
def testMoveAvoidTrap(self): with boddle(json=self.generateMoveRequest(""" ____y___ _00_000_ _00Y__0_ _000000_ ________ ________ ________ ________ """)): move_response = main.move() self.assertEqual('{"move": "up"}', move_response.body)
def test_already_existing_username_then_no_registration( mock_get_all_usernames, mock_save_user_to_database): mock_get_all_usernames.return_value = [test_username] mock_save_user_to_database.return_value = "", "" test_params = { 'username': test_username, 'password': test_password, 'confirmPassword': test_password } with boddle(method='post', params=test_params): assert auth_controller.register_user() == template( 'auth_views/info.html', {'error': "User with name " + test_username + " already exists."})
def test_wrong_confirmation_then_no_registration(mock_get_all_usernames, mock_save_user_to_database): mock_get_all_usernames.return_value = [] mock_save_user_to_database.return_value = "", "" test_params = { 'username': test_username, 'password': test_password, 'confirmPassword': '' } with boddle(method='post', params=test_params): assert auth_controller.register_user() == template( 'auth_views/info.html', {'error': "Confirmation and password are not equal."})
def test_corect_user_registration(mock_get_all_usernames, mock_save_user_to_database): mock_get_all_usernames.return_value = [] mock_save_user_to_database.return_value = "", "" test_params = { 'username': test_username, 'password': test_password, 'confirmPassword': test_password } with boddle(method='post', params=test_params): assert auth_controller.register_user() == template( 'auth_views/info.html', {'success': "Your account was created correctly."})
def testMoveInitial(self): with boddle(json=self.generateMoveRequest( '____________________\n' + '________2______F____\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '___F________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '__________1_________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '____________________\n' + '________3___________\n' + '____________________\n' + '____________F_______\n' + '____________________')): moveResponse = move() self.assertEqual(moveResponse, '{"move": "up"}')
def testMoveTopLeftWall(self): with boddle(json=self.generateMoveRequest( '1___________________\n' + '________2______F____\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '___F________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '____________________\n' + '________3___________\n' + '____________________\n' + '____________F_______\n' + '____________________')): moveResponse = move() self.assertEqual(moveResponse, '{"move": "right"}')
def test_move_responses(self): """ Test required fields in respones to `/move` POST. """ game_id = '1' paramData = { 'snakes': [{ 'taunt': 'git gud', 'name': 'my-snake', 'id': '25229082-f0d7-4315-8c52-6b0ff23fb1fb', 'health_points': 93, 'coords': [[0, 0], [0, 1], [0, 2]] }, { 'taunt': 'cash me outside', 'name': 'angry-whitegirl', 'id': 'ex-uuid', 'health_points': 93, 'coords': [[15, 14], [15, 13], [15, 12]] }], 'width': 20, 'height': 20, 'game_id': game_id, 'food': [[4, 5], [8, 9]], 'you': { 'id': '25229082-f0d7-4315-8c52-6b0ff23fb1fb', 'taunt': '1-800-267-2001 ALARMFORCE', 'name': 'sneakysnake', 'health_points': 100, 'coords': [[3, 3], [3, 4], [4, 4]] }, 'turn': 0 } headers = {'Content-Type': 'application/json'} moves = ['up', 'down', 'left', 'right'] # Create a mock Battle in the game dictionary so games seem to be in progress mock_battle = Mock() mock_battle.getNextMove.return_value = 'down' mock_battle.getTaunt.return_value = 'hi there friend' main.gameDict[game_id] = mock_battle with boddle(json=paramData, headers=headers): response = main.move() self.assertIn('move', response) self.assertIn('taunt', response) self.assertIn(response['move'], moves)
def testMoveTowardsStackedTail2(self): move_request = self.generateMoveRequest(""" 0Y__ 0y__ ____ ____ """) # Create a stacked tail, as if we just ate move_request['you']['body'].append(move_request['you']['body'][-1]) with boddle(json=move_request): move_response = main.move(traits="ins") self.assertEqual('{"move": "right"}', move_response.body)
def testMoveBottomRightWall(self): with boddle(json=self.generateMoveRequest( '____________________\n' + '________2______F____\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '___F________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________________\n' + '____________F_______\n' + '____________________\n' + '____________________\n' + '________3___________\n' + '____________________\n' + '____________F_______\n' + '___________________1')): moveResponse = move() self.assertEqual(moveResponse, '{"move": "left"}')