Esempio n. 1
0
def get_project(base: str = "core20") -> Project:
    project = Project()
    project._snap_meta = Snap(name="project-name",
                              base=base,
                              version="1.0",
                              confinement="strict")
    return project
Esempio n. 2
0
 def __init__(self):
     self.project = Project()
     self.project._snap_meta = Snap(name="project-name",
                                    base="core20",
                                    version="1.0",
                                    confinement="strict")
     self.parts = Parts()
Esempio n. 3
0
def test_setup_environment_content_x86(tmp_work_path, monkeypatch,
                                       machine_platform, distro):
    snapcraft_project = Project()
    snapcraft_project._snap_meta = Snap(name="test-snap", base=distro[0])

    monkeypatch.setattr(platform, "machine", lambda: machine_platform[0])

    recorded_files = dict()

    @contextlib.contextmanager
    def fake_namedtempfile(*, suffix: str, **kwargs):
        # Usage hides the file basename in the suffix.
        tmp_path = os.path.join("tmpfile")
        with open(tmp_path, "wb") as f_write:
            yield f_write
        with open(tmp_path, "r") as f_read:
            recorded_files[suffix] = f_read.read()

    monkeypatch.setattr(tempfile, "NamedTemporaryFile", fake_namedtempfile)

    provider = ProviderImpl(project=snapcraft_project, echoer=Mock())
    provider._setup_environment()

    assert recorded_files == {
        ".bashrc":
        '#!/bin/bash\nexport PS1="\\h \\$(/bin/_snapcraft_prompt)# "\n',
        "00-snapcraft":
        'Apt::Install-Recommends "false";\n',
        "_snapcraft_prompt":
        dedent("""\
            #!/bin/bash
            if [[ "$PWD" =~ ^$HOME.* ]]; then
                path="${PWD/#$HOME/\\ ..}"
                if [[ "$path" == " .." ]]; then
                    ps1=""
                else
                    ps1="$path"
                fi
            else
                ps1="$PWD"
            fi
            echo -n $ps1
            """),
        "default.sources":
        dedent(f"""\
                Types: deb
                URIs: {machine_platform[1]["main"]}
                Suites: {distro[1]} {distro[1]}-updates
                Components: main multiverse restricted universe
            """),
        "default-security.sources":
        dedent(f"""\
                Types: deb
                URIs: {machine_platform[1]["security"]}
                Suites: {distro[1]}-security
                Components: main multiverse restricted universe
            """),
        "sources.list":
        "",
    }
Esempio n. 4
0
def test_unsupported_base_raises(flutter_options):
    project = Project()
    project._snap_meta = Snap(name="test-snap",
                              base="bad-base",
                              confinement="strict")

    with pytest.raises(errors.PluginBaseError):
        flutter.FlutterPlugin("test-part", flutter_options, project)
Esempio n. 5
0
def project(monkeypatch, tmp_work_path, request):
    """Return project variants for core and core18"""
    monkeypatch.setattr(Project, "parallel_build_count", 2)

    snapcraft_project = Project()
    snapcraft_project._snap_meta = Snap(
        name="test-snap", base=request.param, confinement="strict"
    )
    return snapcraft_project
Esempio n. 6
0
def project_core18(monkeypatch, tmp_work_path):
    """Return project for core18"""
    monkeypatch.setattr(Project, "parallel_build_count", 2)

    snapcraft_project = Project()
    snapcraft_project._snap_meta = Snap(
        name="test-snap", base="core18", confinement="strict"
    )
    return snapcraft_project
Esempio n. 7
0
    def test_use_invalid_openjdk_version_fails(self, base, version, expected_message):
        class Options:
            maven_options = []
            maven_targets = [""]
            maven_version = maven._DEFAULT_MAVEN_VERSION
            maven_version_checksum = maven._DEFAULT_MAVEN_CHECKSUM
            maven_openjdk_version = version

        project = Project()
        project._snap_meta = Snap(name="test-snap", base=base, confinement="strict")

        with pytest.raises(maven.UnsupportedJDKVersionError) as error:
            maven.MavenPlugin("test-part", Options(), project)
            assert str(error) == expected_message
Esempio n. 8
0
    def test_use_invalid_openjdk_version_fails(self, base, version, expected_message):
        class Options:
            gradle_options = []
            gradle_output_dir = "build/libs"
            gradle_version = gradle._DEFAULT_GRADLE_VERSION
            gradle_version_checksum = gradle._DEFAULT_GRADLE_CHECKSUM
            gradle_openjdk_version = version

        project = Project()
        project._snap_meta = Snap(name="test-snap", base=base, confinement="strict")

        with pytest.raises(gradle.UnsupportedJDKVersionError) as error:
            gradle.GradlePlugin("test-part", Options(), project)
            assert str(error) == expected_message
Esempio n. 9
0
def maven_plugin(tmp_work_path, request):
    """Return an instance of MavenPlugin setup with different bases and java versions."""
    java_version, base = request.param

    class Options:
        maven_options = []
        maven_targets = [""]
        maven_version = maven._DEFAULT_MAVEN_VERSION
        maven_version_checksum = maven._DEFAULT_MAVEN_CHECKSUM
        maven_openjdk_version = java_version

    project = Project()
    project._snap_meta = Snap(name="test-snap", base=base, confinement="strict")

    return maven.MavenPlugin("test-part", Options(), project)
Esempio n. 10
0
def gradle_plugin(tmp_path, request):
    """Return an instance of GradlePlugin setup with different bases and java versions."""
    java_version, base = request.param

    class Options:
        gradle_options = []
        gradle_output_dir = "build/libs"
        gradle_version = gradle._DEFAULT_GRADLE_VERSION
        gradle_version_checksum = gradle._DEFAULT_GRADLE_CHECKSUM
        gradle_openjdk_version = java_version

    os.chdir(tmp_path)
    project = Project()
    project._snap_meta = Snap(name="test-snap", base=base, confinement="strict")

    return gradle.GradlePlugin("test-part", Options(), project)
Esempio n. 11
0
    def test_use_invalid_openjdk_version_fails(self, base, version,
                                               expected_message):
        class Options:
            ant_properties = {}
            ant_build_targets = None
            ant_channel = None
            ant_version = "1.10.5"
            ant_version_checksum = "sha512/a7f1e0cec9d5ed1b3ab6cddbb9364f127305a997bbc88ecd734f9ef142ec0332375e01ace3592759bb5c3307cd9c1ac0a78a30053f304c7030ea459498e4ce4e"
            ant_openjdk_version = version

        project = Project()
        project._snap_meta = Snap(name="test-snap",
                                  base=base,
                                  confinement="strict")

        with pytest.raises(ant.UnsupportedJDKVersionError) as error:
            ant.AntPlugin("test-part", Options(), project)
            assert str(error) == expected_message
Esempio n. 12
0
def ant_plugin(tmp_work_path, request):
    """Return an instance of AntPlugin setup with different bases and java versions."""
    java_version, base = request.param

    class Options:
        ant_properties = {}
        ant_build_targets = None
        ant_channel = None
        ant_version = "1.10.5"
        ant_version_checksum = "sha512/a7f1e0cec9d5ed1b3ab6cddbb9364f127305a997bbc88ecd734f9ef142ec0332375e01ace3592759bb5c3307cd9c1ac0a78a30053f304c7030ea459498e4ce4e"
        ant_openjdk_version = java_version
        ant_buildfile = None

    project = Project()
    project._snap_meta = Snap(name="test-snap",
                              base=base,
                              confinement="strict")

    return ant.AntPlugin("test-part", Options(), project)
Esempio n. 13
0
    def __init__(
        self,
        *,
        target_deb_arch=None,
        debug=False,
        snapcraft_yaml_file_path=None,
        work_dir: str = None,
        is_managed_host: bool = False
    ) -> None:

        project_dir = os.getcwd()
        if is_managed_host:
            work_dir = os.path.expanduser("~")
        else:
            work_dir = project_dir

        super().__init__(target_deb_arch, debug, work_dir=work_dir)

        # This here check is mostly for backwards compatibility with the
        # rest of the code base.
        if snapcraft_yaml_file_path is None:
            self.info: ProjectInfo = None  # type: ignore

        else:
            self.info = ProjectInfo(snapcraft_yaml_file_path=snapcraft_yaml_file_path)

        self._is_managed_host = is_managed_host
        self._project_dir = project_dir
        self._work_dir = work_dir

        self.local_plugins_dir = self._get_local_plugins_dir()
        self._start_time = datetime.utcnow()

        # XXX: (Re)set by Config because it mangles source data.
        # Ideally everywhere wold converge to operating on snap_meta, and ww
        # would only need to initialize it once (properly).
        self._snap_meta = Snap()
Esempio n. 14
0
 def test_get_provider_content_directories_no_plugs(self):
     snap = Snap()
     self.assertEqual(set([]), snap.get_provider_content_directories())
Esempio n. 15
0
    def test_empty(self):
        snap_dict = OrderedDict()

        snap = Snap()

        self.assertEqual(snap_dict, snap.to_dict())