X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fdjango-ldapdb.git;a=blobdiff_plain;f=examples%2Ftests.py;h=60f2abc8f26cb2141742df5ccc4a426eccaca506;hp=92d9473113fef53801a13afbb5b76a0e4416ee7f;hb=1cbff9629c9af335cc485b0c2a5ef60ec20e87e9;hpb=b43d7e60012ac13b5419b216925200d6d6092232 diff --git a/examples/tests.py b/examples/tests.py index 92d9473..60f2abc 100644 --- a/examples/tests.py +++ b/examples/tests.py @@ -32,6 +32,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # +from django.db.models import Q from django.test import TestCase import ldap @@ -97,6 +98,39 @@ class GroupTestCase(BaseTestCase): qs = LdapGroup.objects.all() self.assertEquals(len(qs), 3) + def test_ldap_filter(self): + # single filter + qs = LdapGroup.objects.filter(name='foogroup') + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(cn=foogroup))') + + qs = LdapGroup.objects.filter(Q(name='foogroup')) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(cn=foogroup))') + + # AND filter + qs = LdapGroup.objects.filter(gid=1000, name='foogroup') + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(&(gidNumber=1000)(cn=foogroup)))') + + qs = LdapGroup.objects.filter(Q(gid=1000) & Q(name='foogroup')) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(&(gidNumber=1000)(cn=foogroup)))') + + # OR filter + qs = LdapGroup.objects.filter(Q(gid=1000) | Q(name='foogroup')) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(|(gidNumber=1000)(cn=foogroup)))') + + # single exclusion + qs = LdapGroup.objects.exclude(name='foogroup') + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(!(cn=foogroup)))') + + qs = LdapGroup.objects.filter(~Q(name='foogroup')) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(!(cn=foogroup)))') + + # multiple exclusion + qs = LdapGroup.objects.exclude(name='foogroup', gid=1000) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(!(&(gidNumber=1000)(cn=foogroup))))') + + qs = LdapGroup.objects.filter(name='foogroup').exclude(gid=1000) + self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(&(cn=foogroup)(!(gidNumber=1000))))') + def test_filter(self): qs = LdapGroup.objects.filter(name='foogroup') self.assertEquals(qs.count(), 1) @@ -376,9 +410,17 @@ class AdminTestCase(BaseTestCase): self.assertContains(response, "foogroup") self.assertContains(response, "1000") + def test_group_add(self): + response = self.client.post('/admin/examples/ldapgroup/add/', {'gid': '1002', 'name': 'wizgroup'}) + self.assertRedirects(response, '/admin/examples/ldapgroup/') + qs = LdapGroup.objects.all() + self.assertEquals(qs.count(), 3) + def test_group_delete(self): response = self.client.post('/admin/examples/ldapgroup/foogroup/delete/', {'yes': 'post'}) self.assertRedirects(response, '/admin/examples/ldapgroup/') + qs = LdapGroup.objects.all() + self.assertEquals(qs.count(), 1) def test_group_search(self): response = self.client.get('/admin/examples/ldapgroup/?q=foo')