def test_getting_error_message_when_response_is_not_ok(mock_post, mock_validate_token): input = { 'ccvv': '274827484', 'expiration_month': '12', 'expiration_year': '1738', 'method': 'card', 'number': '27484277', 'type': 'visa' } header = {'token': '838298'} error_msg = [{'message': "Parámetros incorrectos", 'status': 400}] mock_validate_token.return_value = True mock_response = Mock() http_error = requests.exceptions.HTTPError() mock_response.raise_for_status.side_effect = http_error mock_response.status_code = 400 mock_post.return_value = mock_response app2 = app.test_client() response = app2.post('/passengers/84748/card', data=json.dumps(input), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], error_msg)
def test_getting_user_card_when_response_is_ok(mock_get, mock_validate_token): card_data = { 'metadata': {}, 'card': { 'ccvv': '274827484', 'expiration_month': '12', 'expiration_year': '1738', 'method': 'card', 'number': '27484277', 'type': 'visa' } } app_response = { 'ccvv': '274827484', 'expiration_month': '12', 'expiration_year': '1738', 'method': 'card', 'number': '27484277', 'type': 'visa' } header = {'token': '838298'} mock_validate_token.return_value = True mock_get.return_value = Mock(ok=True) mock_get.return_value.json.return_value = card_data app2 = app.test_client() response = app2.get('/passengers/84748/card', headers=header) response_json = json.loads(response.get_data()) assert_list_equal([response_json], [app_response])
def test_getting_error_message_when_response_is_not_ok(mock_put, mock_get, mock_validate_token): args = { 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } user = { '_ref': 5678, 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'juan', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } header = {'token': '838298'} error_msg = [{ 'message': "Parámetros incorrectos", 'status': 400 }] mock_validate_token.return_value = True mock_get.return_value = Mock(ok=True) mock_get.return_value.json.return_value = user mock_response = Mock() http_error = requests.exceptions.HTTPError() mock_response.raise_for_status.side_effect = http_error mock_response.status_code = 400 mock_put.return_value = mock_response app2 = app.test_client() response = app2.put('/passengers/84748', data=json.dumps(args), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], error_msg)
def test_posting_user_car_when_response_is_ok(mock_post, mock_validate_token): car_data = { 'metadata': {}, 'car': { 'brand': 'Fiat', 'model': '7', 'color': 'azul', 'plate': '667 abc', 'year': '1738', 'status': 'new', 'radio': 'yes', 'airconditioner': True, '_ref': 'fjsisfjisjfsij' } } input = { 'brand': 'Fiat', 'model': '7', 'color': 'azul', 'plate': '667 abc', 'year': '1738', 'status': 'new', 'radio': 'yes', 'airconditioner': True } app_response = { 'brand': 'Fiat', 'model': '7', 'color': 'azul', 'plate': '667 abc', 'year': '1738', 'status': 'new', 'radio': 'yes', 'airconditioner': True } header = {'token': '838298'} mock_validate_token.return_value = True mock_post.return_value = Mock(ok=True) mock_post.return_value.json.return_value = car_data app2 = app.test_client() response = app2.post('/drivers/84748/cars', data=json.dumps(input), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [app_response])
def test_starting_trip(mock_validate_token, mock_trips): args = {'paymethod': 'card'} trip = { "_id": 20, "passenger": 22, "driver": 4874, "start": { "street": "Av. Pres. Roque Sáenz Peña 999, C1035AAE CABA, Argentina", "location": { "lat": -34.6038333, "lon": -58.3815047 } }, "end": { "street": "Gral. Lucio Norberto Mansilla 3701-3721, C1425BPY CABA, Argentina", "location": { "lat": -34.5901404, "lon": -58.41590160000001 } }, "totalTime": 422796, "waitTime": "2017-12-02 11:40:43", "travelTime": 291963, "distance": 78393, "startTime": "2017-12-02 11:40:43", "status": "finished", "cost": { "currency": "ARS", "value": 2635760 } } header = {'token': '838298'} mock_validate_token.return_value = True mock_trips.find_one.return_value = trip mock_trips.update_one.return_value = None app2 = app.test_client() response = app2.post('/trips/20/start', data=json.dumps(args), headers=header, content_type='application/json') # response_json = json.loads(response.get_data()) assert_list_equal([response.status_code], [201])
def test_save_passengers_location(mock_validate_token, mock_passengers): input = {'lat': 47.2737, 'lon': 28.284} header = {'token': '838298'} mock_validate_token.return_value = True mock_passengers.update_one.return_value = None app2 = app.test_client() response = app2.put('/passengers/1/location', data=json.dumps(input), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [200])
def test_getting_error_message_when_response_is_not_ok(mock_get, mock_validate_token): header = {'token': '838298'} error_msg = [{'message': "Parámetros incorrectos", 'status': 400}] mock_validate_token.return_value = True mock_response = Mock() http_error = requests.exceptions.HTTPError() mock_response.raise_for_status.side_effect = http_error mock_response.status_code = 400 mock_get.return_value = mock_response app2 = app.test_client() response = app2.get('/passengers/84748/card', headers=header) response_json = json.loads(response.get_data()) assert_list_equal([response_json], error_msg)
def test_getting_directions(mock_validate_token, mock_passengers, mock_directions): input = {'lat': 47.2737, 'lon': 28.284} passenger = {"_id": 1, "lat": 1, "lon": 1} directions_response = {'directions': 'Lots of directions'} expected_response = {'routes': directions_response} header = {'token': '838298'} mock_validate_token.return_value = True mock_passengers.find_one.return_value = passenger mock_directions.directions.return_value = directions_response app2 = app.test_client() response = app2.post('/passengers/1/directions', data=json.dumps(input), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [expected_response])
def test_getting_user_when_response_is_ok(mock_put, mock_get, mock_validate_token): args = { 'type': 'passenger', 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } user = { 'user': { '_ref': 5678, 'username': '******', 'password': '******', 'cars': {}, 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'juan', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } } modified_user = { 'user': { '_ref': 5678, 'username': '******', 'password': '******', 'cars': {}, 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } } header = {'token': '838298'} mock_validate_token.return_value = True mock_get.return_value = Mock(ok=True) mock_get.return_value.json.return_value = user mock_put.return_value = Mock(ok=True) mock_put.return_value.json.return_value = modified_user app2 = app.test_client() response = app2.put('/passengers/84748', data=json.dumps(args), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [modified_user['user']])
def test_ending_trip_when_response_is_ok(mock_post, mock_get, mock_validate_token, mock_trips, mock_drivers, mock_push): args = {'paymethod': 'card'} trip = { "_id": 20, "passenger": 22, "driver": 4874, "start": { "street": "Av. Pres. Roque Sáenz Peña 999, C1035AAE CABA, Argentina", "location": { "lat": -34.6038333, "lon": -58.3815047 } }, "end": { "street": "Gral. Lucio Norberto Mansilla 3701-3721, C1425BPY CABA, Argentina", "location": { "lat": -34.5901404, "lon": -58.41590160000001 } }, "totalTime": 422796, "waitTime": 130833, "travelTime": 291963, "distance": 78393, "startTime": "2017-12-02 11:40:43", "status": "finished", "cost": { "currency": "ARS", "value": 2635760 } } card = { 'metadata': { 'version': '1.0' }, 'card': { 'ccvv': '11111', 'type': 'Visa', 'method': 'card', 'number': '123456789123', 'expiration_year': '20', 'expiration_month': '12' } } cost = { 'metadata': { 'version': '1.0' }, 'cost': { 'currency': 'ARS', 'value': 3043890 } } expected_response = {'cost': {'currency': 'ARS', 'value': 3043890}} header = {'token': '838298'} mock_validate_token.return_value = True mock_trips.find_one.return_value = trip mock_trips.update_one.return_value = None mock_drivers.update_one.return_value = None mock_get.return_value = Mock(ok=True) mock_get.return_value.json.return_value = card mock_response = Mock() mock_response.status_code = 200 mock_post.return_value = Mock(ok=True) mock_post.status_code = 200 mock_post.return_value.json.return_value = cost app2 = app.test_client() response = app2.post('/trips/20/end', data=json.dumps(args), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [expected_response])
def test_confirming_trip(mock_get, mock_validate_token, mock_trips, mock_drivers, mock_push): args = {'trip_id': 20} trip = { "_id": 20, "passenger": 22, "driver": 4874, "start": { "street": "Av. Pres. Roque Sáenz Peña 999, C1035AAE CABA, Argentina", "location": { "lat": -34.6038333, "lon": -58.3815047 } }, "end": { "street": "Gral. Lucio Norberto Mansilla 3701-3721, C1425BPY CABA, Argentina", "location": { "lat": -34.5901404, "lon": -58.41590160000001 } }, "totalTime": 422796, "waitTime": 130833, "travelTime": 291963, "distance": 78393, "startTime": "2017-12-02 11:40:43", "status": "finished", "cost": { "currency": "ARS", "value": 2635760 } } user = { 'metadata': {}, 'user': { '_ref': 5678, 'username': '******', 'password': '******', 'cars': {}, 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'juan', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } } header = {'token': '838298'} mock_validate_token.return_value = True mock_trips.find_one.return_value = trip mock_trips.update_one.return_value = None mock_drivers.update_one.return_value = None mock_get.return_value = Mock(ok=True) mock_get.return_value.json.return_value = user app2 = app.test_client() response = app2.post('/drivers/4874/trip/confirmation', data=json.dumps(args), headers=header, content_type='application/json') assert_list_equal([response.status_code], [201])
def test_signing_user_up_when_response_is_ok(self, mock_post, mock_encode_token, mock_passengers): args = { 'type': 'passenger', 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } user = { 'user': { '_ref': 5678, 'id': 27478, 'username': '******', 'password': '******', 'cars': {}, 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'juan', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } } expected_response = { 'id': 27478, 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'juan', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } header = {'token': '838298'} mock_post.return_value = Mock(ok=True) mock_post.return_value.json.return_value = user app2 = app.test_client() response = app2.post('/users', data=json.dumps(args), headers=header, content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], [expected_response])
def test_adding_token_to_response(self, mock_encode, mock_post): input = { 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484' } response_shared = { 'user': { 'username': '******', 'password': '******', '_ref': '7284759248784', 'cars': {}, 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484', 'id': '383948' } } output = [{ 'username': '******', 'password': '******', 'fb': { 'userId': 'pepefb', 'authToken': '1234' }, 'firstname': 'SOFIA', 'lastname': 'argento', 'country': 'argentina', 'email': '*****@*****.**', 'birthdate': '27484', 'token': '74284297428', 'id': '383948' }] mock_encode.return_value = '74284297428' mock_post.return_value = Mock(ok=True) mock_post.return_value.json.return_value = response_shared app2 = app.test_client() response = app2.post('/validate', data=json.dumps(input), content_type='application/json') response_json = json.loads(response.get_data()) assert_list_equal([response_json], output)