xattr.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import tempfile
  2. import os
  3. from darc.testsuite import DarcTestCase
  4. from darc.xattr import lsetxattr, llistxattr, lgetxattr, get_all, set, flistxattr, fgetxattr, fsetxattr
  5. class XattrTestCase(DarcTestCase):
  6. def setUp(self):
  7. self.tmpfile = tempfile.NamedTemporaryFile(dir=os.getcwd())
  8. self.symlink = os.path.join(os.path.dirname(self.tmpfile.name), 'symlink')
  9. os.symlink(self.tmpfile.name, self.symlink)
  10. def tearDown(self):
  11. os.unlink(self.symlink)
  12. def test_low_level(self):
  13. self.assert_equal(llistxattr(self.tmpfile.name), [])
  14. self.assert_equal(llistxattr(self.symlink), [])
  15. lsetxattr(self.tmpfile.name, b'foo', b'bar')
  16. self.assert_equal(llistxattr(self.tmpfile.name), [b'foo'])
  17. self.assert_equal(lgetxattr(self.tmpfile.name, b'foo'), b'bar')
  18. self.assert_equal(llistxattr(self.symlink), [])
  19. def test_low_level_fileno(self):
  20. self.assert_equal(flistxattr(self.tmpfile.fileno()), [])
  21. fsetxattr(self.tmpfile.fileno(), b'foo', b'bar')
  22. self.assert_equal(flistxattr(self.tmpfile.fileno()), [b'foo'])
  23. self.assert_equal(fgetxattr(self.tmpfile.fileno(), b'foo'), b'bar')
  24. def test_high_level(self):
  25. self.assert_equal(get_all(self.tmpfile.name), {})
  26. self.assert_equal(get_all(self.symlink), {})
  27. set(self.tmpfile.name, b'foo', b'bar')
  28. self.assert_equal(get_all(self.tmpfile.name), {b'foo': b'bar'})
  29. self.assert_equal(get_all(self.symlink), {})
  30. def test_high_level_fileno(self):
  31. self.assert_equal(get_all(self.tmpfile.fileno()), {})
  32. set(self.tmpfile.fileno(), b'foo', b'bar')
  33. self.assert_equal(get_all(self.tmpfile.fileno()), {b'foo': b'bar'})