Пример #1
0
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"))
Пример #2
0
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"))
Пример #3
0
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)
Пример #4
0
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)