def test_add_dir_fo(self): marfile = os.path.join(self.tmpdir, 'test.mar') dirname = os.path.dirname(__file__) with MarFile(None, fileobj=open(marfile, "wb")) as m: m.add(dirname) # List out the files in dirname so we can compare my_files = [] for root, dirs, files in os.walk(dirname): for f in files: my_files.append(os.path.join(root, f)) with MarFile(None, fileobj=open(marfile, "rb")) as m: self.assertEquals(len(m.members), len(my_files)) for member in m.members: self.assertTrue(member.name in my_files) self.assertEquals(member.size, os.path.getsize(member.name)) self.assertEquals(member.flags, os.stat(member.name).st_mode & 0o777) extracted = m.extract(member, self.tmpdir) self.assertNotEquals(extracted, member.name) self.assertEquals( open(extracted, 'rb').read(), open(member.name, 'rb').read())
def test_add_fo(self): marfile = os.path.join(self.tmpdir, 'test.mar') with MarFile(None, fileobj=open(marfile, "wb")) as m: m.add(__file__) with MarFile(None, fileobj=open(marfile, "rb")) as m: self.assertEquals(len(m.members), 1) self.assertEquals(m.members[0].size, os.path.getsize(__file__)) self.assertEquals(m.members[0].flags, os.stat(__file__).st_mode & 0o777) extracted = m.extract(m.members[0], self.tmpdir) self.assertEquals( open(extracted, 'rb').read(), open(__file__, 'rb').read())
def test_additional_info_fo(self): marfile = os.path.join(self.tmpdir, 'test.mar') with MarFile(None, fileobj=open(marfile, "wb")) as m: info = AdditionalInfo.from_info({ 'MARChannelName': 'test1', 'ProductVersion': '123' }) m.additional_info.append(info) m.add(__file__) with MarFile(None, fileobj=open(marfile, "rb")) as m: self.assertEquals(len(m.additional_info), 1) self.assertEquals(m.additional_info[0].name, 'PRODUCT INFORMATION') self.assertEquals(m.additional_info[0].info, { 'MARChannelName': 'test1', 'ProductVersion': '123' })
def verify_signature(mar, signature): log.info("Checking %s signature", mar) m = MarFile(mar, signature_versions=[(1, signature)]) m.verify_signatures()
def test_extractall_fileobj(self): self.check_extractall(MarFile(None, fileobj=open(TEST_MAR, "rb")))
def test_extractall_name(self): self.check_extractall(MarFile(TEST_MAR))
def test_list_fo(self): self.check_list(MarFile(None, fileobj=open(TEST_MAR, 'rb')))
def test_list_name(self): self.check_list(MarFile(TEST_MAR))
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()