def test_copies_boot_image_files_from_tarball(self): prefix = factory.make_name() kernel_content = factory.getRandomString() initrd_content = factory.getRandomString() img_content = factory.getRandomString() tarball = factory.make_tarball(self.make_dir(), { '%s-vmlinuz.gz' % prefix: kernel_content, '%s-initrd.gz' % prefix: initrd_content, '%s.img' % prefix: img_content, }) target_dir = self.make_dir() self.patch(ephemerals_script, 'call_uec2roottar') extract_image_tarball(tarball, target_dir) self.assertItemsEqual( ['linux', 'initrd.gz', 'disk.img'], listdir(target_dir)) self.assertThat( os.path.join(target_dir, 'linux'), FileContains(kernel_content)) self.assertThat( os.path.join(target_dir, 'initrd.gz'), FileContains(initrd_content)) self.assertThat( os.path.join(target_dir, 'disk.img'), FileContains(img_content))
def test_make_tarball_makes_up_content_if_None(self): filename = factory.make_name() tarball = factory.make_tarball(self.make_dir(), {filename: None}) dest = self.make_dir() subprocess.check_call(["tar", "-xzf", tarball, "-C", dest]) self.assertThat(os.path.join(dest, filename), FileExists()) with open(os.path.join(dest, filename), "rb") as unpacked_file: contents = unpacked_file.read() self.assertGreater(len(contents), 0)
def test_make_tarball_writes_tarball(self): filename = factory.make_name() contents = {filename: factory.make_string().encode("ascii")} tarball = factory.make_tarball(self.make_dir(), contents) dest = self.make_dir() subprocess.check_call(["tar", "-xzf", tarball, "-C", dest]) self.assertThat(os.path.join(dest, filename), FileContains(contents[filename]))
def test_make_tarball_writes_tarball(self): filename = factory.make_name() contents = {filename: factory.getRandomString()} tarball = factory.make_tarball(self.make_dir(), contents) dest = self.make_dir() subprocess.check_call(['tar', '-xzf', tarball, '-C', dest]) self.assertThat(os.path.join(dest, filename), FileContains(contents[filename]))
def test_make_tarball_makes_up_content_if_None(self): filename = factory.make_name() tarball = factory.make_tarball(self.make_dir(), {filename: None}) dest = self.make_dir() subprocess.check_call(['tar', '-xzf', tarball, '-C', dest]) self.assertThat(os.path.join(dest, filename), FileExists()) with open(os.path.join(dest, filename), 'rb') as unpacked_file: contents = unpacked_file.read() self.assertGreater(len(contents), 0)
def test_make_tarball_writes_tarball(self): filename = factory.make_name() contents = {filename: factory.getRandomString()} tarball = factory.make_tarball(self.make_dir(), contents) dest = self.make_dir() subprocess.check_call(['tar', '-xzf', tarball, '-C', dest]) self.assertThat( os.path.join(dest, filename), FileContains(contents[filename]))
def test_ignores_extraneous_files_in_tarball(self): prefix = factory.make_name() tarball = factory.make_tarball(self.make_dir(), { '%s-vmlinuz.gz' % prefix: None, '%s-initrd.gz' % prefix: None, '%s.img' % prefix: None, 'HELLO.TXT': None, }) target_dir = self.make_dir() self.patch(ephemerals_script, 'call_uec2roottar') extract_image_tarball(tarball, target_dir) self.assertItemsEqual( ['linux', 'initrd.gz', 'disk.img'], listdir(target_dir))
def test_ignores_extraneous_files_in_tarball(self): prefix = factory.make_name() tarball = factory.make_tarball( self.make_dir(), { '%s-vmlinuz.gz' % prefix: None, '%s-initrd.gz' % prefix: None, '%s.img' % prefix: None, 'HELLO.TXT': None, }) target_dir = self.make_dir() self.patch(ephemerals_script, 'call_uec2roottar') extract_image_tarball(tarball, target_dir) self.assertItemsEqual(['linux', 'initrd.gz', 'disk.img'], listdir(target_dir))
def test_copies_boot_image_files_from_tarball(self): prefix = factory.make_name() kernel_content = factory.getRandomString() initrd_content = factory.getRandomString() img_content = factory.getRandomString() tarball = factory.make_tarball( self.make_dir(), { '%s-vmlinuz.gz' % prefix: kernel_content, '%s-initrd.gz' % prefix: initrd_content, '%s.img' % prefix: img_content, }) target_dir = self.make_dir() self.patch(ephemerals_script, 'call_uec2roottar') extract_image_tarball(tarball, target_dir) self.assertItemsEqual(['linux', 'initrd.gz', 'disk.img'], listdir(target_dir)) self.assertThat(os.path.join(target_dir, 'linux'), FileContains(kernel_content)) self.assertThat(os.path.join(target_dir, 'initrd.gz'), FileContains(initrd_content)) self.assertThat(os.path.join(target_dir, 'disk.img'), FileContains(img_content))