class TestReadingMar(TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() self.marfile = MarFile(TEST_MAR) def tearDown(self): shutil.rmtree(self.tmpdir) def test_extract(self): m = self.marfile.members[0] self.marfile.extract(m, self.tmpdir) fn = os.path.join(self.tmpdir, m.name) # Check that the size matches what's in the manifest self.assertEquals(os.path.getsize(fn), m.size) # Check that the contents match data = open(fn, 'rb').read() h = sha1sum(data) self.assertEquals("6a7890e740f1e18a425b51fefbde2f6b86f91a12", h) def test_extractall(self): self.marfile.extractall(self.tmpdir) all_files = [] for root, dirs, files in os.walk(self.tmpdir): for f in files: all_files.append(os.path.join(root, f)) for member in self.marfile.members: self.assertTrue(os.path.join(self.tmpdir, member.name) in all_files)
def verify_signature(mar, signature): log.info("Checking %s signature", mar) m = MarFile(mar, signature_versions=[(1, signature)]) m.verify_signatures()
def test_verify_fo(self): """Check that our test mar fileobject is signed correctly""" marfile = MarFile(name=TEST_MAR, fileobj=open(TEST_MAR, "rb"), signature_versions=[(1, TEST_KEY)]) marfile.verify_signatures()
def test_verify(self): """Check that our test mar is signed correctly""" marfile = MarFile(TEST_MAR, signature_versions=[(1, TEST_KEY)]) marfile.verify_signatures()
def setUp(self): self.tmpdir = tempfile.mkdtemp() self.marfile = MarFile(TEST_MAR)