Esempio n. 1
0
  def testAddingDirectoriesForFileManually(self):
    with tar_writer.TarFileWriter(self.tempfile) as f:
      f.add_file("d", tarfile.DIRTYPE)
      f.add_file("d/f")

      f.add_file("a", tarfile.DIRTYPE)
      f.add_file("a/b", tarfile.DIRTYPE)
      f.add_file("a/b", tarfile.DIRTYPE)
      f.add_file("a/b/", tarfile.DIRTYPE)
      f.add_file("a/b/c/f")

      f.add_file("x/y/f")
      f.add_file("x", tarfile.DIRTYPE)
    content = [
        {"name": "d", "mode": 0o755},
        {"name": "d/f"},
        {"name": "a", "mode": 0o755},
        {"name": "a/b", "mode": 0o755},
        {"name": "a/b/c", "mode": 0o755},
        {"name": "a/b/c/f"},
        {"name": "x", "mode": 0o755},
        {"name": "x/y", "mode": 0o755},
        {"name": "x/y/f"},
    ]
    self.assertTarFileContent(self.tempfile, content)
Esempio n. 2
0
 def __enter__(self):
     self.tarfile = tar_writer.TarFileWriter(
         self.output,
         self.compression,
         self.compressor,
         default_mtime=self.default_mtime)
     return self
Esempio n. 3
0
 def testPreserveTarMtimesFalse(self):
   with tar_writer.TarFileWriter(self.tempfile, preserve_tar_mtimes=False) as f:
     input_tar_path = self.data_files.Rlocation(
         "rules_pkg/tests/testdata/tar_test.tar")
     f.add_tar(input_tar_path)
     for output_file in f.tar:
       self.assertEqual(output_file.mtime, 0)
Esempio n. 4
0
 def testAddingDirectoriesForFile(self):
   with tar_writer.TarFileWriter(self.tempfile) as f:
     f.add_file("d/f")
   content = [
       {"name": "d", "mode": 0o755},
       {"name": "d/f"},
   ]
   self.assertTarFileContent(self.tempfile, content)
Esempio n. 5
0
 def assertSimpleFileContent(self, names):
   with tar_writer.TarFileWriter(self.tempfile) as f:
     for n in names:
       f.add_file(n, content=n)
   # pylint: disable=g-complex-comprehension
   content = ([{"name": n,
                "size": len(n.encode("utf-8")),
                "data": n.encode("utf-8")}
               for n in names])
   self.assertTarFileContent(self.tempfile, content)
Esempio n. 6
0
 def testPreserveTarMtimesTrueByDefault(self):
   with tar_writer.TarFileWriter(self.tempfile) as f:
     input_tar_path = self.data_files.Rlocation(
         "rules_pkg/tests/testdata/tar_test.tar")
     f.add_tar(input_tar_path)
     input_tar = tarfile.open(input_tar_path, "r")
     for file_name in f.members:
       input_file = input_tar.getmember(file_name)
       output_file = f.tar.getmember(file_name)
       self.assertEqual(input_file.mtime, output_file.mtime)
Esempio n. 7
0
 def testMergeTarRelocated(self):
   content = [
       {"name": "foo", "mode": 0o755},
       {"name": "foo/a", "data": b"a"},
       {"name": "foo/ab", "data": b"ab"},
       ]
   with tar_writer.TarFileWriter(self.tempfile) as f:
     datafile = self.data_files.Rlocation(
         "rules_pkg/tests/testdata/tar_test.tar")
     f.add_tar(datafile, name_filter=lambda n: n != "./b", prefix="foo")
   self.assertTarFileContent(self.tempfile, content)
Esempio n. 8
0
 def testMergeTar(self):
   content = [
       {"name": "./a", "data": b"a"},
       {"name": "./ab", "data": b"ab"},
   ]
   for ext in [("." + comp if comp else "") for comp in tar_writer.COMPRESSIONS]:
     with tar_writer.TarFileWriter(self.tempfile) as f:
       datafile = self.data_files.Rlocation(
           "rules_pkg/tests/testdata/tar_test.tar" + ext)
       f.add_tar(datafile, name_filter=lambda n: n != "./b")
     self.assertTarFileContent(self.tempfile, content)
Esempio n. 9
0
 def testDottedFiles(self):
   with tar_writer.TarFileWriter(self.tempfile) as f:
     f.add_file("a")
     f.add_file("/b")
     f.add_file("./c")
     f.add_file("./.d")
     f.add_file("..e")
     f.add_file(".f")
   content = [
       {"name": "a"},
       {"name": "/b"},
       {"name": "./c"},
       {"name": "./.d"},
       {"name": "..e"},
       {"name": ".f"}
   ]
   self.assertTarFileContent(self.tempfile, content)
Esempio n. 10
0
 def testEmptyTarFile(self):
   with tar_writer.TarFileWriter(self.tempfile):
     pass
   self.assertTarFileContent(self.tempfile, [])
Esempio n. 11
0
 def testPortableMtime(self):
   with tar_writer.TarFileWriter(self.tempfile, default_mtime="portable") as f:
     self.assertEqual(f.default_mtime, 946684800)
Esempio n. 12
0
 def testDefaultMtimeProvided(self):
   with tar_writer.TarFileWriter(self.tempfile, default_mtime=1234) as f:
     self.assertEqual(f.default_mtime, 1234)
Esempio n. 13
0
 def testDefaultMtimeNotProvided(self):
   with tar_writer.TarFileWriter(self.tempfile) as f:
     self.assertEqual(f.default_mtime, 0)