class VirtualDirectoryTest(DirectoryTest, unittest.TestCase): def setUp(self): self.dir = VirtualDirectory() super(VirtualDirectoryTest, self).setUp() def addFile(self, name, mtime, content): self.dir.add(name, mtime, content) def addDirectory(self, name): self.dir.add_directory(name) def testGetDiskPath(self): self.assertEquals(None, self.dir.get_disk_path("foo/bar"))
class MappedDirectoryTest(DirectoryTest, unittest.TestCase): class MappingImpl(MappedDirectory.Mapping): def __init__(self, prefix, real_dir): super(MappedDirectoryTest.MappingImpl, self).__init__() self.__prefix = prefix self.__real_dir = real_dir def map(self, filename): return (self.__real_dir, os.path.join(self.__prefix, filename)) def setUp(self): self.virtual_dir = VirtualDirectory() self.dir = MappedDirectory( MappedDirectoryTest.MappingImpl("mapped_prefix", self.virtual_dir)) super(MappedDirectoryTest, self).setUp() def addFile(self, name, mtime, content): self.virtual_dir.add(os.path.join("mapped_prefix", name), mtime, content) def addDirectory(self, name): self.virtual_dir.add_directory(os.path.join("mapped_prefix", name)) def testGetDiskPath(self): self.assertEquals(None, self.dir.get_disk_path("foo/bar")) def testGlob(self): # Must test with disk directory... tempdir = tempfile.mkdtemp() try: disk_dir = DiskDirectory(tempdir) disk_dir.write("foo.qux", "") disk_dir.write("bar.qux", "") disk_dir.write("baz.qux", "") disk_dir.write("foo.corge", "") disk_dir.write("bar.corge", "") disk_dir.write("baz.corge", "") class PrefixRemovingMapping(MappedDirectory.Mapping): def __init__(self, prefix, real_dir): super(PrefixRemovingMapping, self).__init__() self.__prefix = prefix self.__real_dir = real_dir def map(self, filename): assert filename.startswith(self.__prefix) return (self.__real_dir, filename[len(self.__prefix):]) dir = MappedDirectory(PrefixRemovingMapping("a/", disk_dir)) self.assertEquals(set(["a/foo.qux"]), set(dir.expand_glob("a/foo.qux"))) self.assertEquals(set(["a/foo.qux", "a/bar.qux", "a/baz.qux"]), set(dir.expand_glob("a/*.qux"))) self.assertEquals( set(["a/foo.corge", "a/bar.corge", "a/baz.corge"]), set(dir.expand_glob("a/*.corge"))) self.assertEquals(set(["a/foo.qux", "a/foo.corge"]), set(dir.expand_glob("a/foo.*"))) self.assertEquals( set([ "a/foo.qux", "a/bar.qux", "a/baz.qux", "a/foo.corge", "a/bar.corge", "a/baz.corge" ]), set(dir.expand_glob("a/*"))) self.assertEquals(set([]), set(dir.expand_glob("a/grault"))) finally: shutil.rmtree(tempdir)
class MappedDirectoryTest(DirectoryTest, unittest.TestCase): class MappingImpl(MappedDirectory.Mapping): def __init__(self, prefix, real_dir): super(MappedDirectoryTest.MappingImpl, self).__init__() self.__prefix = prefix self.__real_dir = real_dir def map(self, filename): return (self.__real_dir, os.path.join(self.__prefix, filename)) def setUp(self): self.virtual_dir = VirtualDirectory() self.dir = MappedDirectory( MappedDirectoryTest.MappingImpl("mapped_prefix", self.virtual_dir)) super(MappedDirectoryTest, self).setUp() def addFile(self, name, mtime, content): self.virtual_dir.add(os.path.join("mapped_prefix", name), mtime, content) def addDirectory(self, name): self.virtual_dir.add_directory(os.path.join("mapped_prefix", name)) def testGetDiskPath(self): self.assertEquals(None, self.dir.get_disk_path("foo/bar")) def testGlob(self): # Must test with disk directory... tempdir = tempfile.mkdtemp() try: disk_dir = DiskDirectory(tempdir) disk_dir.write("foo.qux", "") disk_dir.write("bar.qux", "") disk_dir.write("baz.qux", "") disk_dir.write("foo.corge", "") disk_dir.write("bar.corge", "") disk_dir.write("baz.corge", "") class PrefixRemovingMapping(MappedDirectory.Mapping): def __init__(self, prefix, real_dir): super(PrefixRemovingMapping, self).__init__() self.__prefix = prefix self.__real_dir = real_dir def map(self, filename): assert filename.startswith(self.__prefix) return (self.__real_dir, filename[len(self.__prefix):]) dir = MappedDirectory(PrefixRemovingMapping("a/", disk_dir)) self.assertEquals(set(["a/foo.qux"]), set(dir.expand_glob("a/foo.qux"))) self.assertEquals(set(["a/foo.qux", "a/bar.qux", "a/baz.qux"]), set(dir.expand_glob("a/*.qux"))) self.assertEquals(set(["a/foo.corge", "a/bar.corge", "a/baz.corge"]), set(dir.expand_glob("a/*.corge"))) self.assertEquals(set(["a/foo.qux", "a/foo.corge"]), set(dir.expand_glob("a/foo.*"))) self.assertEquals(set(["a/foo.qux", "a/bar.qux", "a/baz.qux", "a/foo.corge", "a/bar.corge", "a/baz.corge"]), set(dir.expand_glob("a/*"))) self.assertEquals(set([]), set(dir.expand_glob("a/grault"))) finally: shutil.rmtree(tempdir)