Ejemplo n.º 1
0
def test_update_project_metadata_desktop_no_apps(project_yaml_data, new_dir):
    yaml_data = project_yaml_data(
        {
            "version": "1.0",
            "adopt-info": "part",
            "parts": {},
        }
    )
    project = Project(**yaml_data)
    metadata = ExtractedMetadata(
        common_id="test.id",
        desktop_file_paths=["metadata/foo.desktop", "metadata/bar.desktop"],
    )

    # create desktop file
    Path("metadata").mkdir()
    Path("metadata/foo.desktop").touch()
    Path("metadata/bar.desktop").touch()

    prj_vars = {"version": "", "grade": "stable"}

    update_project_metadata(
        project,
        project_vars=prj_vars,
        metadata_list=[metadata],
        assets_dir=new_dir / "assets",
        prime_dir=new_dir,
    )

    assert project.apps is None
Ejemplo n.º 2
0
def test_update_project_metadata_icon(
    project_yaml_data,
    project_entries,
    icon_exists,
    asset_exists,
    expected_icon,
    new_dir,
):
    yaml_data = project_yaml_data(
        {"version": "1.0", "adopt-info": "part", "parts": {}, **project_entries}
    )
    project = Project(**yaml_data)
    metadata = ExtractedMetadata(icon="metadata_icon.png")

    # create icon file
    if icon_exists:
        Path("metadata_icon.png").touch()

    # create icon file in assets dir
    if asset_exists:
        Path("assets/gui").mkdir(parents=True)
        Path("assets/gui/icon.svg").touch()

    prj_vars = {"version": "", "grade": "stable"}

    update_project_metadata(
        project,
        project_vars=prj_vars,
        metadata_list=[metadata],
        assets_dir=new_dir / "assets",
        prime_dir=new_dir,
    )

    assert project.icon == expected_icon
Ejemplo n.º 3
0
def test_update_project_metadata_fields(
    appstream_file, project_entries, expected, new_dir
):
    yaml_data = {
        "name": "my-project",
        "base": "core22",
        "confinement": "strict",
        "adopt-info": "part",
        "parts": {},
        **project_entries,
    }
    project = Project(**yaml_data)
    metadata = ExtractedMetadata(
        version="4.5.6",
        summary="metadata summary",
        description="metadata description",
        title="metadata title",
        grade="devel",
    )
    prj_vars = {"version": "", "grade": ""}

    update_project_metadata(
        project,
        project_vars=prj_vars,
        metadata_list=[metadata],
        assets_dir=new_dir,
        prime_dir=new_dir,
    )

    assert project.version == expected["version"]
    assert project.summary == expected["summary"]
    assert project.description == expected["description"]
    assert project.title == expected["title"]
    assert project.grade == expected["grade"]
Ejemplo n.º 4
0
def test_update_project_metadata_multiple_apps(project_yaml_data, new_dir):
    yaml_data = project_yaml_data(
        {
            "version": "1.0",
            "adopt-info": "part",
            "parts": {},
            "apps": {
                "foo": {
                    "command": "foo",
                    "common-id": "foo.id",
                },
                "bar": {
                    "command": "bar",
                    "common-id": "bar.id",
                },
            },
        }
    )
    project = Project(**yaml_data)
    metadata1 = ExtractedMetadata(
        common_id="foo.id",
        desktop_file_paths=["metadata/foo.desktop"],
    )
    metadata2 = ExtractedMetadata(
        common_id="bar.id",
        desktop_file_paths=["metadata/bar.desktop"],
    )

    # create desktop files
    Path("metadata").mkdir()
    Path("metadata/foo.desktop").touch()
    Path("metadata/bar.desktop").touch()

    prj_vars = {"version": "", "grade": "stable"}

    update_project_metadata(
        project,
        project_vars=prj_vars,
        metadata_list=[metadata1, metadata2],
        assets_dir=new_dir / "assets",
        prime_dir=new_dir,
    )

    assert project.apps is not None
    assert project.apps["foo"].desktop == "metadata/foo.desktop"
    assert project.apps["bar"].desktop == "metadata/bar.desktop"
Ejemplo n.º 5
0
def test_update_project_metadata_desktop(
    project_yaml_data,
    project_entries,
    desktop_exists,
    asset_exists,
    expected_desktop,
    new_dir,
):
    yaml_data = project_yaml_data(
        {"version": "1.0", "adopt-info": "part", "parts": {}, **project_entries}
    )
    project = Project(**yaml_data)
    metadata = ExtractedMetadata(
        common_id="test.id", desktop_file_paths=["metadata/foo.desktop"]
    )

    # create desktop file
    if desktop_exists:
        Path("metadata").mkdir()
        Path("metadata/foo.desktop").touch()

    # create desktop file in assets dir
    if asset_exists:
        Path("assets/gui").mkdir(parents=True)
        Path("assets/gui/foo.desktop").touch()

    prj_vars = {"version": "", "grade": "stable"}

    update_project_metadata(
        project,
        project_vars=prj_vars,
        metadata_list=[metadata],
        assets_dir=new_dir / "assets",
        prime_dir=new_dir,
    )

    assert project.apps is not None
    assert project.apps["foo"].desktop == expected_desktop