From 9a253808383e1a2777c3c05a25be88ed25c51a13 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 21 Jan 2010 16:41:30 +1300 Subject: [PATCH] pyxattr: Simplify tests. --- source4/scripting/python/samba/tests/xattr.py | 224 +++++++++++--------------- 1 file changed, 97 insertions(+), 127 deletions(-) rewrite source4/scripting/python/samba/tests/xattr.py (65%) diff --git a/source4/scripting/python/samba/tests/xattr.py b/source4/scripting/python/samba/tests/xattr.py dissimilarity index 65% index fcc2a3a2e42..15f2566ff16 100644 --- a/source4/scripting/python/samba/tests/xattr.py +++ b/source4/scripting/python/samba/tests/xattr.py @@ -1,127 +1,97 @@ -#!/usr/bin/python - -# Unix SMB/CIFS implementation. Tests for xattr manipulation -# Copyright (C) Matthieu Patou 2009 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -import samba.xattr_native, samba.xattr_tdb -from samba.dcerpc import xattr -from samba.ndr import ndr_pack, ndr_unpack -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_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_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_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) - os.unlink(os.path.join(path,"eadb.tdb")) - - +#!/usr/bin/python + +# Unix SMB/CIFS implementation. Tests for xattr manipulation +# Copyright (C) Matthieu Patou 2009 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import samba.xattr_native, samba.xattr_tdb +from samba.dcerpc import xattr +from samba.ndr import ndr_pack, ndr_unpack +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=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 = 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=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(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_tdb_not_open(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") + 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=os.environ['SELFTEST_PREFIX'] + 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(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) + os.unlink(os.path.join(path,"eadb.tdb")) -- 2.11.4.GIT