Пример #1
0
 def test_write_metadata(self):
     path = "/tmp/foo/w"
     orig_d = { 'bar' : 'foo' }
     utils.write_metadata(path, orig_d)
     xkey = _xkey(path, utils.METADATA_KEY)
     assert len(_xattrs.keys()) == 1
     assert xkey in _xattrs
     assert orig_d == pickle.loads(_xattrs[xkey])
     assert _xattr_op_cnt['set'] == 1
Пример #2
0
 def test_write_metadata_err(self):
     path = "/tmp/foo/w"
     orig_d = { 'bar' : 'foo' }
     xkey = _xkey(path, utils.METADATA_KEY)
     _xattr_err[xkey] = errno.EOPNOTSUPP
     try:
         utils.write_metadata(path, orig_d)
     except IOError as e:
         assert e.errno == errno.EOPNOTSUPP
         assert len(_xattrs.keys()) == 0
         assert _xattr_op_cnt['set'] == 1
     else:
         self.fail("Expected an IOError exception on write")
Пример #3
0
 def test_write_metadata_multiple(self):
     # At 64 KB an xattr key/value pair, this should generate three keys.
     path = "/tmp/foo/w"
     orig_d = { 'bar' : 'x' * 150000 }
     utils.write_metadata(path, orig_d)
     assert len(_xattrs.keys()) == 3, "Expected 3 keys, found %d" % len(_xattrs.keys())
     payload = ''
     for i in range(0,3):
         xkey = _xkey(path, "%s%s" % (utils.METADATA_KEY, i or ''))
         assert xkey in _xattrs
         assert len(_xattrs[xkey]) <= utils.MAX_XATTR_SIZE
         payload += _xattrs[xkey]
     assert orig_d == pickle.loads(payload)
     assert _xattr_op_cnt['set'] == 3, "%r" % _xattr_op_cnt