changeset 5904:a620c2c49cfe

tests: add basic test for user creation from LDAP
author Konstantin Veretennicov <kveretennicov@gmail.com>
date Sun, 01 May 2016 23:29:09 +0200
parents a384ac02f8ac
children bf8898a112b2
files kallithea/tests/other/test_auth_ldap.py
diffstat 1 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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'