fix "exclude" operations
[matthijs/upstream/django-ldapdb.git] / examples / tests.py
index 92d9473113fef53801a13afbb5b76a0e4416ee7f..bd47291b0fc55949a897973dcf49e8319625210c 100644 (file)
@@ -97,6 +97,19 @@ class GroupTestCase(BaseTestCase):
         qs = LdapGroup.objects.all()
         self.assertEquals(len(qs), 3)
 
+    def test_ldap_filter(self):
+        qs = LdapGroup.objects.filter(name='foogroup')
+        self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(cn=foogroup))')
+
+        qs = LdapGroup.objects.filter(name='foogroup', gid=1000)
+        self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(&(gidNumber=1000)(cn=foogroup)))')
+
+        qs = LdapGroup.objects.exclude(name='foogroup')
+        self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(!(cn=foogroup)))')
+        
+        qs = LdapGroup.objects.exclude(name='foogroup', gid=1000)
+        self.assertEquals(qs.query._ldap_filter(), '(&(objectClass=posixGroup)(!(&(gidNumber=1000)(cn=foogroup))))')
+
     def test_filter(self):
         qs = LdapGroup.objects.filter(name='foogroup')
         self.assertEquals(qs.count(), 1)
@@ -376,9 +389,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')