Example #1
0
def test_rss(app, monkeypatch):
    now = datetime.datetime.utcnow()

    get_recently_updated = pretend.call_recorder(lambda num=10: [
        dict(name='spam', version='1.0', summary='hai spam', created=now),
        dict(name='ham', version='2.0', summary='hai ham', created=now),
        dict(name='spam', version='2.0', summary='hai spam v2', created=now),
    ])

    app.db = pretend.stub(
        packaging=pretend.stub(
            get_recently_updated=get_recently_updated,
        )
    )
    app.config = pretend.stub(
        site={"url": "http://test.server/", "name": "PyPI"},
    )

    request = pretend.stub(
        url_adapter=Map(urls.urls).bind('test.server', '/'),
    )

    resp = pypi.rss(app, request)

    assert resp.response.context == {
        "description": "package updates",
        "site": {"name": "PyPI", "url": "http://test.server/"},
        "releases": [
            {
                "url": "http://test.server/project/spam/1.0/",
                "version": "1.0",
                "name": "spam",
                "summary": "hai spam",
                "created": now,
            },
            {
                "url": "http://test.server/project/ham/2.0/",
                "version": "2.0",
                "name": "ham",
                "summary": "hai ham",
                "created": now,
            },
            {
                "url": "http://test.server/project/spam/2.0/",
                "version": "2.0",
                "name": "spam",
                "summary": "hai spam v2",
                "created": now,
            }
        ],
    }
    assert get_recently_updated.calls == [pretend.call(num=40)]
Example #2
0
def test_rss(monkeypatch):
    get_recently_updated = pretend.call_recorder(lambda num=10: [
        dict(name='spam', version='1.0', summary='hai spam', created='now'),
        dict(name='ham', version='2.0', summary='hai ham', created='now'),
        dict(name='spam', version='2.0', summary='hai spam v2', created='now'),
    ])
    template = pretend.stub(
        render=pretend.call_recorder(lambda **ctx: "<xml>dummy</xml>"),
    )
    app = pretend.stub(
        db=pretend.stub(
            packaging=pretend.stub(
                get_recently_updated=get_recently_updated,
            )
        ),
        config=pretend.stub(
            cache=pretend.stub(browser=False, varnish=False),
            site={"url": "http://test.server/", "name": "PyPI"},
        ),
        templates=pretend.stub(
            get_template=pretend.call_recorder(lambda t: template),
        ),
    )
    request = pretend.stub(
        url_adapter=Map(urls.urls).bind('test.server', '/'),
    )

    resp = pypi.rss(app, request)

    assert get_recently_updated.calls == [pretend.call(num=40)]
    assert len(template.render.calls) == 1
    assert template.render.calls[0].kwargs['releases'] == [
        {
            'url': 'http://test.server/project/spam/1.0/',
            'version': u'1.0',
            'name': u'spam',
            'summary': u'hai spam',
            'created': u'now',
        }, {
            'url': 'http://test.server/project/ham/2.0/',
            'version': u'2.0',
            'name': u'ham',
            'summary': u'hai ham',
            'created': u'now',
        }, {
            'url': 'http://test.server/project/spam/2.0/',
            'version': u'2.0',
            'name': u'spam',
            'summary': u'hai spam v2',
            'created': u'now',
        }]
    assert resp.data == b"<xml>dummy</xml>"
Example #3
0
def test_rss(app, monkeypatch):
    now = datetime.datetime.utcnow()

    get_recently_updated = pretend.call_recorder(lambda num=10: [
        dict(name='spam', version='1.0', summary='hai spam', created=now),
        dict(name='ham', version='2.0', summary='hai ham', created=now),
        dict(name='spam', version='2.0', summary='hai spam v2', created=now),
    ])

    app.db = pretend.stub(
        packaging=pretend.stub(
            get_recently_updated=get_recently_updated,
        )
    )
    app.config = pretend.stub(
        site={"url": "http://test.server/", "name": "PyPI"},
    )

    request = pretend.stub(
        url_adapter=Map(urls.urls).bind('test.server', '/'),
    )

    resp = pypi.rss(app, request)

    assert resp.response.context == {
        "description": "package updates",
        "site": {"name": "PyPI", "url": "http://test.server/"},
        "releases": [
            {
                "url": "http://test.server/project/spam/1.0/",
                "version": "1.0",
                "name": "spam",
                "summary": "hai spam",
                "created": now,
            },
            {
                "url": "http://test.server/project/ham/2.0/",
                "version": "2.0",
                "name": "ham",
                "summary": "hai ham",
                "created": now,
            },
            {
                "url": "http://test.server/project/spam/2.0/",
                "version": "2.0",
                "name": "spam",
                "summary": "hai spam v2",
                "created": now,
            }
        ],
    }
    assert get_recently_updated.calls == [pretend.call(num=40)]