示例#1
0
    def test(
        self,
        monkeypatch,
        host_arch,
        target_arch,
        properties,
        expected_amd64,
        expected_i386,
        expected_armhf,
    ):
        monkeypatch.setattr(platform, "machine", lambda: host_arch)
        monkeypatch.setattr(platform, "architecture", lambda: ("64bit", "ELF"))

        repo = mock.Mock()
        plugin = mock.Mock()
        plugin.properties = properties.copy()

        expected_arch = dict(
            expected_amd64=expected_amd64,
            expected_i386=expected_i386,
            expected_armhf=expected_armhf,
        )
        assert (PartGrammarProcessor(
            plugin=plugin,
            properties=plugin.properties,
            project=project.Project(target_deb_arch=target_arch),
            repo=repo,
        ).get_source() == expected_arch[f"expected_{target_arch}"])

        # Verify that the original properties haven't changed
        assert plugin.properties == properties
示例#2
0
    def test_build_snaps(self, platform_machine_mock,
                         platform_architecture_mock):
        platform_machine_mock.return_value = self.host_arch
        platform_architecture_mock.return_value = ("64bit", "ELF")

        repo = mock.Mock()

        class Plugin:
            build_snaps = self.snaps
            stage_snaps = self.snaps

        plugin = Plugin()
        expected = getattr(self, "expected_{}".format(self.target_arch))
        processor = PartGrammarProcessor(
            plugin=plugin,
            properties={
                "build-snaps": {"plugin-preferred"},
                "stage-snaps": "plugin-preferred",
            },
            project=project.Project(target_deb_arch=self.target_arch),
            repo=repo,
        )

        self.assertThat(processor.get_build_snaps(), Equals(expected))
        self.assertThat(processor.get_stage_snaps(), Equals(expected))
    def test_packages_plugin_no_attr(
        self,
        monkeypatch,
        host_arch,
        target_arch,
        packages,
        expected_amd64,
        expected_i386,
        expected_armhf,
    ):
        monkeypatch.setattr(platform, "machine", lambda: host_arch)
        monkeypatch.setattr(platform, "architecture", lambda: ("64bit", "ELF"))

        repo = mock.Mock()

        class Plugin:
            pass

        plugin = Plugin()
        processor = PartGrammarProcessor(
            plugin=plugin,
            properties={"build-packages": packages},
            project=project.Project(target_deb_arch=target_arch),
            repo=repo,
        )

        expected_arch = dict(
            expected_amd64=expected_amd64,
            expected_i386=expected_i386,
            expected_armhf=expected_armhf,
        )
        assert (processor.get_build_packages() ==
                expected_arch[f"expected_{target_arch}"])
 def test_string_grammar(self):
     repo = mock.Mock()
     plugin = mock.Mock()
     plugin.properties = self.properties.copy()
     self.assertThat(PartGrammarProcessor(
         plugin=plugin,
         properties=plugin.properties,
         project_options=snapcraft.ProjectOptions(
             target_deb_arch=self.target_arch),
         repo=repo).get_source(),
                     Equals(self.expected))
     # Verify that the original properties haven't changed
     self.assertThat(plugin.properties, Equals(self.properties))
示例#5
0
    def test_build_snaps(self, platform_machine_mock,
                         platform_architecture_mock):
        platform_machine_mock.return_value = self.host_arch
        platform_architecture_mock.return_value = ('64bit', 'ELF')

        repo = mock.Mock()
        plugin = mock.Mock()
        plugin.build_snaps = self.build_snaps
        expected = getattr(self, 'expected_{}'.format(self.target_arch))
        self.assertThat(
            PartGrammarProcessor(
                plugin=plugin,
                properties={},
                project=project.Project(target_deb_arch=self.target_arch),
                repo=repo).get_build_snaps(), Equals(expected))
    def test_string_grammar(self, platform_machine_mock,
                            platform_architecture_mock):
        platform_machine_mock.return_value = self.host_arch
        platform_architecture_mock.return_value = ('64bit', 'ELF')

        repo = mock.Mock()
        plugin = mock.Mock()
        plugin.properties = self.properties.copy()
        self.assertThat(
            PartGrammarProcessor(plugin=plugin,
                                 properties=plugin.properties,
                                 project_options=snapcraft.ProjectOptions(),
                                 repo=repo).get_source(),
            Equals(self.expected))
        # Verify that the original properties haven't changed
        self.assertThat(plugin.properties, Equals(self.properties))
示例#7
0
    def test_source(self, platform_machine_mock, platform_architecture_mock):
        platform_machine_mock.return_value = self.host_arch
        platform_architecture_mock.return_value = ('64bit', 'ELF')

        repo = mock.Mock()
        plugin = mock.Mock()
        plugin.properties = self.properties.copy()
        expected = getattr(self, 'expected_{}'.format(self.target_arch))
        self.assertThat(
            PartGrammarProcessor(
                plugin=plugin,
                properties=plugin.properties,
                project=project.Project(target_deb_arch=self.target_arch),
                repo=repo).get_source(), Equals(expected))
        # Verify that the original properties haven't changed
        self.assertThat(plugin.properties, Equals(self.properties))
    def test_packages(self, platform_machine_mock, platform_architecture_mock):
        platform_machine_mock.return_value = self.host_arch
        platform_architecture_mock.return_value = ("64bit", "ELF")

        repo = mock.Mock()
        plugin = mock.Mock()
        plugin.build_packages = self.packages
        plugin.stage_packages = self.packages
        expected = getattr(self, "expected_{}".format(self.target_arch))
        processor = PartGrammarProcessor(
            plugin=plugin,
            properties={},
            project=project.Project(target_deb_arch=self.target_arch),
            repo=repo,
        )
        self.assertThat(processor.get_build_packages(), Equals(expected))
        self.assertThat(processor.get_stage_packages(), Equals(expected))
示例#9
0
    def test_snaps(
        self,
        monkeypatch,
        host_arch,
        target_arch,
        snaps,
        expected_amd64,
        expected_i386,
        expected_armhf,
    ):
        monkeypatch.setattr(platform, "machine", lambda: host_arch)
        monkeypatch.setattr(platform, "architecture", lambda: ("64bit", "ELF"))
        monkeypatch.setattr(
            snapcraft_repo.snaps.SnapPackage,
            "is_valid_snap",
            lambda x: "invalid" not in x,
        )

        repo = mock.Mock()

        class Plugin:
            build_snaps = snaps
            stage_snaps = snaps

        plugin = Plugin()
        processor = PartGrammarProcessor(
            plugin=plugin,
            properties={
                "build-snaps": {"plugin-preferred"},
                "stage-snaps": "plugin-preferred",
            },
            project=project.Project(target_deb_arch=target_arch),
            repo=repo,
        )

        expected_arch = dict(
            expected_amd64=expected_amd64,
            expected_i386=expected_i386,
            expected_armhf=expected_armhf,
        )
        assert processor.get_build_snaps(
        ) == expected_arch[f"expected_{target_arch}"]
        assert processor.get_stage_snaps(
        ) == expected_arch[f"expected_{target_arch}"]