s4-tests: register new unit tests
[nivanova/samba.git] / source4 / scripting / python / samba / tests / xattr.py
index 9beff93933e4e78c743ac03680917663ac59d0ee..fcc2a3a2e4214507362b92408254c0c8614bf68c 100644 (file)
@@ -24,55 +24,104 @@ from unittest import TestCase
 import random
 import os
 import tdb
+import sys
 
 class XattrTests(TestCase):
 
     def test_set_xattr_native(self):
                if samba.xattr_native.is_xattr_supported():
                        random.seed()
+                       path=None
+                       try:
+                               path=os.environ['SELFTEST_PREFIX']
+                       except:
+                               self.assertTrue(path!=None, "SELFTEST_PREFIX env not set")
+                       if path:
+                               path=os.environ['SELFTEST_PREFIX']
+                               tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
+                               ntacl=xattr.NTACL()
+                               ntacl.version = 1
+                               open(tempf, 'w').write("empty")
+                               try:
+                                       samba.xattr_native.wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl))
+                               except IOError:
+                                       print >>sys.stderr, "WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED"
+                               os.unlink(tempf)
+               else:
+                       print >>sys.stderr, "WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED"
+
+
+    def test_set_and_get_native(self):
+               if samba.xattr_native.is_xattr_supported():
+                       random.seed()
+                       path=None
+                       try:
+                               path=os.environ['SELFTEST_PREFIX']
+                       except:
+                               self.assertTrue(path!=None, "SELFTEST_PREFIX env not set")
+                       if path:
+                               path=os.environ['SELFTEST_PREFIX']
+                               tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
+                               reftxt="this is a test"
+                               open(tempf, 'w').write("empty")
+                               try:
+                                       samba.xattr_native.wrap_setxattr(tempf,"user.unittests",reftxt)
+                                       text = samba.xattr_native.wrap_getxattr(tempf,"user.unittests")
+                                       self.assertEquals(text,reftxt)
+                               except IOError:
+                                       print >>sys.stderr,"WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED"
+                               os.unlink(tempf)
+               else:
+                       print >>sys.stderr,"WARNING: the filesystem where the tests are runned do not support XATTR, tests SKIPED"
+
+    def test_set_xattr_tdb(self):
+               path=None
+               try:
                        path=os.environ['SELFTEST_PREFIX']
+               except:
+                       self.assertTrue(path!=None, "SELFTEST_PREFIX env not set")
+               if path:
+                       eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
+                       random.seed()
                        tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
                        ntacl=xattr.NTACL()
                        ntacl.version = 1
                        open(tempf, 'w').write("empty")
-                       samba.xattr_native.wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl))
+                       samba.xattr_tdb.wrap_setxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests",ndr_pack(ntacl))
                        os.unlink(tempf)
+                       os.unlink(os.path.join(path,"eadb.tdb"))
 
-    def test_set_and_get_native(self):
-               if samba.xattr_native.is_xattr_supported():
+    def test_set_tdb_not_open(self):
+               path=None
+               try:
+                       path=os.environ['SELFTEST_PREFIX']
+               except:
+                       self.assertTrue(path!=None, "SELFTEST_PREFIX env not set")
+               if path:
+                       eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
                        random.seed()
+                       tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
+                       ntacl=xattr.NTACL()
+                       ntacl.version = 1
+                       open(tempf, 'w').write("empty")
+                       self.assertRaises(IOError,samba.xattr_tdb.wrap_setxattr,os.path.join(path,os.path.join("nonexistent","eadb.tdb")),tempf,"user.unittests",ndr_pack(ntacl))
+                       os.unlink(tempf)
+
+    def test_set_and_get_tdb(self):
+               path=None
+               try:
                        path=os.environ['SELFTEST_PREFIX']
+               except:
+                       self.assertTrue(path!=None, "SELFTEST_PREFIX env not set")
+               if path:
+                       random.seed()
                        tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
                        reftxt="this is a test"
                        open(tempf, 'w').write("empty")
-                       samba.xattr_native.wrap_setxattr(tempf,"user.unittests",reftxt)
-                       text = samba.xattr_native.wrap_getxattr(tempf,"user.unittests")
+                       samba.xattr_tdb.wrap_setxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests",reftxt)
+                       text = samba.xattr_tdb.wrap_getxattr(os.path.join(path,"eadb.tdb"),tempf,"user.unittests")
                        self.assertEquals(text,reftxt)
                        os.unlink(tempf)
-
-    def test_set_xattr_tdb(self):
-               path=os.environ['SELFTEST_PREFIX']
-               eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
-               random.seed()
-               tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
-               ntacl=xattr.NTACL()
-               ntacl.version = 1
-               open(tempf, 'w').write("empty")
-               samba.xattr_tdb.wrap_setxattr(eadb,tempf,"user.unittests",ndr_pack(ntacl))
-               os.unlink(tempf)
-               os.unlink(os.path.join(path,"eadb.tdb"))
-
-    def test_set_and_get_tdb(self):
-               path=os.environ['SELFTEST_PREFIX']
-               eadb=tdb.Tdb(os.path.join(path,"eadb.tdb"), 50000, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
-               random.seed()
-               tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
-               reftxt="this is a test"
-               open(tempf, 'w').write("empty")
-               samba.xattr_tdb.wrap_setxattr(eadb,tempf,"user.unittests",reftxt)
-               text = samba.xattr_tdb.wrap_getxattr(eadb,tempf,"user.unittests")
-               self.assertEquals(text,reftxt)
-               os.unlink(tempf)
-               os.unlink(os.path.join(path,"eadb.tdb"))
+                       os.unlink(os.path.join(path,"eadb.tdb"))