Example #1
0
 def test23(self):
     """test CpioArchive class"""
     fname = self.fixture_file('cpio_archive.cpio')
     archive = CpioArchive(filename=fname)
     filenames = ['bar', 'file1', 'foo']
     contents = ['File bar\nhas some\ncontent...\n',
                 'This is yet\nanother\nfile.\n',
                 'file foo\n']
     for archive_file in archive:
         self.assertEqual(archive_file.hdr.name, filenames.pop(0))
         self.assertEqual(archive_file.read(), contents.pop(0))
     self.assertEqual(archive.filenames(), ['bar', 'file1', 'foo'])
     self.assertEqual(len(archive.files()), 3)
     # read file bar again (no content because the whole file was already
     # read)
     archive_file = archive.find('bar')
     self.assertIsNotNone(archive_file)
     self.assertEqual(archive_file.read(), '')
     # try to find non existent file
     self.assertIsNone(archive.find('unknown'))
     self.assertEqual(archive.magic, '070701')
Example #2
0
 def test24(self):
     """test CpioArchive class unseekable input 1"""
     fname = self.fixture_file('cpio_archive.cpio')
     sio = StringIO(open(fname, 'r').read())
     sio.seek = None
     archive = CpioArchive(fobj=sio)
     filenames = ['bar', 'file1', 'foo']
     contents = ['File bar\nhas some\ncontent...\n',
                 'This is yet\nanother\nfile.\n',
                 'file foo\n']
     for archive_file in archive:
         self.assertEqual(archive_file.hdr.name, filenames.pop(0))
         self.assertEqual(archive_file.read(), contents.pop(0))
     self.assertEqual(archive.filenames(), ['bar', 'file1', 'foo'])
     self.assertEqual(len(archive.files()), 3)
     # read file bar again
     archive_file = archive.find('bar')
     self.assertIsNotNone(archive_file)
     # the empty str because the file was already completely read
     # => no seek is made and no IOError is raised
     self.assertEqual(archive_file.read(), '')
     # try to find non existent file
     self.assertIsNone(archive.find('unknown'))
     self.assertEqual(archive.magic, '070701')