Skip to content

Commit 15916f5

Browse files
Update Tests
1 parent 671a0bf commit 15916f5

1 file changed

Lines changed: 43 additions & 11 deletions

File tree

tests/test_zfslib.py

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
poolset.parse_zfs_r_output(zlist_data, properties=properties)
1515
pool_names = pool_names = [p.name for p in poolset if True]
1616

17-
1817
class PoolSetTests(unittest.TestCase):
1918

2019
def test_pool_names(self):
@@ -28,21 +27,54 @@ def test_zfs_list_parsing(self):
2827
if line.strip() == '': continue
2928
row = line.split('\t')
3029
name = row[0]
31-
obj = poolset.lookup(name)
30+
3231
if name.find('@') > -1:
33-
self.assertIsInstance(obj, zfs.Snapshot)
34-
if not obj.dataset is None:
35-
self.assertIsInstance(obj.dataset, zfs.Dataset)
36-
self.assertIsInstance(obj.pool, zfs.Pool)
37-
self.assertIsInstance(obj.parent, (zfs.Dataset, zfs.Pool))
32+
snap = poolset.lookup(name)
33+
self.assertIsInstance(snap, zfs.Snapshot)
34+
if not snap.dataset is None:
35+
self.assertIsInstance(snap.dataset, zfs.Dataset)
36+
self.assertIsInstance(snap.pool, zfs.Pool)
37+
self.assertIsInstance(snap.parent, (zfs.Dataset, zfs.Pool))
38+
if name.find('/') > -1:
39+
pool_name = name[:name.find('/')]
40+
ds_path = name[len(pool_name)+1:name.find('@')]
41+
else:
42+
pool_name = name[:name.find('@')]
43+
ds_path=None
44+
pool = poolset.get_pool(pool_name)
45+
self.assertIs(pool, snap.pool)
46+
47+
if ds_path is None: # Snapshot of pool
48+
self.assertIs(pool, snap.pool)
49+
else:
50+
ds1 = poolset.lookup('{}/{}'.format(pool_name, ds_path))
51+
ds2 = pool.lookup(ds_path)
52+
self.assertIs(ds1, ds2)
53+
self.assertIs(ds1, ds2)
54+
self.assertIs(snap.parent, ds1)
55+
3856

3957
elif name.find('/') > -1:
40-
self.assertIsInstance(obj, zfs.Dataset)
41-
self.assertIsInstance(obj.pool, zfs.Pool)
42-
self.assertIsInstance(obj.parent, (zfs.Dataset, zfs.Pool))
58+
ds = poolset.lookup(name)
59+
self.assertIsInstance(ds, zfs.Dataset)
60+
self.assertIsInstance(ds.pool, zfs.Pool)
61+
self.assertIsInstance(ds.parent, (zfs.Dataset, zfs.Pool))
62+
63+
pool_name = name[:name.find('/')]
64+
ds_path = name[len(pool_name)+1:]
65+
pool = poolset.get_pool(pool_name)
66+
self.assertIsInstance(pool, zfs.Pool)
67+
ds2 = pool.lookup(ds_path)
68+
ds3 = pool.get_dataset(ds_path)
69+
self.assertIs(ds, ds2)
70+
self.assertIs(ds2, ds3)
71+
self.assertIs(ds.pool, pool)
4372

4473
else:
45-
self.assertIsInstance(obj, zfs.Pool)
74+
pool = poolset.lookup(name)
75+
self.assertIsInstance(pool, zfs.Pool)
76+
self.assertIs(pool, poolset.get_pool(name))
77+
4678

4779

4880
def test_poolset_get_pool(self):

0 commit comments

Comments
 (0)