diff options
author | 2013-08-23 08:14:49 -0700 | |
---|---|---|
committer | 2013-08-23 08:14:49 -0700 | |
commit | cf4e6bfc7901e6e60d75c6a2af9770bbfd60b08c (patch) | |
tree | 0d56844fb0a5a499e43bce7da55d455313b090cb /okupy/tests | |
parent | Merge pull request #77 from mgorny/more-tests (diff) | |
parent | Add tests for the accounts lists (diff) | |
download | identity.gentoo.org-cf4e6bfc7901e6e60d75c6a2af9770bbfd60b08c.tar.gz identity.gentoo.org-cf4e6bfc7901e6e60d75c6a2af9770bbfd60b08c.tar.bz2 identity.gentoo.org-cf4e6bfc7901e6e60d75c6a2af9770bbfd60b08c.zip |
Merge pull request #75 from tampakrap/tests_v2
Replace ACLField with proper class methods and model manager Various fixes/additions in the test field
Diffstat (limited to 'okupy/tests')
-rw-r--r-- | okupy/tests/integration/test_lists.py | 42 | ||||
-rw-r--r-- | okupy/tests/integration/test_login.py | 5 | ||||
-rw-r--r-- | okupy/tests/unit/test_lists.py | 74 | ||||
-rw-r--r-- | okupy/tests/vars.py | 24 |
4 files changed, 144 insertions, 1 deletions
diff --git a/okupy/tests/integration/test_lists.py b/okupy/tests/integration/test_lists.py new file mode 100644 index 0000000..1c854c2 --- /dev/null +++ b/okupy/tests/integration/test_lists.py @@ -0,0 +1,42 @@ +# vim:fileencoding=utf8:et:ts=4:sts=4:sw=4:ft=python + +from django.conf import settings +from django.test import TestCase + +from django.test.client import Client + +from mockldap import MockLdap + +from .. import vars +from ...common.test_helpers import ldap_users, set_search_seed + +class ListsIntegrationTests(TestCase): + @classmethod + def setUpClass(cls): + cls.mockldap = MockLdap(vars.DIRECTORY) + + def setUp(self): + self.client = Client() + self.mockldap.start() + self.ldapobject = self.mockldap[settings.AUTH_LDAP_SERVER_URI] + + def tearDown(self): + self.mockldap.stop() + + def test_devlist_page_uses_correct_template(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='developer.group'))([ldap_users('alice'), ldap_users('jack')]) + response = self.client.get('/devlist/') + self.assertTemplateUsed(response, 'base.html') + self.assertTemplateUsed(response, 'devlist.html') + + def test_former_devlist_page_uses_correct_template(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='retired.group'))([ldap_users('john'), ldap_users('matt')]) + response = self.client.get('/former-devlist/') + self.assertTemplateUsed(response, 'base.html') + self.assertTemplateUsed(response, 'former-devlist.html') + + def test_foundation_members_page_uses_correct_template(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='foundation.group'))([ldap_users('bob'), ldap_users('jack')]) + response = self.client.get('/foundation-members/') + self.assertTemplateUsed(response, 'base.html') + self.assertTemplateUsed(response, 'foundation-members.html') diff --git a/okupy/tests/integration/test_login.py b/okupy/tests/integration/test_login.py index ab3d515..ef399ad 100644 --- a/okupy/tests/integration/test_login.py +++ b/okupy/tests/integration/test_login.py @@ -58,3 +58,8 @@ class LoginIntegrationTests(TestCase): response = self.client.get('/logout/') self.assertRedirects(response, '/login/', 302, 200) self.mockldap.start() + + def test_redirect_to_requested_page_after_login(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed('alice'))([ldap_users('alice')]) + response = self.client.post('/login/?next=/otp-setup/', vars.LOGIN_ALICE) + self.assertRedirects(response, '/otp-setup/', 302, 200) diff --git a/okupy/tests/unit/test_lists.py b/okupy/tests/unit/test_lists.py new file mode 100644 index 0000000..55a302b --- /dev/null +++ b/okupy/tests/unit/test_lists.py @@ -0,0 +1,74 @@ +# vim:fileencoding=utf8:et:ts=4:sts=4:sw=4:ft=python + +from django.conf import settings +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, set_search_seed, ldap_users + + +class ListsUnitTests(OkupyTestCase): + @classmethod + def setUpClass(cls): + cls.mockldap = MockLdap(vars.DIRECTORY) + + def setUp(self): + self.mockldap.start() + self.ldapobject = self.mockldap[settings.AUTH_LDAP_SERVER_URI] + + def tearDown(self): + self.mockldap.stop() + + def test_devlist_url_resolves_to_lists_view(self): + found = resolve('/devlist/') + self.assertEqual(found.func, lists) + + def test_devlist_page_returns_200(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='developer.group'))([ldap_users('alice'), ldap_users('jack')]) + request = set_request(uri='/devlist') + response = lists(request, 'devlist') + self.assertEqual(response.status_code, 200) + + def test_rendered_devlist_page(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='developer.group'))([ldap_users('alice'), ldap_users('jack')]) + 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>' + self.assertIn(page_part, response.content) + + def test_former_devlist_url_resolves_to_lists_view(self): + found = resolve('/former-devlist/') + self.assertEqual(found.func, lists) + + def test_former_devlist_page_returns_200(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='retired.group'))([ldap_users('john'), ldap_users('matt')]) + request = set_request(uri='/former-devlist') + response = lists(request, 'former-devlist') + self.assertEqual(response.status_code, 200) + + def test_rendered_former_devlist_page(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='retired.group'))([ldap_users('john'), ldap_users('matt')]) + 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>\n \n <tr>' + self.assertIn(page_part, response.content) + + def test_foundation_members_list_url_resolves_to_lists_view(self): + found = resolve('/foundation-members/') + self.assertEqual(found.func, lists) + + def test_foundation_members_page_returns_200(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='foundation.group'))([ldap_users('bob'), ldap_users('jack')]) + request = set_request(uri='/foundation-members') + response = lists(request, 'foundation-members') + self.assertEqual(response.status_code, 200) + + def test_rendered_foundation_members_page(self): + self.ldapobject.search_s.seed(settings.AUTH_LDAP_USER_BASE_DN, 2, set_search_seed(attr='gentooACL', value='foundation.group'))([ldap_users('bob'), ldap_users('jack')]) + 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>' + self.assertIn(page_part, response.content) diff --git a/okupy/tests/vars.py b/okupy/tests/vars.py index e559195..60a8ffb 100644 --- a/okupy/tests/vars.py +++ b/okupy/tests/vars.py @@ -27,7 +27,11 @@ DIRECTORY = { "gidNumber": ["1000"], "givenName": ["Alice"], "sn": ["Adams"], + "cn": ["Alice Adams"], "mail": ["alice@test.com"], + "gentooRoles": ["kde, qt, cluster"], + "gentooLocation": ["City1, Country1"], + "gentooACL": ["user.group", "developer.group"], }, "uid=bob,ou=people,o=test": { "uid": ["bob"], @@ -37,8 +41,26 @@ DIRECTORY = { "gidNumber": ["50"], "givenName": ["Robert"], "sn": ["Barker"], + "cn": ["Robert Barker"], "mail": ["bob@test.com"], - } + "gentoRoles": ["nothing"], + "gentooLocation": ["City2, Country2"], + "gentooACL": ["user.group", "foundation.group"] + }, + "uid=jack,ou=people,o=test": { + "uid": ["jack"], + "gentooACL": ["user.group", "developer.group", "foundation.group"], + }, + "uid=john,ou=people,o=test": { + "uid": ["john"], + "cn": ["John Smith"], + "gentooLocation": ["City3, Country3"], + "gentooRoles": ["kernel, security"], + "gentooACL": ["user.group", "retired.group"], + }, + "uid=matt,ou=people,o=test": { + "gentooACL": ["user.group", "retired.group"], + }, } # User objects |