1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

s4-python: add more unit tests for xattr manipulation in python

This commit is contained in:
Matthieu Patou 2010-01-08 13:10:30 +03:00 committed by Andrew Bartlett
parent f0954c7372
commit 3789ba2654

View File

@ -17,34 +17,62 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from samba.xattr import wrap_getxattr, wrap_setxattr, is_xattr_supported import samba.xattr_native, samba.xattr_tdb
from samba.dcerpc import xattr from samba.dcerpc import xattr
from samba.ndr import ndr_pack, ndr_unpack from samba.ndr import ndr_pack, ndr_unpack
from unittest import TestCase from unittest import TestCase
import random import random
import os import os
import tdb
class XattrTests(TestCase): class XattrTests(TestCase):
def test_set_packeddata(self): def test_set_xattr_native(self):
if is_xattr_supported(): if samba.xattr_native.is_xattr_supported():
random.seed() random.seed()
path=os.environ['SELFTEST_PREFIX']
tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
ntacl=xattr.NTACL() ntacl=xattr.NTACL()
ntacl.version = 1 ntacl.version = 1
open(tempf, 'w').write("empty") open(tempf, 'w').write("empty")
wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl)) samba.xattr_native.wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl))
os.unlink(tempf) os.unlink(tempf)
def test_set_and_get(self): def test_set_and_get_native(self):
if is_xattr_supported(): if samba.xattr_native.is_xattr_supported():
random.seed() random.seed()
tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) path=os.environ['SELFTEST_PREFIX']
tempf=os.path.join(path,"pytests"+str(int(100000*random.random())))
reftxt="this is a test" reftxt="this is a test"
open(tempf, 'w').write("empty") open(tempf, 'w').write("empty")
wrap_setxattr(tempf,"user.unittests",reftxt) samba.xattr_native.wrap_setxattr(tempf,"user.unittests",reftxt)
text = wrap_getxattr(tempf,"user.unittests") text = samba.xattr_native.wrap_getxattr(tempf,"user.unittests")
self.assertEquals(text,reftxt) self.assertEquals(text,reftxt)
os.unlink(tempf) 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"))