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
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))
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))
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))
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}"]