예제 #1
0
def test_unhandled_exception(mocker, session_dict):
    m_handler = mocker.patch.object(handler, 'handle_session')
    m_handler.side_effect = Exception('Ooops')
    response = create_session(session_dict)
    assert_500(response)
    body = get_body_from_response(response)
    assert body == {'errors': ['Unexpected server error']}
def test_session_hanlder_post(mock_handler):
    event = {'httpMethod': 'POST'}
    response = handler.session(event, None)
    assert_200(response)
    body = get_body_from_response(response)
    assert body == {'test_passed': True}
    mock_handler.assert_called_once_with('POST', event)
예제 #3
0
def test_deep_unhandled_exception(mocker, session_dict):
    m_model = mocker.patch('cupping.handlers.session.create_session_from_json_payload')
    m_model.side_effect = Exception('Ooops')
    response = create_session(session_dict)
    assert_500(response)
    body = get_body_from_response(response)
    assert body == {'errors': ['Unexpected server error']}
예제 #4
0
def test_create_session(session_dict):
    response = create_session(session_dict)
    assert_200(response)
    body = get_body_from_response(response)
    assert body['session']
    assert body['session']['name'] == 'Test cupping'
    assert body['session']['id'] >= 1
def test_session_detail_hanlder_404(mocker):
    mock_handler = mocker.patch('handler.handle_session_detail')
    mock_handler.side_effect = Http404('Test 404 error')

    event = {'httpMethod': 'POST'}
    response = handler.session_detail(event, None)
    assert_404(response)
    body = get_body_from_response(response)
    assert body == {'errors': ['Test 404 error']}
    mock_handler.assert_called_once_with('POST', event)
예제 #6
0
def test_create_session_missing_cupping_scores(session_dict):
    session_dict['cuppings'][0].pop('scores')
    response = create_session(session_dict)
    assert_200(response)
    body = get_body_from_response(response)
    assert body == {
        'errors': {
            'cuppings': {
                '0': {'scores': 'This field is required.'}
            }
        }
    }
예제 #7
0
def test_get_session():
    session = SessionFactory()
    cuppings = CuppingFactory.create_batch(2, session_id=session.id)

    response = get_session_detail({'pathParameters': {'id': session.id}})
    assert_200(response)
    body = get_body_from_response(response)

    return_session =  body.get('session')
    assert return_session
    assert return_session['id'] == session.id

    assert len(return_session['cuppings']) == 2
    cupping_ids = set(c['id'] for c in return_session['cuppings'])
    assert len(cupping_ids) == 2

    session_ids = set(c['session_id'] for c in return_session['cuppings'])
    assert session_ids == set((session.id, ))
예제 #8
0
def test_create_session_missing_name(session_dict):
    session_dict.pop('name')
    response = create_session(session_dict)
    assert_200(response)
    body = get_body_from_response(response)
    assert body == {'errors': {'name': 'This field is required.'}}
예제 #9
0
def test_create_session_invalid_data(data):
    response = create_session(data)
    assert_200(response)
    body = get_body_from_response(response)
    assert body == {'errors': ['Invalid input data']}
예제 #10
0
def test_get_bad_data(data, invalid_session_response):
    response = get_session_detail(data)
    assert response['statusCode'] == 404
    body = get_body_from_response(response)
    assert body == invalid_session_response
예제 #11
0
def test_get_invalid_session(session_id, invalid_session_response):
    payload = {'pathParameters': {'id': session_id}}
    response = get_session_detail(payload)
    assert response['statusCode'] == 404
    body = get_body_from_response(response)
    assert body == invalid_session_response
예제 #12
0
def test_get_nonexistent_session(invalid_session_response):
    payload = {'pathParameters': {'id': 23423423}}
    response = get_session_detail(payload)
    assert response['statusCode'] == 404
    body = get_body_from_response(response)
    assert body == invalid_session_response