def test_join(self): p = datastore.DatastorePath('ds_name', 'a') ds_path = p.join('b') self.assertEqual('[ds_name] a/b', str(ds_path)) p = datastore.DatastorePath('ds_name', 'a') ds_path = p.join() bad_args = [[None], ['', None], ['a', None], ['a', None, 'b']] for arg in bad_args: self.assertRaises(ValueError, p.join, *arg)
def test_ds_path_no_subdir(self): args = [('dsname', ['', 'x.vmdk']), ('dsname', ['x.vmdk'])] canonical_p = datastore.DatastorePath('dsname', 'x.vmdk') self.assertEqual('[dsname] x.vmdk', str(canonical_p)) self.assertEqual('', canonical_p.dirname) self.assertEqual('x.vmdk', canonical_p.basename) self.assertEqual('x.vmdk', canonical_p.rel_path) for t in args: p = datastore.DatastorePath(t[0], *t[1]) self.assertEqual(str(canonical_p), str(p))
def test_ds_path_ds_only(self): args = [('dsname', []), ('dsname', ['']), ('dsname', ['', ''])] canonical_p = datastore.DatastorePath('dsname') self.assertEqual('[dsname]', str(canonical_p)) self.assertEqual('', canonical_p.rel_path) self.assertEqual('', canonical_p.basename) self.assertEqual('', canonical_p.dirname) for t in args: p = datastore.DatastorePath(t[0], *t[1]) self.assertEqual(str(canonical_p), str(p)) self.assertEqual(canonical_p.rel_path, p.rel_path)
def test_ds_path_equivalence(self): args = [('dsname', ['a/b/c/', 'x.vmdk']), ('dsname', ['a/', 'b/c/', 'x.vmdk']), ('dsname', ['a', 'b', 'c', 'x.vmdk']), ('dsname', ['a/b/c', 'x.vmdk'])] canonical_p = datastore.DatastorePath('dsname', 'a/b/c', 'x.vmdk') for t in args: p = datastore.DatastorePath(t[0], *t[1]) self.assertEqual(str(canonical_p), str(p)) self.assertEqual(canonical_p.datastore, p.datastore) self.assertEqual(canonical_p.rel_path, p.rel_path) self.assertEqual(str(canonical_p.parent), str(p.parent))
def test_ds_path(self): p = datastore.DatastorePath('dsname', 'a/b/c', 'file.iso') self.assertEqual('[dsname] a/b/c/file.iso', str(p)) self.assertEqual('a/b/c/file.iso', p.rel_path) self.assertEqual('a/b/c', p.parent.rel_path) self.assertEqual('[dsname] a/b/c', str(p.parent)) self.assertEqual('dsname', p.datastore) self.assertEqual('file.iso', p.basename) self.assertEqual('a/b/c', p.dirname)
def test_ds_path_non_equivalence(self): args = [ # leading slash ('dsname', ['/a', 'b', 'c', 'x.vmdk']), ('dsname', ['/a/b/c/', 'x.vmdk']), ('dsname', ['a/b/c', '/x.vmdk']), # leading space ('dsname', ['a/b/c/', ' x.vmdk']), ('dsname', ['a/', ' b/c/', 'x.vmdk']), ('dsname', [' a', 'b', 'c', 'x.vmdk']), # trailing space ('dsname', ['/a/b/c/', 'x.vmdk ']), ('dsname', ['a/b/c/ ', 'x.vmdk']) ] canonical_p = datastore.DatastorePath('dsname', 'a/b/c', 'x.vmdk') for t in args: p = datastore.DatastorePath(t[0], *t[1]) self.assertNotEqual(str(canonical_p), str(p))
def test_equal(self): a = datastore.DatastorePath('ds_name', 'a') b = datastore.DatastorePath('ds_name', 'a') self.assertEqual(a, b)