diff options
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/pyxattr_tdb.c | 7 | ||||
| -rw-r--r-- | source4/scripting/python/samba/tests/xattr.py | 50 | 
2 files changed, 53 insertions, 4 deletions
diff --git a/source4/scripting/python/pyxattr_tdb.c b/source4/scripting/python/pyxattr_tdb.c index 19b4f417a8..aa511fa5e7 100644 --- a/source4/scripting/python/pyxattr_tdb.c +++ b/source4/scripting/python/pyxattr_tdb.c @@ -33,12 +33,11 @@  static PyObject  *py_is_xattr_supported(PyObject *self)  { -/*#if !defined(HAVE_XATTR_SUPPORT) +#if !defined(HAVE_XATTR_SUPPORT)  	return Py_False;  #else  	return Py_True; -#endif*/ -	return Py_True; +#endif  }  static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)  { @@ -105,7 +104,7 @@ static PyMethodDef py_xattr_methods[] = {  		"wrap_setxattr(filename,attribute,value)\n"  		"Set the given attribute to the given value on the given file." },  	{ "is_xattr_supported", (PyCFunction)py_is_xattr_supported, METH_NOARGS, -		"Return true if xattr backed by tdb are supported on this system\n"}, +		"Return true if xattr are supported on this system\n"},  	{ NULL }  }; diff --git a/source4/scripting/python/samba/tests/xattr.py b/source4/scripting/python/samba/tests/xattr.py new file mode 100644 index 0000000000..f0e6f31515 --- /dev/null +++ b/source4/scripting/python/samba/tests/xattr.py @@ -0,0 +1,50 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. Tests for xattr manipulation +# Copyright (C) Matthieu Patou <mat@matws.net> 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 <http://www.gnu.org/licenses/>. +# + +from samba.xattr import wrap_getxattr, wrap_setxattr, is_xattr_supported +from samba.dcerpc import xattr +from samba.ndr import ndr_pack, ndr_unpack +from unittest import TestCase +import random +import os + +class XattrTests(TestCase): + +    def test_set_packeddata(self): +		if is_xattr_supported(): +			random.seed() + +			tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) +			ntacl=xattr.NTACL() +			ntacl.version = 1 +			open(tempf, 'w').write("empty") +			wrap_setxattr(tempf,"user.unittests",ndr_pack(ntacl)) +			os.unlink(tempf) + +    def test_set_and_get(self): +		if is_xattr_supported(): +			random.seed() +			tempf=os.path.join(os.environ("SELFTEST_PREFIX"),"pytests"+str(int(100000*random.random()))) +			reftxt="this is a test" +			open(tempf, 'w').write("empty") +			wrap_setxattr(tempf,"user.unittests",reftxt) +			text = wrap_getxattr(tempf,"user.unittests") +			self.assertEquals(text,reftxt) +			os.unlink(tempf) +  | 
