예제 #1
0
def test_project_docs(db_session):
    projects = [ProjectFactory.create() for _ in range(2)]
    releases = {
        p: sorted(
            [ReleaseFactory.create(project=p) for _ in range(3)],
            key=lambda r: packaging.version.parse(r.version),
            reverse=True,
        )
        for p in projects
    }

    assert list(_project_docs(db_session)) == [{
        "_id": p.normalized_name,
        "_type": "project",
        "_source": {
            "created":
            p.created,
            "name":
            p.name,
            "normalized_name":
            p.normalized_name,
            "version": [r.version for r in prs],
            "latest_version":
            first(
                prs,
                key=lambda r: not r.is_prerelease,
            ).version,
        },
    } for p, prs in sorted(releases.items(), key=lambda x: x[0].name.lower())]
예제 #2
0
def test_project_docs(db_session):
    projects = [ProjectFactory.create() for _ in range(2)]
    releases = {
        p: sorted(
            [ReleaseFactory.create(project=p) for _ in range(3)],
            key=lambda r: packaging.version.parse(r.version),
            reverse=True,
        )
        for p in projects
    }

    assert list(_project_docs(db_session)) == [
        {
            "_id": p.normalized_name,
            "_type": "doc",
            "_source": {
                "created": p.created,
                "name": p.name,
                "normalized_name": p.normalized_name,
                "version": [r.version for r in prs],
                "latest_version": first(
                    prs,
                    key=lambda r: not r.is_prerelease,
                ).version,
            },
        }
        for p, prs in sorted(releases.items(), key=lambda x: x[0].name.lower())
    ]
예제 #3
0
def test_single_project_doc(db_session):
    projects = [ProjectFactory.create() for _ in range(2)]
    releases = {
        p: sorted(
            [ReleaseFactory.create(project=p) for _ in range(3)],
            key=lambda r: packaging.version.parse(r.version),
            reverse=True,
        )
        for p in projects
    }

    for p in projects:
        for r in releases[p]:
            r.files = [
                FileFactory.create(
                    release=r,
                    filename="{}-{}.tar.gz".format(p.name, r.version),
                    python_version="source",
                )
            ]

    assert list(_project_docs(db_session, project_name=projects[1].name)) == [
        {
            "_id": p.normalized_name,
            "_type": "doc",
            "_source": {
                "created":
                p.created,
                "name":
                p.name,
                "normalized_name":
                p.normalized_name,
                "version": [r.version for r in prs],
                "latest_version":
                first(prs, key=lambda r: not r.is_prerelease).version,
                "description":
                first(prs, key=lambda r: not r.is_prerelease).description.raw,
            },
        }
        for p, prs in sorted(releases.items(), key=lambda x: x[0].name.lower())
        if p.name == projects[1].name
    ]