def generate_meta_yaml( self, *, build=False, actual_prime_dir=None, snapcraft_yaml_file_path=None ): if snapcraft_yaml_file_path is None: snapcraft_yaml_file_path = self.snapcraft_yaml_file_path os.makedirs("snap", exist_ok=True) with open(snapcraft_yaml_file_path, "w") as f: f.write(yaml_utils.dump(self.config_data)) self.project = Project(snapcraft_yaml_file_path=snapcraft_yaml_file_path) if actual_prime_dir is not None: self.project._prime_dir = actual_prime_dir self.meta_dir = os.path.join(self.project.prime_dir, "meta") self.hooks_dir = os.path.join(self.meta_dir, "hooks") self.snap_yaml = os.path.join(self.meta_dir, "snap.yaml") self.config = project_loader.load_config(project=self.project) if build: for part in self.config.parts.all_parts: part.pull() part.build() part.stage() part.prime() _snap_packaging.create_snap_packaging(self.config) self.assertTrue(os.path.exists(self.snap_yaml), "snap.yaml was not created") with open(self.snap_yaml) as f: return yaml_utils.load(f)
def generate_meta_yaml(self): _snap_packaging.create_snap_packaging(self.config_data, self.project_options, 'dummy') self.assertTrue(os.path.exists(self.snap_yaml), 'snap.yaml was not created') with open(self.snap_yaml) as f: return yaml.load(f)
def test_common_id(self): config = self.make_snapcraft_project(common_id="test.id.2") for part in config.parts.all_parts: part.makedirs() part.mark_pull_done() part.build() part.stage() part.prime() _snap_packaging.create_snap_packaging(config) self.assertNotIn("is not used in any appstream metafile.", self.fake_logger.output)
def test_create_gadget_meta_with_gadget_yaml(self): gadget_yaml = 'stub entry: stub value' _create_file('gadget.yaml', content=gadget_yaml) self.config_data['type'] = 'gadget' _snap_packaging.create_snap_packaging(self.config_data, self.project_options, 'dummy') expected_gadget = os.path.join(self.meta_dir, 'gadget.yaml') self.assertTrue(os.path.exists(expected_gadget)) self.assertThat(expected_gadget, FileContains(gadget_yaml))
def test_create_meta_with_declared_icon_and_setup_ran_twice_ok(self): gui_path = os.path.join("setup", "gui") os.makedirs(gui_path) icon_content = "setup icon" _create_file(os.path.join(gui_path, "icon.png"), content=icon_content) _create_file("my-icon.png") self.config_data["icon"] = "my-icon.png" self.generate_meta_yaml() # Running again should be good _snap_packaging.create_snap_packaging(self.config)
def test_common_id_mismatch(self): config = self.make_snapcraft_project(common_id="test.id.mismatch") for part in config.parts.all_parts: part.makedirs() part.mark_pull_done() part.build() part.stage() part.prime() _snap_packaging.create_snap_packaging(config) self.assertIn( "Common ID 'test.id.mismatch' specified in app 'test-app' is not used in any metadata file.", self.fake_logger.output.strip(), )
def test_create_meta_with_declared_icon_and_setup_ran_twice_ok(self): gui_path = os.path.join('setup', 'gui') os.makedirs(gui_path) icon_content = 'setup icon' _create_file(os.path.join(gui_path, 'icon.png'), content=icon_content) _create_file('my-icon.png') self.config_data['icon'] = 'my-icon.png' _snap_packaging.create_snap_packaging(self.config_data, self.project_options, 'dummy') # Running again should be good _snap_packaging.create_snap_packaging(self.config_data, self.project_options, 'dummy')
def test_create_gadget_meta_with_gadget_yaml(self): gadget_yaml = 'stub entry: stub value' _create_file('gadget.yaml', content=gadget_yaml) self.config_data['type'] = 'gadget' os.makedirs('snap', exist_ok=True) with open(os.path.join('snap', 'snapcraft.yaml'), 'w') as f: f.write(yaml.dump(self.config_data)) config = project_loader.load_config() _snap_packaging.create_snap_packaging(self.config_data, config.parts, self.project_options, 'dummy') expected_gadget = os.path.join(self.meta_dir, 'gadget.yaml') self.assertTrue(os.path.exists(expected_gadget)) self.assertThat(expected_gadget, FileContains(gadget_yaml))
def generate_meta_yaml(self, *, build=False): os.makedirs('snap', exist_ok=True) with open(os.path.join('snap', 'snapcraft.yaml'), 'w') as f: f.write(yaml.dump(self.config_data)) self.config = project_loader.load_config() if build: for part in self.config.parts.all_parts: part.pull() part.build() _snap_packaging.create_snap_packaging( self.config.data, self.config.parts, self.project_options, 'dummy') self.assertTrue( os.path.exists(self.snap_yaml), 'snap.yaml was not created') with open(self.snap_yaml) as f: return yaml.load(f)
def test_create_meta_with_declared_icon_and_setup_ran_twice_ok(self): gui_path = os.path.join('setup', 'gui') os.makedirs(gui_path) icon_content = 'setup icon' _create_file(os.path.join(gui_path, 'icon.png'), content=icon_content) _create_file('my-icon.png') self.config_data['icon'] = 'my-icon.png' os.makedirs('snap', exist_ok=True) with open(os.path.join('snap', 'snapcraft.yaml'), 'w') as f: f.write(yaml.dump(self.config_data)) config = project_loader.load_config() _snap_packaging.create_snap_packaging(self.config_data, config.parts, self.project_options, 'dummy') # Running again should be good _snap_packaging.create_snap_packaging(self.config_data, config.parts, self.project_options, 'dummy')
def _create_meta(self, step: steps.Step, part_names: Sequence[str]) -> None: if step == steps.PRIME and part_names == self.config.part_names: create_snap_packaging(self.config)