Beispiel #1
0
    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)
Beispiel #2
0
    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))
Beispiel #3
0
    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)
Beispiel #4
0
    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))
Beispiel #5
0
 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)
Beispiel #6
0
    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))
Beispiel #7
0
 def test_equal(self):
     a = datastore.DatastorePath('ds_name', 'a')
     b = datastore.DatastorePath('ds_name', 'a')
     self.assertEqual(a, b)