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
def __init__(self): self.project = Project() self.project._snap_meta = Snap(name="project-name", base="core20", version="1.0", confinement="strict") self.parts = Parts()
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": "", }
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)
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
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
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
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
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)
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)
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
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)
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()
def test_get_provider_content_directories_no_plugs(self): snap = Snap() self.assertEqual(set([]), snap.get_provider_content_directories())
def test_empty(self): snap_dict = OrderedDict() snap = Snap() self.assertEqual(snap_dict, snap.to_dict())