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)]
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>"