コード例 #1
0
    def test_only_prereleases(self, monkeypatch, db_request):
        project = ProjectFactory.create()

        ReleaseFactory.create(project=project, version="1.0.dev0")
        ReleaseFactory.create(project=project, version="2.0.dev0")

        release = ReleaseFactory.create(project=project, version="3.0.dev0")

        response = pretend.stub()
        json_release = pretend.call_recorder(lambda ctx, request: response)
        monkeypatch.setattr(json, "json_release", json_release)

        resp = json.json_project(project, db_request)

        assert resp is response
        assert json_release.calls == [pretend.call(release, db_request)]
コード例 #2
0
ファイル: test_json.py プロジェクト: pypa/warehouse
    def test_calls_release_detail(self, monkeypatch, db_request):
        project = ProjectFactory.create()

        ReleaseFactory.create(project=project, version="1.0")
        ReleaseFactory.create(project=project, version="2.0")

        release = ReleaseFactory.create(project=project, version="3.0")

        response = pretend.stub()
        json_release = pretend.call_recorder(lambda ctx, request: response)
        monkeypatch.setattr(json, "json_release", json_release)

        resp = json.json_project(project, db_request)

        assert resp is response
        assert json_release.calls == [pretend.call(release, db_request)]
コード例 #3
0
ファイル: test_json.py プロジェクト: pypa/warehouse
    def test_normalizing_redirects(self, db_request):
        project = ProjectFactory.create()

        name = project.name.lower()
        if name == project.name:
            name = project.name.upper()

        db_request.matchdict = {"name": name}
        db_request.current_route_path = pretend.call_recorder(
            lambda name: "/project/the-redirect/"
        )

        resp = json.json_project(project, db_request)

        assert isinstance(resp, HTTPMovedPermanently)
        assert resp.headers["Location"] == "/project/the-redirect/"
        _assert_has_cors_headers(resp.headers)
        assert db_request.current_route_path.calls == [pretend.call(name=project.name)]
コード例 #4
0
    def test_normalizing_redirects(self, db_request):
        project = ProjectFactory.create()

        name = project.name.lower()
        if name == project.name:
            name = project.name.upper()

        db_request.matchdict = {"name": name}
        db_request.current_route_path = pretend.call_recorder(
            lambda name: "/project/the-redirect/")

        resp = json.json_project(project, db_request)

        assert isinstance(resp, HTTPMovedPermanently)
        assert resp.headers["Location"] == "/project/the-redirect/"
        assert db_request.current_route_path.calls == [
            pretend.call(name=project.name),
        ]
コード例 #5
0
ファイル: test_json.py プロジェクト: merwok-forks/warehouse
    def test_latest_release_yanked(self, monkeypatch, db_request):
        """
        If the latest version is yanked, the endpoint should fall back on the
        latest non-prerelease version that is not yanked, if one is available.
        """

        project = ProjectFactory.create()

        ReleaseFactory.create(project=project, version="1.0")
        ReleaseFactory.create(project=project, version="3.0", yanked=True)
        ReleaseFactory.create(project=project, version="3.0.dev0")

        release = ReleaseFactory.create(project=project, version="2.0")

        response = pretend.stub()
        json_release = pretend.call_recorder(lambda ctx, request: response)
        monkeypatch.setattr(json, "json_release", json_release)

        resp = json.json_project(project, db_request)

        assert resp is response
        assert json_release.calls == [pretend.call(release, db_request)]
コード例 #6
0
ファイル: test_json.py プロジェクト: merwok-forks/warehouse
    def test_all_releases_yanked(self, monkeypatch, db_request):
        """
        If all releases are yanked, the endpoint should return the same release as
        if none of the releases are yanked.
        """

        project = ProjectFactory.create()

        ReleaseFactory.create(project=project, version="1.0", yanked=True)
        ReleaseFactory.create(project=project, version="2.0", yanked=True)
        ReleaseFactory.create(project=project, version="4.0.dev0", yanked=True)

        release = ReleaseFactory.create(project=project, version="3.0", yanked=True)

        response = pretend.stub()
        json_release = pretend.call_recorder(lambda ctx, request: response)
        monkeypatch.setattr(json, "json_release", json_release)

        resp = json.json_project(project, db_request)

        assert resp is response
        assert json_release.calls == [pretend.call(release, db_request)]
コード例 #7
0
 def test_missing_release(self, db_request):
     project = ProjectFactory.create()
     resp = json.json_project(project, db_request)
     assert isinstance(resp, HTTPNotFound)
     _assert_has_cors_headers(resp.headers)
コード例 #8
0
ファイル: test_json.py プロジェクト: pypa/warehouse
 def test_missing_release(self, db_request):
     project = ProjectFactory.create()
     resp = json.json_project(project, db_request)
     assert isinstance(resp, HTTPNotFound)
     _assert_has_cors_headers(resp.headers)