Пример #1
0
 def test_login_user_insufficient_fields_one(self):
     tester = create_app().test_client(self)
     response = tester.post("/login/",
                            data=json.dumps({'email': 'Gonza'}),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 400)
Пример #2
0
    def test_register_fails_usertype_invalid(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({
                                   'user_type': 'pepe',
                                   'first_name': 'Jorge',
                                   'last_name': 'Paez',
                                   'email': '*****@*****.**',
                                   'password': '******',
                                   'national_id': '123478',
                                   'national_id_type': 'DNI',
                                   'alias': 'Jorgejo',
                                   'user_logged_id': 1,
                                   'profile': 1
                               }),
                               content_type='application/json')

        status_code = response.status_code
        data_back_admin = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back_admin['Error'], "Not exists UserType: pepe")
        self.assertEqual(status_code, 404)
Пример #3
0
    def test_index(self):
        tester = create_app().test_client(self)
        response = tester.get("/")
        status_code = response.status_code

        # Check for response 200
        self.assertEqual(status_code, 200)
Пример #4
0
    def test_register_fails_user_alias_taken(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ANFITRION1_REGISTER,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({
                                   'user_type': 'bookbnb',
                                   'first_name': 'Jorge',
                                   'last_name': 'Paez',
                                   'email': '*****@*****.**',
                                   'password': '******',
                                   'national_id': '123478',
                                   'national_id_type': 'DNI',
                                   'alias': 'anfitrion',
                                   'user_logged_id': 1,
                                   'profile': 1
                               }),
                               content_type='application/json')

        status_code = response.status_code
        data_back_admin = json.loads(response.get_data(as_text=True))
        self.assertEqual(
            data_back_admin['Error'],
            "Some User identifier is already taken: [email protected] or anfitrion"
        )
        self.assertEqual(status_code, 403)
Пример #5
0
    def test_new_password_for_user_succesfully(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        tester.put("/user/1/push_token/",
                   data=json.dumps({'push_token': 'tokenbaby'}),
                   content_type='application/json')

        response = tester.get("/user/")

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        print(data_back)
        self.assertEqual(data_back['users'][0]['push_token'], 'tokenbaby')
        self.assertEqual(status_code, 200)
Пример #6
0
 def test_create_invalid_profile_one_not_enough_fields(self):
     tester = create_app().test_client(self)
     response = tester.post("/profiles/add/",
                            data=json.dumps({'id': 0}),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 400)
Пример #7
0
    def test_get_all_users_info_successfully(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ANFITRION1_REGISTER,
                    content_type='application/json')

        response = tester.get("/user/")

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        test_user = json.loads(VALID_ADMIN1_REGISTER)
        test_user_anf = json.loads(VALID_ANFITRION1_REGISTER)
        print(data_back)
        self.assertEqual(data_back['users'][0]['last_name'],
                         test_user['last_name'])
        self.assertEqual(data_back['users'][1]['last_name'],
                         test_user_anf['last_name'])
        self.assertEqual(status_code, 200)
Пример #8
0
    def test_block_user_successfully(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        tester.put("/user/1/blocked_status/",
                   data=json.dumps({'new_status': True}),
                   content_type='application/json')

        response = tester.get("/user/")

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        print(data_back)
        self.assertEqual(data_back['users'][0]['blocked'], True)
        self.assertEqual(status_code, 200)
Пример #9
0
    def test_successful_register_admin(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        tester.post("/login/",
                    data=VALID_ADMIN1_LOGIN,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=VALID_USER2_REGISTER_WITH_ADMIN,
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['name'], "Admin")
        self.assertEqual(data_back['email'], "*****@*****.**")
        self.assertEqual(data_back['alias'], "administrador")
        self.assertEqual(data_back['id'], 2)
        self.assertEqual(status_code, 200)
Пример #10
0
 def test_create_valid_apikey(self):
     tester = create_app().test_client(self)
     response = tester.post("/apikey/add/",
                            data=json.dumps({'name_from': 'Alguien'}),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 200)
Пример #11
0
    def test_get_user_info_successfully(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        response = tester.get("/user/1")

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        test_user = json.loads(VALID_ADMIN1_REGISTER)

        self.assertEqual(data_back['first_name'], test_user['first_name'])
        self.assertEqual(data_back['last_name'], test_user['last_name'])
        self.assertEqual(data_back['national_id'], test_user['national_id'])
        self.assertEqual(data_back['national_id_type'],
                         test_user['national_id_type'])
        self.assertEqual(data_back['email'], test_user['email'])
        self.assertEqual(data_back['alias'], test_user['alias'])
        self.assertEqual(status_code, 200)
Пример #12
0
    def test_login_unsuccessful_blocked_user(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        response = tester.put("/user/1/blocked_status/",
                              data=json.dumps({'new_status': True}),
                              content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        print(status_code, data_back)

        response = tester.post("/login/",
                               data=VALID_ADMIN1_LOGIN,
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        print(status_code, data_back)
        self.assertEqual(data_back['Error'], "User is blocked: 1")
        self.assertEqual(status_code, 403)
Пример #13
0
    def test_modify_fields_empty_non_mandatory_fields(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        response = tester.put("/user/",
                              data=INVALID_MODIFY_USER_EMPTY,
                              content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(
            data_back['Error'],
            'No fields were submitted in the request to modify user.')
        self.assertEqual(status_code, 409)

        response = tester.put("/user/",
                              data=INVALID_MODIFY_USER_BLANK,
                              content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(
            data_back['Error'],
            'No fields were submitted in the request to modify user.')
        self.assertEqual(status_code, 409)
Пример #14
0
 def test_health(self):
     tester = create_app().test_client(self)
     response = tester.get("/health")
     status_code = response.status_code
     data = json.loads(response.get_data(as_text=True))
     self.assertEqual(data['status'], "UP")
     # Check for response 200
     self.assertEqual(status_code, 200)
Пример #15
0
    def test_get_user_info_non_existent_user(self):
        tester = create_app().test_client(self)
        response = tester.get("/user/1")

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))

        self.assertEqual(data_back['Error'], "Not exists User: 1")
        self.assertEqual(status_code, 404)
Пример #16
0
 def test_create_valid_profile(self):
     tester = create_app().test_client(self)
     response = tester.post("/profiles/add/",
                            data=json.dumps({
                                'id': 0,
                                'description': 'admin'
                            }),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 200)
Пример #17
0
 def test_create_user_sufficient_fields_non_existent_profile(self):
     tester = create_app().test_client(self)
     response = tester.post("/user/",
                            data=VALID_ADMIN1_REGISTER,
                            content_type='application/json')
     status_code = response.status_code
     data_back = json.loads(response.get_data(as_text=True))
     # print(logging.getLogger('error'))
     self.assertEqual(status_code, 404)
     self.assertEqual(data_back['Error'], "Not exists Profile by id: 0")
Пример #18
0
 def test_create_and_get_apikeys(self):
     tester = create_app().test_client(self)
     response = tester.post("/apikey/add/",
                            data=json.dumps({'name_from': 'Alguien'}),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 200)
     response = tester.get("/apikey/")
     data = json.loads(response.get_data(as_text=True))
     self.assertEqual(data['apikeys'][0]['name_from'], 'Alguien')
     self.assertEqual(status_code, 200)
Пример #19
0
    def test__modify_fields_for_non_existent_user(self):
        tester = create_app().test_client(self)

        response = tester.put("/user/",
                              data=VALID_MODIFY_ANFITRION,
                              content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(
            data_back['Error'], "Not exists User: " +
            str(json.loads(VALID_MODIFY_ANFITRION)['id']))
        self.assertEqual(status_code, 404)
Пример #20
0
    def test_add_push_token_non_register_user_fails(self):
        # Login with anfitrion and try to create admin must fail
        tester = create_app().test_client(self)

        response = tester.put("/user/1/push_token/",
                              data=json.dumps({'push_token': 'tokenbaby'}),
                              content_type='application/json')

        status_code = response.status_code
        data_back_admin = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back_admin['Error'], "Not exists User: 1")
        self.assertEqual(status_code, 404)
Пример #21
0
 def test_create_user_insufficient_fields_multiple(self):
     tester = create_app().test_client(self)
     response = tester.post("/user/",
                            data=json.dumps({
                                'first_name': 'Gonza',
                                'last_name': 'Paez',
                                'mail': '*****@*****.**',
                                'national_id': '12345678',
                                'national_id_type': 'DNI',
                                'password': '******'
                            }),
                            content_type='application/json')
     status_code = response.status_code
     self.assertEqual(status_code, 400)
Пример #22
0
    def test_login_unsuccessful_user_non_existent(self):
        tester = create_app().test_client(self)

        response = tester.post("/login/",
                               data=json.dumps({
                                   'user_type': 'bookbnb',
                                   'email': '*****@*****.**',
                                   'password': '******'
                               }),
                               content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'],
                         "The email: [email protected] is not registered")
        self.assertEqual(status_code, 401)
Пример #23
0
    def test_successful_register_google(self):
        tester = create_app(config.TestingWithValidGoogle).test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        print(data_back)
        self.assertEqual(data_back['id'], 1)
        self.assertEqual(status_code, 200)
Пример #24
0
    def test_create_user_successful_sufficient_fields_existent_profile(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=VALID_ADMIN1_REGISTER,
                               content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['name'], "Gonza")
        self.assertEqual(data_back['email'], "*****@*****.**")
        self.assertEqual(data_back['alias'], "gonzalgo")
        self.assertEqual(data_back['id'], 1)
        self.assertEqual(status_code, 200)
Пример #25
0
    def test_fail_register_invalid_google_token(self):
        tester = create_app(config.TestingWithInvalidGoogle).test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'], "Not able to validate token with GoogleAPI")
        self.assertEqual(status_code, 401)
Пример #26
0
    def test_fail_register_google_already_taken_mail(self):
        tester = create_app(config.TestingWithValidGoogle).test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'], "Some User identifier is already taken: [email protected] or ")
        self.assertEqual(status_code, 403)
Пример #27
0
    def test_google_user_cant_recover_password(self):
        tester = create_app(config.TestingWithValidGoogle).test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['id'], 1)
        self.assertEqual(status_code, 200)

        response = tester.post("/recover_token/[email protected]")
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'], 'User register with Google Auth cant recover password')
        self.assertEqual(status_code, 403)
Пример #28
0
    def test_login_unsuccessful_wrong_password(self):
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ADMIN,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ADMIN1_REGISTER,
                    content_type='application/json')

        response = tester.post("/login/",
                               data=json.dumps({
                                   'user_type': 'bookbnb',
                                   'email': '*****@*****.**',
                                   'password': '******'
                               }),
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'], "User Password is invalid")
        self.assertEqual(status_code, 401)
Пример #29
0
    def test_unsuccessful_login_google_mail_taken_boonbnb_user(self):
        tester = create_app(config.TestingWithValidGoogle).test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=VALID_PEPE_CHATRUC_BOOKBNB_REGISTER,
                               content_type='application/json')

        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['id'], 1)
        self.assertEqual(status_code, 200)

        response = tester.post("/login/",
                               data=json.dumps({'google_token': 'untokeeeen', 'user_type': 'googleuser', 'profile': 1}),
                               content_type='application/json')
        status_code = response.status_code
        data_back = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back['Error'], 'User register without Google Auth')
        self.assertEqual(status_code, 403)
Пример #30
0
    def test_register_admin_fails_user_not_admin(self):
        # Login with anfitrion and try to create admin must fail
        tester = create_app().test_client(self)

        tester.post("/profiles/add/",
                    data=VALID_PROFILE_ANFITRION,
                    content_type='application/json')

        tester.post("/user/",
                    data=VALID_ANFITRION1_REGISTER,
                    content_type='application/json')

        tester.post("/login/",
                    data=VALID_ANFITRION1_LOGIN,
                    content_type='application/json')

        response = tester.post("/user/",
                               data=json.dumps({
                                   'user_type': 'admin',
                                   'first_name': 'Jorge',
                                   'last_name': 'Paez',
                                   'email': '*****@*****.**',
                                   'password': '******',
                                   'national_id': '123478',
                                   'national_id_type': 'DNI',
                                   'alias': 'Jorgejo',
                                   'user_logged_id': 1,
                                   'profile': 0
                               }),
                               content_type='application/json')

        status_code = response.status_code
        data_back_admin = json.loads(response.get_data(as_text=True))
        self.assertEqual(data_back_admin['Error'],
                         "The User: 1 is not an admin")
        self.assertEqual(status_code, 403)