# HG changeset patch # User Konstantin Veretennicov # Date 1462138149 -7200 # Node ID a620c2c49cfed447d449757792332044d6ebee80 # Parent a384ac02f8ac6f256bb7aa6ea2d0a987d3a54dc5 tests: add basic test for user creation from LDAP diff -r a384ac02f8ac -r a620c2c49cfe kallithea/tests/other/test_auth_ldap.py --- a/kallithea/tests/other/test_auth_ldap.py Sun May 01 23:29:09 2016 +0200 +++ b/kallithea/tests/other/test_auth_ldap.py Sun May 01 23:29:09 2016 +0200 @@ -62,3 +62,34 @@ assert user.firstname == 'spam ldap first name' assert user.lastname == 'spam ldap last name' assert user.email == 'spam ldap email' + + +def test_init_user_attributes_from_ldap(monkeypatch, arrange_ldap_auth): + """Authenticate unknown user with mocked LDAP, verify user is created. + """ + + # Arrange test user. + uniqifier = uuid.uuid4() + username = 'test-user-{}'.format(uniqifier) + assert User.get_by_username(username) is None + + # Arrange LDAP auth. + monkeypatch.setattr(auth_ldap, 'AuthLdap', _AuthLdapMock) + + # Authenticate with LDAP. + user_data = authenticate(username, 'password') + + # Verify that authenication succeeded and retrieved correct attributes + # from LDAP. + assert user_data is not None + assert user_data.get('firstname') == 'spam ldap first name' + assert user_data.get('lastname') == 'spam ldap last name' + assert user_data.get('email') == 'spam ldap email' + + # Verify that authentication created new user with attributes + # retrieved from LDAP. + new_user = User.get_by_username(username) + assert new_user is not None + assert new_user.firstname == 'spam ldap first name' + assert new_user.lastname == 'spam ldap last name' + assert new_user.email == 'spam ldap email'