示例#1
0
 def testMoveTargetLatestBodySegment(self):
     with boddle(json=self.generateMoveRequest("""
             _A_y
             _100
             _1Y_
             a1__
             """)):
         move_response = main.move()
         self.assertEqual('{"move": "right"}', move_response.body)
示例#2
0
 def testMoveDontTargetLatestBodySegment(self):
     with boddle(json=self.generateMoveRequest("""
             ____
             Y000
             0000
             y___
             """)):
         move_response = main.move()
         self.assertEqual('{"move": "up"}', move_response.body)
示例#3
0
 def testMoveAvoidEnemyHead(self):
     with boddle(json=self.generateMoveRequest("""
             __A1
             _Y0a
             __y_
             ____
             """)):
         move_response = main.move()
         self.assertEqual('{"move": "down"}', move_response.body)
示例#4
0
 def testMoveCorner(self):
     with boddle(json=self.generateMoveRequest("""
             Y___
             0___
             y___
             ____
             """)):
         move_response = main.move()
         self.assertEqual('{"move": "right"}', move_response.body)
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
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.")
示例#9
0
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
示例#10
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
示例#11
0
 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)
示例#13
0
 def testMoveEnemy(self):
     with boddle(json=self.generateMoveRequest("""
             _A1a
             _Y__
             _0__
             _y__
             """)):
         move_response = main.move()
         self.assertNotEqual('{"move": "up"}', move_response.body)
示例#14
0
 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 + '/')
示例#17
0
    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)
示例#18
0
	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)
示例#19
0
 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)
示例#20
0
    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)
示例#21
0
    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)
示例#22
0
 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)
示例#23
0
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."})
示例#24
0
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."})
示例#25
0
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."})
示例#26
0
 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"}')
示例#27
0
 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"}')
示例#28
0
    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)
示例#29
0
    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)
示例#30
0
 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"}')