add some tests for different field types
[matthijs/upstream/django-ldapdb.git] / examples / tests.py
index a8e3a3e178fce413c719ddce9320bfa9b9e0da60..d0f179807f0a111ce411d4266d69a72ce9cbef9e 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+import ldap
+
 from django.test import TestCase
 
+from ldapdb import connection
 from examples.models import LdapUser, LdapGroup
 
-class GroupTestCase(TestCase):
+class BaseTestCase(TestCase):
+    def setUp(self):
+        cursor = connection._cursor()
+        for base in [LdapGroup.base_dn, LdapUser.base_dn]:
+            ou = base.split(',')[0].split('=')[1]
+            attrs = [('objectClass', ['top', 'organizationalUnit']), ('ou', [ou])]
+            try:
+                cursor.connection.add_s(base, attrs)
+            except ldap.ALREADY_EXISTS:
+                pass
+
+    def tearDown(self):
+        cursor = connection._cursor()
+        for base in [LdapGroup.base_dn, LdapUser.base_dn]:
+            results = cursor.connection.search_s(base, ldap.SCOPE_SUBTREE)
+            for dn, attrs in reversed(results):
+                cursor.connection.delete_s(dn)
+
+class GroupTestCase(BaseTestCase):
     def test_create(self):
         g = LdapGroup()
         g.name = "foogroup"
         g.gid = 1000
-        g.usernames = ['foouser']
+        g.usernames = ['foouser', 'baruser']
         g.save()
+
+    def test_get(self):
+        self.test_create()
+
+        g = LdapGroup.objects.get(name='foogroup')
+        self.assertEquals(g.name, 'foogroup')
+        self.assertEquals(g.gid, 1000)
+        self.assertEquals(g.usernames, ['foouser', 'baruser'])
  
-class UserTestCase(TestCase):
+class UserTestCase(BaseTestCase):
     def test_create(self):
         u = LdapUser()
         u.first_name = "Foo"
@@ -42,4 +71,17 @@ class UserTestCase(TestCase):
         u.uid = 1000
         u.username = "foouser"
         u.save()
+
+    def test_get(self):
+        self.test_create()
+
+        u = LdapUser.objects.get(username='foouser')
+        self.assertEquals(u.first_name, 'Foo') 
+        self.assertEquals(u.last_name, 'User') 
+        self.assertEquals(u.full_name, 'Foo User')
  
+        self.assertEquals(u.group, 1000)
+        self.assertEquals(u.home_directory, '/home/foouser')
+        self.assertEquals(u.uid, 1000)
+        self.assertEquals(u.username, 'foouser')
+