Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 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)
Пример #4
0
    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))
Пример #5
0
    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)
Пример #6
0
 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(),
     )
Пример #7
0
    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')
Пример #8
0
    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))
Пример #9
0
    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)
Пример #10
0
    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')
Пример #11
0
 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)