def test_read_with_assertion(context):
    context.write_full('foo', b'bar')
    rop = context.read_op_create()
    rop.assert_exists()
    rop.read()
    context.read_op_operate('foo', rop)
    assert b'bar' == rop.read_data()
def test_write_create_fail(context):
    context.write_full('foo', b'bar')

    wop = context.write_op_create()
    wop.create(True)
    wop.write_full(b'bar')
    with pytest.raises(rados.ObjectExists):
        context.write_op_operate('foo', wop)
def test_write_append(context):
    context.write_full('foo', b'bar')

    wop = context.write_op_create()
    wop.append(b'baz')
    context.write_op_operate('foo', wop)

    assert b'barbaz' == context.read('foo')
def test_read_attr_cmp_eq_fail(context):
    context.write_full('foo', b'Hello world!')
    context.set_xattr('foo', 'version', b'3.14')

    rop = context.read_op_create()
    rop.cmpxattr('version', rados.CmpXattrOp.eq, b'2.71')
    with pytest.raises(rados.Canceled):
        context.read_op_operate('foo', rop)
def test_read_attr_gt_fail(context):
    context.write_full('foo', b'Hello world!')
    context.set_xattr('foo', 'attr', b'b')

    rop = context.read_op_create()
    rop.cmpxattr('attr', rados.CmpXattrOp.gt, b'a')
    with pytest.raises(rados.Canceled):
        context.read_op_operate('foo', rop)
Exemple #6
0
def test_set_get(context):
    context.write_full('foo', b'bar')

    with pytest.raises(rados.NoData):
        context.get_xattr('foo', 'a')

    context.set_xattr('foo', 'a', b'b')
    assert b'b' == context.get_xattr('foo', 'a')
def test_write_assert(context):
    context.write_full('foo', b'bar')

    wop = context.write_op_create()
    wop.assert_exists()
    wop.write_full(b'baz')
    context.write_op_operate('foo', wop)

    assert b'baz' == context.read('foo')
def test_read_attr_cmp_eq(context):
    context.write_full('foo', b'Hello world!')
    context.set_xattr('foo', 'version', b'3.14')

    rop = context.read_op_create()
    rop.cmpxattr('version', rados.CmpXattrOp.eq, b'3.14')
    rop.stat()
    context.read_op_operate('foo', rop)
    assert 12 == rop.size()
def test_read_attr_gt(context):
    context.write_full('foo', b'Hello world!')
    context.set_xattr('foo', 'attr', b'a')

    rop = context.read_op_create()
    rop.cmpxattr('attr', rados.CmpXattrOp.gt, b'b')
    rop.stat()
    context.read_op_operate('foo', rop)
    assert 12 == rop.size()
Exemple #10
0
def test_write_attr_cmp_eq(context):
    context.write_full('foo', b'Hello world!')
    context.set_xattr('foo', 'version', b'3.14')

    wop = context.write_op_create()
    wop.cmpxattr('version', rados.CmpXattrOp.eq, b'3.14')
    wop.write_full(b'bar')
    context.write_op_operate('foo', wop)

    assert b'bar' == context.read('foo')
Exemple #11
0
def test_write_remove(context):
    context.write_full('foo', b'bar')

    wop = context.write_op_create()
    wop.assert_exists()
    wop.remove()
    context.write_op_operate('foo', wop)

    with pytest.raises(rados.ObjectNotFound):
        context.read('foo')
Exemple #12
0
def test_read_stat(context):
    context.write_full('foo', b'Hello world!')

    rop = context.read_op_create()
    rop.assert_exists()
    rop.stat()
    context.read_op_operate('foo', rop)
    assert 12 == rop.size()
    diff = datetime.now() - datetime.fromtimestamp(mktime(rop.mtime()))
    assert 5 > diff.total_seconds()
Exemple #13
0
def test_namespace(context):
    assert '' == context.get_namespace()
    context.set_namespace('test_namespace')
    assert 'test_namespace' == context.get_namespace()

    context.set_namespace('tn1')
    context.write_full("foo", b'1')
    assert b'1' == context.read('foo')

    context.set_namespace('tn2')
    context.write_full("foo", b'2')
    assert b'2' == context.read('foo')

    context.set_namespace('tn1')
    assert b'1' == context.read('foo')
Exemple #14
0
def test_read_completion(context):
    context.write_full('foo', b'bar')

    rop = context.read_op_create()
    rop.read()

    def complete_cb(completion):
        complete_cb.called = True

    complete_cb.called = False

    com = rados.Completion(context, oncomplete=complete_cb)
    context.aio_read_op_operate('foo', rop, com)

    com.wait_for_complete_and_cb()

    assert complete_cb.called
Exemple #15
0
def test_small_buffer_read(context):
    context.write_full('foo', b'The quick brown fox jumps over the lazy dog')
    assert b'The quick' == context.read('foo', length=9)
Exemple #16
0
def test_simple_read(context):
    context.write_full('foo', b'The quick brown fox jumps over the lazy dog')
    assert b'The quick brown fox jumps over the lazy dog' == context.read('foo')
Exemple #17
0
def test_offset_write(context):
    context.write_full('foo', b'The quick brown fox jumps over the lazy dog')
    context.write('foo', b'flies', offset=20)
    assert b'The quick brown fox flies over the lazy dog' == context.read('foo')
Exemple #18
0
def test_offset_and_len_read(context):
    context.write_full('foo', b'The quick brown fox jumps over the lazy dog')
    assert b'jumps' == context.read('foo', length=5, offset=20)
Exemple #19
0
def test_offset_read(context):
    context.write_full('foo', b'The quick brown fox jumps over the lazy dog')
    assert b'brown fox jumps over the lazy dog' == context.read('foo', offset=10)
Exemple #20
0
def test_simple_read(context):
    context.write_full('foo', b'bar')
    rop = context.read_op_create()
    rop.read()
    context.read_op_operate('foo', rop)
    assert b'bar' == rop.read_data()
Exemple #21
0
def test_stat(context):
    context.write_full('foo', b'Hello world!')
    (size, time)  = context.stat('foo')
    assert 12 == size
    diff = datetime.now() - datetime.fromtimestamp(mktime(time))
    assert 5 > diff.total_seconds()
Exemple #22
0
def test_remove(context):
    assert 0 == context.write_full("foo", b'bar')
    assert b'bar' == context.read('foo')
    context.remove('foo')
    with pytest.raises(rados.ObjectNotFound) as e:
        context.stat('foo')
Exemple #23
0
def test_simple_rw(context):
    assert 0 == context.write_full("foo", b'bar')
    assert b'bar' == context.read('foo')