def wrapper_is_compat(l1, l2): # Make l1 and l2 Items i1 = Items(l1) i2 = Items(l2) remove('test.h5.tmp') with h5py.File('test.h5.tmp') as h5file: g = h5file.create_group('deleteme') i2.create_dataset(g, 10) i2.write(g) res = i1.is_appendable_to(g) remove('test.h5.tmp') return res
class TestIsAppendableTo: def setup(self): self.filename = 'test.h5' self.items = Items(generate.items(10)) self.h5file = h5py.File(self.filename) def teardown(self): remove(self.filename) remove('test.h5.tmp') def test_on_empty_group(self): group = self.h5file.create_group('group') assert_raise(self.items.is_appendable_to, group, "unable to open object", KeyError) # Create an empty items group self.items.create_dataset(group, 10) assert self.items.is_appendable_to(group) def test_same_items_twice(self): group = self.h5file.create_group('group') self.items.create_dataset(group, 10) self.items.write(group) assert_raise(self.items.is_appendable_to, group, 'more than one shared items') def test_simple(self): l1 = ['c', 'd', 'e'] l2 = ['a', 'b', 'c'] l3 = [c for c in 'def'] assert wrapper_is_compat(l1, l2) with pytest.raises(IOError): wrapper_is_compat(l2, l1) assert wrapper_is_compat(l2, l3) assert wrapper_is_compat(l3, l2) with pytest.raises(IOError): wrapper_is_compat(l1, l3) with pytest.raises(IOError): wrapper_is_compat(l3, l1) with pytest.raises(IOError): wrapper_is_compat(l1, l1)