diff options
Diffstat (limited to 'okupy/tests/unit')
-rw-r--r-- | okupy/tests/unit/test_auth.py | 4 | ||||
-rw-r--r-- | okupy/tests/unit/test_cipher.py | 2 | ||||
-rw-r--r-- | okupy/tests/unit/test_index.py | 6 | ||||
-rw-r--r-- | okupy/tests/unit/test_lists.py | 23 | ||||
-rw-r--r-- | okupy/tests/unit/test_login.py | 70 | ||||
-rw-r--r-- | okupy/tests/unit/test_openid.py | 18 | ||||
-rw-r--r-- | okupy/tests/unit/test_secondary_password.py | 86 | ||||
-rw-r--r-- | okupy/tests/unit/test_signup.py | 142 | ||||
-rw-r--r-- | okupy/tests/unit/test_ssh.py | 13 |
9 files changed, 238 insertions, 126 deletions
diff --git a/okupy/tests/unit/test_auth.py b/okupy/tests/unit/test_auth.py index 7c445f6..d514999 100644 --- a/okupy/tests/unit/test_auth.py +++ b/okupy/tests/unit/test_auth.py @@ -6,8 +6,8 @@ from django.conf import settings from django.contrib.auth import authenticate from django.test import TestCase -from .. import vars -from ...common.test_helpers import ldap_users, set_request +from okupy.common.test_helpers import ldap_users, set_request +from okupy.tests import vars import base64 diff --git a/okupy/tests/unit/test_cipher.py b/okupy/tests/unit/test_cipher.py index 0589dfd..a306610 100644 --- a/okupy/tests/unit/test_cipher.py +++ b/okupy/tests/unit/test_cipher.py @@ -5,7 +5,7 @@ from unittest import TestCase, SkipTest from django.contrib.sessions.backends.cache import SessionStore -from ...crypto.ciphers import cipher, sessionrefcipher +from okupy.crypto.ciphers import cipher, sessionrefcipher class OkupyCipherTests(TestCase): diff --git a/okupy/tests/unit/test_index.py b/okupy/tests/unit/test_index.py index eb6861e..b35d99a 100644 --- a/okupy/tests/unit/test_index.py +++ b/okupy/tests/unit/test_index.py @@ -6,9 +6,9 @@ from django.test import TestCase from mockldap import MockLdap -from .. import vars -from ...accounts.views import index -from ...common.test_helpers import set_request +from okupy.accounts.views import index +from okupy.common.test_helpers import set_request +from okupy.tests import vars class IndexUnitTests(TestCase): diff --git a/okupy/tests/unit/test_lists.py b/okupy/tests/unit/test_lists.py index 04803f9..b5d7006 100644 --- a/okupy/tests/unit/test_lists.py +++ b/okupy/tests/unit/test_lists.py @@ -5,9 +5,9 @@ from django.core.urlresolvers import resolve from mockldap import MockLdap -from .. import vars -from ...accounts.views import lists -from ...common.test_helpers import OkupyTestCase, set_request +from okupy.accounts.views import lists +from okupy.common.test_helpers import OkupyTestCase, set_request +from okupy.tests import vars class ListsUnitTests(OkupyTestCase): @@ -34,7 +34,11 @@ class ListsUnitTests(OkupyTestCase): def test_rendered_devlist_page(self): request = set_request(uri='/devlist') response = lists(request, 'devlist') - page_part = '<tr>\n <td class="devname"><b>alice</b></td>\n <td>Alice Adams</td>\n <td><a href="http://maps.google.com/maps?q=City1, Country1">City1, Country1</a></td>\n <td class="tableinfo">kde, qt, cluster</td>\n </tr>' + page_part = '<tr>\n <td class="devname"><b>alice' + '</b></td>\n <td>Alice Adams</td>\n ' + '<td><a href="http://maps.google.com/maps?q=City1, Country1">' + 'City1, Country1</a></td>\n <td class="tableinfo">' + 'kde, qt, cluster</td>\n </tr>' self.assertIn(page_part, response.content) def test_former_devlist_url_resolves_to_lists_view(self): @@ -49,7 +53,11 @@ class ListsUnitTests(OkupyTestCase): def test_rendered_former_devlist_page(self): request = set_request(uri='/former-devlist') response = lists(request, 'former-devlist') - page_part = '<tr>\n <td class="devname"><b>john</b></td>\n <td>John Smith</td>\n <td><a href="http://maps.google.com/maps?q=City3, Country3">City3, Country3</a></td>\n <td class="tableinfo">kernel, security</td>\n </tr>' + page_part = '<tr>\n <td class="devname"><b>john' + '</b></td>\n <td>John Smith</td>\n ' + '<td><a href="http://maps.google.com/maps?q=City3, Country3">' + 'City3, Country3</a></td>\n <td class="tableinfo">' + 'kernel, security</td>\n </tr>' self.assertIn(page_part, response.content) def test_foundation_members_list_url_resolves_to_lists_view(self): @@ -64,5 +72,8 @@ class ListsUnitTests(OkupyTestCase): def test_rendered_foundation_members_page(self): request = set_request(uri='/foundation-members') response = lists(request, 'foundation-members') - page_part = '<tr>\n <td style="color:#5c4f85;"><b>bob</b></td>\n <td>Robert Barker</td>\n <td><a href="http://maps.google.com/maps?q=City2, Country2">City2, Country2</a></td>\n </tr>' + page_part = '<tr>\n <td style="color:#5c4f85;"><b>bob' + '</b></td>\n <td>Robert Barker</td>\n ' + '<td><a href="http://maps.google.com/maps?q=City2, Country2">' + 'City2, Country2</a></td>\n </tr>' self.assertIn(page_part, response.content) diff --git a/okupy/tests/unit/test_login.py b/okupy/tests/unit/test_login.py index d674150..b602d65 100644 --- a/okupy/tests/unit/test_login.py +++ b/okupy/tests/unit/test_login.py @@ -12,11 +12,12 @@ from Crypto import Random from passlib.hash import ldap_md5_crypt from mockldap import MockLdap -from .. import vars -from ...accounts.views import login, logout -from ...accounts.forms import LoginForm -from ...common.test_helpers import OkupyTestCase, set_request, no_database, ldap_users -from ...crypto.ciphers import cipher +from okupy.accounts.views import login, logout +from okupy.accounts.forms import LoginForm +from okupy.common.test_helpers import (OkupyTestCase, set_request, no_database, + ldap_users) +from okupy.crypto.ciphers import cipher +from okupy.tests import vars class LoginUnitTests(OkupyTestCase): @@ -32,13 +33,15 @@ class LoginUnitTests(OkupyTestCase): self.mockldap.stop() def test_incorrect_user_raises_login_failed(self): - request = set_request(uri='/login', post=vars.LOGIN_WRONG, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_WRONG, + messages=True) response = login(request) response.context = RequestContext(request) self.assertMessage(response, 'Login failed', 40) def test_incorrect_user_does_not_get_transferred_in_db(self): - request = set_request(uri='/login', post=vars.LOGIN_WRONG, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_WRONG, + messages=True) login(request) self.assertEqual(User.objects.count(), 0) @@ -47,21 +50,25 @@ class LoginUnitTests(OkupyTestCase): 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend')) def test_no_database_raises_critical(self): - request = set_request(uri='/login', post=vars.LOGIN_ALICE, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_ALICE, + messages=True) response = login(request) response.context = RequestContext(request) - self.assertMessage(response, "Can't contact the LDAP server or the database", 40) + self.assertMessage(response, + "Can't contact the LDAP server or the database", 40) @no_database() @override_settings(AUTHENTICATION_BACKENDS=( 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend')) def test_no_database_sends_notification_mail(self): - request = set_request(uri='/login', post=vars.LOGIN_ALICE, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_ALICE, + messages=True) response = login(request) response.context = RequestContext(request) self.assertEqual(len(mail.outbox), 1) - self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % settings.EMAIL_SUBJECT_PREFIX)) + self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % + settings.EMAIL_SUBJECT_PREFIX)) def test_correct_user_gets_transferred_in_db(self): request = set_request(uri='/login', post=vars.LOGIN_ALICE) @@ -77,17 +84,25 @@ class LoginUnitTests(OkupyTestCase): def test_secondary_password_is_added_in_login(self): request = set_request(uri='/login', post=vars.LOGIN_ALICE) login(request) - self.assertEqual(len(ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']), 2) + self.assertEqual(len(ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword']), 2) self.assertEqual(len(request.session['secondary_password']), 48) def test_secondary_password_is_removed_in_logout(self): secondary_password = Random.get_random_bytes(48) - secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode(secondary_password)) - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(secondary_password_crypt) - request = set_request(uri='/login', post=vars.LOGIN_ALICE, user=vars.USER_ALICE) - request.session['secondary_password'] = cipher.encrypt(secondary_password) + secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode( + secondary_password)) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(secondary_password_crypt) + request = set_request(uri='/login', post=vars.LOGIN_ALICE, + user=vars.USER_ALICE) + request.session['secondary_password'] = cipher.encrypt( + secondary_password) logout(request) - self.assertEqual(len(ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']), 1) + self.assertEqual(len(ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword']), 1) class LoginUnitTestsNoLDAP(OkupyTestCase): @@ -103,15 +118,19 @@ class LoginUnitTestsNoLDAP(OkupyTestCase): def test_rendered_login_form(self): request = set_request(uri='/login') response = login(request) - login_form_part = '<input id="id_username" maxlength="100" name="username" type="text" />' + login_form_part = '<input id="id_username" maxlength="100"' + 'name="username" type="text" />' self.assertIn(login_form_part, response.content) def test_empty_user_raises_form_error_messages(self): request = set_request(uri='/login') response = login(request) - response.context = RequestContext(request, {'login_form': LoginForm(request.POST)}) - self.assertFormError(response, 'login_form', 'username', 'This field is required.') - self.assertFormError(response, 'login_form', 'password', 'This field is required.') + response.context = RequestContext(request, { + 'login_form': LoginForm(request.POST)}) + self.assertFormError(response, 'login_form', 'username', + 'This field is required.') + self.assertFormError(response, 'login_form', 'password', + 'This field is required.') def test_empty_user_raises_login_failed(self): request = set_request(uri='/login', post=True, messages=True) @@ -126,14 +145,17 @@ class LoginUnitTestsNoLDAP(OkupyTestCase): self.assertMessage(response, 'Login failed', 40) def test_no_ldap_connection_raises_login_failed_in_login(self): - request = set_request(uri='/login', post=vars.LOGIN_WRONG, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_WRONG, + messages=True) response = login(request) response.context = RequestContext(request) self.assertMessage(response, 'Login failed', 40) def test_no_ldap_connection_in_logout_sends_notification_mail(self): - request = set_request(uri='/login', post=vars.LOGIN_ALICE, user=vars.USER_ALICE) + request = set_request(uri='/login', post=vars.LOGIN_ALICE, + user=vars.USER_ALICE) request.session['secondary_password'] = 'test' logout(request) self.assertEqual(len(mail.outbox), 1) - self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % settings.EMAIL_SUBJECT_PREFIX)) + self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % + settings.EMAIL_SUBJECT_PREFIX)) diff --git a/okupy/tests/unit/test_openid.py b/okupy/tests/unit/test_openid.py index 4d5a75a..0807a3d 100644 --- a/okupy/tests/unit/test_openid.py +++ b/okupy/tests/unit/test_openid.py @@ -2,18 +2,18 @@ from django.test import TestCase -from ...accounts.openid_store import DjangoDBOpenIDStore +from okupy.accounts.openid_store import DjangoDBOpenIDStore import time class OpenIDStoreTests(TestCase): - def setUp(self): - self.store = DjangoDBOpenIDStore() + def setUp(self): + self.store = DjangoDBOpenIDStore() - def test_nonce_integrity(self): - nonce = ('http://example.com', time.time(), 'pepper') - # first one should succeed, the second one should fail because - # of reused nonce - self.assertTrue(self.store.useNonce(*nonce)) - self.assertFalse(self.store.useNonce(*nonce)) + def test_nonce_integrity(self): + nonce = ('http://example.com', time.time(), 'pepper') + # first one should succeed, the second one should fail because + # of reused nonce + self.assertTrue(self.store.useNonce(*nonce)) + self.assertFalse(self.store.useNonce(*nonce)) diff --git a/okupy/tests/unit/test_secondary_password.py b/okupy/tests/unit/test_secondary_password.py index 885c3cb..ff0a794 100644 --- a/okupy/tests/unit/test_secondary_password.py +++ b/okupy/tests/unit/test_secondary_password.py @@ -8,10 +8,11 @@ from Crypto import Random from mockldap import MockLdap from passlib.hash import ldap_md5_crypt -from .. import vars -from ...common.ldap_helpers import set_secondary_password, remove_secondary_password -from ...common.test_helpers import set_request, set_search_seed, ldap_users -from ...crypto.ciphers import cipher +from okupy.common.ldap_helpers import (set_secondary_password, + remove_secondary_password) +from okupy.common.test_helpers import set_request, ldap_users +from okupy.crypto.ciphers import cipher +from okupy.tests import vars class SecondaryPassword(TestCase): @@ -35,60 +36,89 @@ class SecondaryPassword(TestCase): request = set_request(uri='/', user=vars.USER_ALICE) self.assertEqual(len(ldap_users('alice')[1]['userPassword']), 1) set_secondary_password(request, 'ldaptest') - self.assertEqual(len(ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']), 2) + self.assertEqual(len(ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword']), 2) def test_remove_leftovers_before_adding_secondary_password(self): leftover = ldap_md5_crypt.encrypt('leftover_password') - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(leftover) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(leftover) request = set_request(uri='/', user=vars.USER_ALICE) set_secondary_password(request, 'ldaptest') - self.assertNotIn(leftover, ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']) + self.assertNotIn(leftover, ldap_users( + 'alice', directory=self.ldapobject.directory)[1]['userPassword']) def test_dont_remove_primary_password_while_cleaning_leftovers(self): leftover = ldap_md5_crypt.encrypt('leftover_password') - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(leftover) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(leftover) request = set_request(uri='/', user=vars.USER_ALICE) set_secondary_password(request, 'ldaptest') - self.assertTrue(ldap_md5_crypt.verify('ldaptest', ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword'][0])) + self.assertTrue(ldap_md5_crypt.verify( + 'ldaptest', ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword'][0])) def test_dont_remove_unknown_hashes_while_cleaning_leftovers(self): leftover = ldap_md5_crypt.encrypt('leftover_password') - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(leftover) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(leftover) leftover2 = 'plain_leftover2' - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(leftover2) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(leftover2) request = set_request(uri='/', user=vars.USER_ALICE) set_secondary_password(request, 'ldaptest') - self.assertIn(leftover2, ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']) + self.assertIn(leftover2, ldap_users( + 'alice', directory=self.ldapobject.directory)[1]['userPassword']) def test_session_and_ldap_secondary_passwords_match(self): request = set_request(uri='/', user=vars.USER_ALICE) set_secondary_password(request, 'ldaptest') - self.assertTrue(ldap_md5_crypt.verify(b64encode(cipher.decrypt(request.session['secondary_password'], 48)), ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword'][1])) + self.assertTrue(ldap_md5_crypt.verify(b64encode(cipher.decrypt( + request.session['secondary_password'], 48)), + ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword'][1])) def test_remove_secondary_password_from_ldap(self): secondary_password = Random.get_random_bytes(48) - secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode(secondary_password)) - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(secondary_password_crypt) + secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode( + secondary_password)) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(secondary_password_crypt) request = set_request(uri='/', user=vars.USER_ALICE) - request.session['secondary_password'] = cipher.encrypt(secondary_password) + request.session['secondary_password'] = cipher.encrypt( + secondary_password) remove_secondary_password(request) - self.assertNotIn(secondary_password_crypt, ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']) + self.assertNotIn(secondary_password_crypt, ldap_users( + 'alice', directory=self.ldapobject.directory)[1]['userPassword']) - def test_dont_remove_primary_password_while_removing_secondary_password(self): + def test_dont_remove_primary_password_when_removing_secondary_passwd(self): secondary_password = Random.get_random_bytes(48) - secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode(secondary_password)) - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(secondary_password_crypt) + secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode( + secondary_password)) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(secondary_password_crypt) request = set_request(uri='/', user=vars.USER_ALICE) - request.session['secondary_password'] = cipher.encrypt(secondary_password) + request.session['secondary_password'] = cipher.encrypt( + secondary_password) remove_secondary_password(request) - self.assertTrue(ldap_md5_crypt.verify('ldaptest', ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword'][0])) + self.assertTrue(ldap_md5_crypt.verify('ldaptest', ldap_users( + 'alice', + directory=self.ldapobject.directory)[1]['userPassword'][0])) - def test_dont_remove_unknown_hashes_while_removing_secondary_password(self): + def test_dont_remove_unknown_hashes_when_removing_secondary_password(self): secondary_password = Random.get_random_bytes(48) - secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode(secondary_password)) - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append('unknown_hash') - self.ldapobject.directory[ldap_users('alice')[0]]['userPassword'].append(secondary_password_crypt) + secondary_password_crypt = ldap_md5_crypt.encrypt(b64encode( + secondary_password)) + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append('unknown_hash') + self.ldapobject.directory[ldap_users('alice')[0]][ + 'userPassword'].append(secondary_password_crypt) request = set_request(uri='/', user=vars.USER_ALICE) - request.session['secondary_password'] = cipher.encrypt(secondary_password) + request.session['secondary_password'] = cipher.encrypt( + secondary_password) remove_secondary_password(request) - self.assertIn('unknown_hash', ldap_users('alice', directory=self.ldapobject.directory)[1]['userPassword']) + self.assertIn('unknown_hash', ldap_users( + 'alice', directory=self.ldapobject.directory)[1]['userPassword']) diff --git a/okupy/tests/unit/test_signup.py b/okupy/tests/unit/test_signup.py index 2f4485d..459e3f8 100644 --- a/okupy/tests/unit/test_signup.py +++ b/okupy/tests/unit/test_signup.py @@ -8,11 +8,12 @@ from django.template import RequestContext from mockldap import MockLdap from passlib.hash import ldap_md5_crypt -from .. import vars -from ...accounts.forms import SignupForm -from ...accounts.models import LDAPUser, Queue -from ...accounts.views import signup, activate -from ...common.test_helpers import OkupyTestCase, set_request, no_database, ldap_users +from okupy.accounts.forms import SignupForm +from okupy.accounts.models import Queue +from okupy.accounts.views import signup, activate +from okupy.common.test_helpers import (OkupyTestCase, set_request, ldap_users, + no_database) +from okupy.tests import vars class SignupUnitTests(OkupyTestCase): @@ -50,7 +51,8 @@ class SignupUnitTests(OkupyTestCase): request = set_request(uri='/signup', post=_form, messages=True) response = signup(request) response.context = RequestContext(request) - self.assertMessage(response, 'Account is already pending activation', 40) + self.assertMessage(response, + 'Account is already pending activation', 40) def test_email_already_pending_activation(self): _form = vars.SIGNUP_TESTUSER.copy() @@ -59,7 +61,8 @@ class SignupUnitTests(OkupyTestCase): request = set_request(uri='/signup', post=_form, messages=True) response = signup(request) response.context = RequestContext(request) - self.assertMessage(response, 'Account is already pending activation', 40) + self.assertMessage(response, + 'Account is already pending activation', 40) def test_add_queued_account_to_ldap_prints_success_message(self): vars.QUEUEDUSER.save() @@ -67,26 +70,35 @@ class SignupUnitTests(OkupyTestCase): request = set_request(uri=activate_url, messages=True) response = activate(request, vars.QUEUEDUSER.encrypted_id) response.context = RequestContext(request) - self.assertMessage(response, 'Your account has been activated successfully', 25) + self.assertMessage(response, + 'Your account has been activated successfully', 25) def test_queued_account_gets_added_to_ldap(self): vars.QUEUEDUSER.save() activate_url = '/activate/%s/' % vars.QUEUEDUSER.encrypted_id request = set_request(activate_url, messages=True) activate(request, vars.QUEUEDUSER.encrypted_id) - self.assertTrue(ldap_users(vars.QUEUEDUSER.username, directory=self.ldapobject.directory)) - ldap_account = ldap_users(vars.QUEUEDUSER.username, directory=self.ldapobject.directory)[1] - self.assertEqual(ldap_account['objectClass'], settings.AUTH_LDAP_USER_OBJECTCLASS) + self.assertTrue(ldap_users(vars.QUEUEDUSER.username, + directory=self.ldapobject.directory)) + ldap_account = ldap_users(vars.QUEUEDUSER.username, + directory=self.ldapobject.directory)[1] + self.assertEqual(ldap_account['objectClass'], + settings.AUTH_LDAP_USER_OBJECTCLASS) self.assertEqual(ldap_account['sn'][0], vars.QUEUEDUSER.last_name) - self.assertEqual(ldap_account['cn'][0], '%s %s' % (vars.QUEUEDUSER.first_name, vars.QUEUEDUSER.last_name)) - self.assertTrue(ldap_md5_crypt.verify(vars.QUEUEDUSER.password, ldap_account['userPassword'][0])) - self.assertEqual(ldap_account['givenName'][0], vars.QUEUEDUSER.first_name) + self.assertEqual(ldap_account['cn'][0], '%s %s' % ( + vars.QUEUEDUSER.first_name, vars.QUEUEDUSER.last_name)) + self.assertTrue(ldap_md5_crypt.verify(vars.QUEUEDUSER.password, + ldap_account['userPassword'][0])) + self.assertEqual(ldap_account['givenName'][0], + vars.QUEUEDUSER.first_name) self.assertEqual(ldap_account['mail'][0], vars.QUEUEDUSER.email) self.assertEqual(ldap_account['uid'][0], vars.QUEUEDUSER.username) self.assertEqual(ldap_account['uidNumber'][0], '1002') self.assertEqual(ldap_account['gidNumber'][0], '100') - self.assertEqual(ldap_account['gecos'][0], '%s %s' % (vars.QUEUEDUSER.first_name, vars.QUEUEDUSER.last_name)) - self.assertEqual(ldap_account['homeDirectory'][0], '/home/%s' % vars.QUEUEDUSER.username) + self.assertEqual(ldap_account['gecos'][0], '%s %s' % ( + vars.QUEUEDUSER.first_name, vars.QUEUEDUSER.last_name)) + self.assertEqual(ldap_account['homeDirectory'][0], + '/home/%s' % vars.QUEUEDUSER.username) self.assertEqual(ldap_account['gentooACL'][0], 'user.group') def test_add_queued_account_remove_from_queue(self): @@ -97,46 +109,59 @@ class SignupUnitTests(OkupyTestCase): self.assertEqual(Queue.objects.count(), 0) def test_valid_data_to_signup_form_prints_info_message(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) - self.assertMessage(response, 'You will shortly receive an activation mail', 20) + self.assertMessage(response, + 'You will shortly receive an activation mail', 20) def test_valid_data_to_signup_form_sends_activation_mail(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertEqual(len(mail.outbox), 1) - self.assertEqual(mail.outbox[0].subject, '%sAccount Activation' % settings.EMAIL_SUBJECT_PREFIX) + self.assertEqual(mail.outbox[0].subject, '%sAccount Activation' % + settings.EMAIL_SUBJECT_PREFIX) def test_valid_data_to_signup_form_adds_user_to_queue(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertEqual(Queue.objects.count(), 1) vars.QUEUEDUSER = Queue.objects.get(pk=1) - self.assertEqual(vars.QUEUEDUSER.username, vars.SIGNUP_TESTUSER['username']) - self.assertEqual(vars.QUEUEDUSER.first_name, vars.SIGNUP_TESTUSER['first_name']) - self.assertEqual(vars.QUEUEDUSER.last_name, vars.SIGNUP_TESTUSER['last_name']) + self.assertEqual(vars.QUEUEDUSER.username, + vars.SIGNUP_TESTUSER['username']) + self.assertEqual(vars.QUEUEDUSER.first_name, + vars.SIGNUP_TESTUSER['first_name']) + self.assertEqual(vars.QUEUEDUSER.last_name, + vars.SIGNUP_TESTUSER['last_name']) self.assertEqual(vars.QUEUEDUSER.email, vars.SIGNUP_TESTUSER['email']) - self.assertEqual(vars.QUEUEDUSER.password, vars.SIGNUP_TESTUSER['password_origin']) + self.assertEqual(vars.QUEUEDUSER.password, + vars.SIGNUP_TESTUSER['password_origin']) # note: this needs to be kept in line with used cipher - self.assertRegexpMatches(vars.QUEUEDUSER.encrypted_id, '^[a-zA-Z0-9_-]{22}$') + self.assertRegexpMatches(vars.QUEUEDUSER.encrypted_id, + '^[a-zA-Z0-9_-]{22}$') @no_database() def test_no_database_connection_raises_error_in_signup(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertMessage(response, "Can't contact the database", 40) @no_database() def test_no_database_connection_sends_notification_mail_in_signup(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertEqual(len(mail.outbox), 1) - self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % settings.EMAIL_SUBJECT_PREFIX)) + self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % + settings.EMAIL_SUBJECT_PREFIX)) @no_database() def test_no_database_connection_raises_error_in_activation(self): @@ -146,11 +171,12 @@ class SignupUnitTests(OkupyTestCase): self.assertMessage(response, "Can't contact the database", 40) @no_database() - def test_no_database_connection_sends_notification_mail_in_activation(self): + def test_no_database_connection_sends_notificationmail_in_activation(self): request = set_request('/activate/test', messages=True) activate(request, vars.QUEUEDUSER.encrypted_id) self.assertEqual(len(mail.outbox), 1) - self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % settings.EMAIL_SUBJECT_PREFIX)) + self.assertTrue(mail.outbox[0].subject.startswith('%sERROR:' % + settings.EMAIL_SUBJECT_PREFIX)) def test_add_first_user_in_empty_ldap_directory(self): vars.QUEUEDUSER.save() @@ -158,8 +184,11 @@ class SignupUnitTests(OkupyTestCase): self.ldapobject.directory = ldap_users(clean=True) request = set_request(activate_url, messages=True) activate(request, vars.QUEUEDUSER.encrypted_id) - self.assertTrue(ldap_users(vars.QUEUEDUSER.username, directory=self.ldapobject.directory)) - self.assertEqual(ldap_users(vars.QUEUEDUSER.username, directory=self.ldapobject.directory)[1]['uidNumber'][0], '1') + self.assertTrue(ldap_users(vars.QUEUEDUSER.username, + directory=self.ldapobject.directory)) + self.assertEqual(ldap_users( + vars.QUEUEDUSER.username, + directory=self.ldapobject.directory)[1]['uidNumber'][0], '1') class SignupunitTestsNoLDAP(OkupyTestCase): @@ -175,27 +204,38 @@ class SignupunitTestsNoLDAP(OkupyTestCase): def test_rendered_signup_form(self): request = set_request(uri='/signup') response = signup(request) - signup_form_part = '<label for="id_first_name">First Name:</label><input id="id_first_name" maxlength="100" name="first_name" type="text" />' + signup_form_part = '<label for="id_first_name">First Name:</label>' + '<input id="id_first_name" maxlength="100" name="first_name"' + 'type="text" />' self.assertIn(signup_form_part, response.content) def test_empty_signup_form_raises_form_error_messages(self): request = set_request(uri='/signup') response = signup(request) - response.context = RequestContext(request, {'signup_form': SignupForm(request.POST)}) - self.assertFormError(response, 'signup_form', 'username', 'This field is required.') - self.assertFormError(response, 'signup_form', 'first_name', 'This field is required.') - self.assertFormError(response, 'signup_form', 'last_name', 'This field is required.') - self.assertFormError(response, 'signup_form', 'email', 'This field is required.') - self.assertFormError(response, 'signup_form', 'password_origin', 'This field is required.') - self.assertFormError(response, 'signup_form', 'password_verify', 'This field is required.') + response.context = RequestContext(request, {'signup_form': + SignupForm(request.POST)}) + self.assertFormError(response, 'signup_form', 'username', + 'This field is required.') + self.assertFormError(response, 'signup_form', 'first_name', + 'This field is required.') + self.assertFormError(response, 'signup_form', 'last_name', + 'This field is required.') + self.assertFormError(response, 'signup_form', 'email', + 'This field is required.') + self.assertFormError(response, 'signup_form', 'password_origin', + 'This field is required.') + self.assertFormError(response, 'signup_form', 'password_verify', + 'This field is required.') def test_passwords_dont_match(self): _form = vars.SIGNUP_TESTUSER.copy() _form['password_verify'] = 'wrong' request = set_request(uri='/signup', post=_form) response = signup(request) - response.context = RequestContext(request, {'signup_form': SignupForm(request.POST)}) - self.assertFormError(response, 'signup_form', 'password_verify', "Passwords don't match") + response.context = RequestContext(request, {'signup_form': + SignupForm(request.POST)}) + self.assertFormError(response, 'signup_form', 'password_verify', + "Passwords don't match") def test_wrong_activaltion_link_raises_invalid_url(self): request = set_request(uri='/activate/invalidurl', messages=True) @@ -204,17 +244,22 @@ class SignupunitTestsNoLDAP(OkupyTestCase): self.assertMessage(response, 'Invalid URL', 40) def test_no_ldap_connection_raises_error_in_signup(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertMessage(response, "Can't contact LDAP server", 40) def test_no_ldap_connection_sends_notification_mail_in_signup(self): - request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, messages=True) + request = set_request(uri='/signup', post=vars.SIGNUP_TESTUSER, + messages=True) response = signup(request) response.context = RequestContext(request) self.assertEqual(len(mail.outbox), 1) - self.assertEqual(mail.outbox[0].subject, '%sERROR: {\'desc\': "Can\'t contact LDAP server"}' % settings.EMAIL_SUBJECT_PREFIX) + self.assertEqual( + mail.outbox[0].subject, + '%sERROR: {\'desc\': "Can\'t contact LDAP server"}' % + settings.EMAIL_SUBJECT_PREFIX) def test_no_ldap_connection_raises_error_in_activation(self): vars.QUEUEDUSER.save() @@ -231,4 +276,7 @@ class SignupunitTestsNoLDAP(OkupyTestCase): response = activate(request, vars.QUEUEDUSER.encrypted_id) response.context = RequestContext(request) self.assertEqual(len(mail.outbox), 1) - self.assertEqual(mail.outbox[0].subject, '%sERROR: {\'desc\': "Can\'t contact LDAP server"}' % settings.EMAIL_SUBJECT_PREFIX) + self.assertEqual( + mail.outbox[0].subject, + '%sERROR: {\'desc\': "Can\'t contact LDAP server"}' % + settings.EMAIL_SUBJECT_PREFIX) diff --git a/okupy/tests/unit/test_ssh.py b/okupy/tests/unit/test_ssh.py index 915be6a..cc4c029 100644 --- a/okupy/tests/unit/test_ssh.py +++ b/okupy/tests/unit/test_ssh.py @@ -6,12 +6,11 @@ from django.test.utils import override_settings import base64 import socket - import paramiko -from ..vars import TEST_SSH_KEY_FOR_NO_USER -from ...common.ssh import ssh_handler, SSHServer -from ...common.exceptions import OkupyError +from okupy import OkupyError +from okupy.common.ssh import ssh_handler, SSHServer +from okupy.tests.vars import TEST_SSH_KEY_FOR_NO_USER @override_settings(SSH_HANDLERS={}) @@ -104,8 +103,8 @@ class SSHUnitTests(TestCase): def onearg(key): raise TypeError - self.assertRaises(TypeError, - self._server.check_auth_publickey, 'onearg', self._key) + self.assertRaises( + TypeError, self._server.check_auth_publickey, 'onearg', self._key) def test_result_caching_works(self): class Cache(object): @@ -120,6 +119,7 @@ class SSHUnitTests(TestCase): return None cache = Cache() + @ssh_handler def cached(key): return cache(key) @@ -170,6 +170,7 @@ class SSHUnitTests(TestCase): return None cache = Cache() + @ssh_handler def cached(key): return cache(key) |