Re introduced some tests. Moved update email from db to api.

This commit is contained in:
Adam Shimali
2016-01-24 15:00:50 +00:00
parent 4674bd6b68
commit 3d14296ae0
3 changed files with 39 additions and 101 deletions

View File

@@ -31,91 +31,26 @@ def test_insert_user_with_role_that_does_not_exist_fails(db_, db_session):
assert 'insert or update on table "users" violates foreign key constraint "users_role_id_fkey"' in str(error.value)
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_get_user_by_email(db_, db_session):
user = User(name='test_get_by_email',
password='somepassword',
email_address='email@example.gov.uk',
mobile_number='+441234153412',
role_id=1)
users_dao.insert_user(user)
retrieved = users_dao.get_user_by_email(user.email_address)
assert retrieved == user
def test_get_user_by_email_calls_api(db_, db_session, mock_active_user, mock_get_user_from_api):
users_dao.get_user_by_email(mock_active_user.email_address)
mock_get_user_from_api.assert_called_once_with(mock_active_user.email_address)
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_get_all_users_returns_all_users(db_, db_session):
user1 = User(name='test one',
password='somepassword',
email_address='test1@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1)
user2 = User(name='test two',
password='some2ndpassword',
email_address='test2@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1)
user3 = User(name='test three',
password='some2ndpassword',
email_address='test3@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1)
users_dao.insert_user(user1)
users_dao.insert_user(user2)
users_dao.insert_user(user3)
users = users_dao.get_all_users()
assert len(users) == 3
assert users == [user1, user2, user3]
def test_get_all_users_calls_api(db_, db_session, mock_get_all_users_from_api):
users_dao.get_all_users()
assert mock_get_all_users_from_api.called
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_increment_failed_lockout_count_should_increade_count_by_1(db_, db_session):
user = User(name='cannot remember password',
password='somepassword',
email_address='test1@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1)
users_dao.insert_user(user)
savedUser = users_dao.get_user_by_id(user.id)
assert savedUser.failed_login_count == 0
users_dao.increment_failed_login_count(user.id)
assert users_dao.get_user_by_id(user.id).failed_login_count == 1
def test_increment_failed_login_count_should_increade_count_by_1(db_, db_session, mock_active_user, mock_get_user):
assert mock_active_user.failed_login_count == 0
users_dao.increment_failed_login_count(mock_active_user.id)
assert mock_active_user.failed_login_count == 1
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_user_is_locked_if_failed_login_count_is_10_or_greater(db_, db_session):
user = User(name='cannot remember password',
password='somepassword',
email_address='test1@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1)
users_dao.insert_user(user)
saved_user = users_dao.get_user_by_id(user.id)
assert saved_user.is_locked() is False
for _ in range(10):
users_dao.increment_failed_login_count(user.id)
saved_user = users_dao.get_user_by_id(user.id)
assert saved_user.failed_login_count == 10
assert saved_user.is_locked() is True
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_user_is_active_is_false_if_state_is_inactive(db_, db_session):
user = User(name='inactive user',
password='somepassword',
email_address='test1@get_all.gov.uk',
mobile_number='+441234123412',
role_id=1,
state='inactive')
users_dao.insert_user(user)
saved_user = users_dao.get_user_by_id(user.id)
assert saved_user.is_active() is False
def test_user_is_active_is_false_if_state_is_inactive(db_, db_session, mock_active_user):
assert mock_active_user.is_active() is True
mock_active_user.state = 'inactive'
assert mock_active_user.is_active() is False
def test_should_update_user_to_active(mock_activate_user):
@@ -138,21 +73,12 @@ def test_should_throws_error_when_id_does_not_exist(db_, db_session):
assert '''object has no attribute 'state''''' in str(error.value)
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')
def test_should_update_email_address(db_, db_session):
user = User(name='Update Email',
password='somepassword',
email_address='test@it.gov.uk',
mobile_number='+441234123412',
role_id=1,
state='inactive')
users_dao.insert_user(user)
def test_should_update_email_address(db_, db_session, mock_active_user, mock_get_user, mock_update_user_email_api):
assert mock_active_user.email_address == 'test@user.gov.uk'
users_dao.update_email_address(mock_active_user.id, 'new_email@testit.gov.uk')
saved = users_dao.get_user_by_id(user.id)
assert saved.email_address == 'test@it.gov.uk'
users_dao.update_email_address(user.id, 'new_email@testit.gov.uk')
updated = users_dao.get_user_by_id(user.id)
assert updated.email_address == 'new_email@testit.gov.uk'
assert mock_active_user.email_address == 'new_email@testit.gov.uk'
mock_update_user_email_api.assert_called_once_with(mock_active_user)
@pytest.mark.skipif(True, reason='Database tests to move to api and ineraction tests done here')