Beispiel #1
0
def test_signup_creates_new_user_with_none_names(dummy_request, db_session):
    """Test that signup sets first and last name to None when not given."""
    data = {'email': FAKE.email(), 'password': FAKE.password()}
    dummy_request.POST = data
    res = signup_view(dummy_request)
    assert res['first_name'] is None
    assert res['last_name'] is None
Beispiel #2
0
def test_signup_post_incomplete_data_gets_400_status_code(testapp):
    """Test that POST to signup route gets 400 status code for bad data."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'password': FAKE.password()
    }
    res = testapp.post('/signup', data, status=400)
    assert res.status_code == 400
Beispiel #3
0
def test_signup_post_complete_data_gets_201_status_code(testapp):
    """Test that POST to signup route gets 201 status code."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    res = testapp.post('/signup', data)
    assert res.status_code == 201
Beispiel #4
0
def test_signup_raises_error_for_incomplete_post_data(dummy_request):
    """Test that signup raises HTTPBadRequest for missing email."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'password': FAKE.password()
    }
    dummy_request.POST = data
    with pytest.raises(HTTPBadRequest):
        signup_view(dummy_request)
Beispiel #5
0
def test_signup_adds_new_user_to_the_database(dummy_request, db_session):
    """Test that signup adds a new User to the database."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    dummy_request.POST = data
    signup_view(dummy_request)
    assert len(db_session.query(User).all()) == 1
Beispiel #6
0
def test_signup_post_complete_data_returns_json_with_new_user_info(testapp):
    """Test that POST to signup route gets JSON with details for new User."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    res = testapp.post('/signup', data)
    for prop in ['first_name', 'last_name', 'email']:
        assert res.json[prop] == data[prop]
    assert res.json['id'] is not None
Beispiel #7
0
def test_signup_post_complete_data_adds_user_to_database(
        testapp, testapp_session):
    """Test that POST to signup route creates a new User."""
    assert len(testapp_session.query(User).all()) == 0
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    testapp.post('/signup', data)
    assert len(testapp_session.query(User).all()) == 1
Beispiel #8
0
def test_signup_returns_dict_with_new_user_data(dummy_request):
    """Test that signup returns dict with the new User's data."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    dummy_request.POST = data
    res = signup_view(dummy_request)
    assert isinstance(res, dict)
    assert all(prop in res
               for prop in ['id', 'first_name', 'last_name', 'email'])
Beispiel #9
0
def test_signup_raises_error_for_duplicate_email(dummy_request, db_session,
                                                 one_user):
    """Test that signup raises HTTPBadRequest for duplicate email."""
    db_session.add(one_user)
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': one_user.email,
        'password': FAKE.password()
    }
    dummy_request.POST = data
    with pytest.raises(HTTPBadRequest):
        signup_view(dummy_request)
Beispiel #10
0
def test_signup_creates_new_user_using_post_data(dummy_request, db_session):
    """Test that signup uses POST data to create the new User."""
    data = {
        'first_name': FAKE.first_name(),
        'last_name': FAKE.last_name(),
        'email': FAKE.email(),
        'password': FAKE.password()
    }
    dummy_request.POST = data
    res = signup_view(dummy_request)
    new_user = db_session.query(User).get(res['id'])
    for prop in ['first_name', 'last_name', 'email']:
        assert getattr(new_user, prop) == data[prop]
    assert new_user.verify(data['password'])
Beispiel #11
0
def test_signup_post_data_without_names_sets_names_to_none(testapp):
    """Test that POST to signup route sets first and last names to None."""
    data = {'email': FAKE.email(), 'password': FAKE.password()}
    res = testapp.post('/signup', data)
    assert res.json['first_name'] is None
    assert res.json['last_name'] is None