swh_scheduler = <swh.scheduler.backend.SchedulerBackend object at 0x7f593429f940>
requests_mock = <requests_mock.mocker.Mocker object at 0x7f593429fb00>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f593429f438>
trygogs_p1 = ('{\n "data": [\n {\n "id": 190,\n "owner": {\n "id": 338,\n "username": "carwyn",\n ...gogs.io/carwyn/test-repo.git', 'https://try.gogs.io/juquinha/zicarepo.git', 'https://try.gogs.io/ivilata/footest.git'])
trygogs_p2 = ('{\n "data": [\n {\n "id": 337,\n "owner": {\n "id": 585,\n "username": "zork",\n ...ps://try.gogs.io/zork/zork-repo.git', 'https://try.gogs.io/zork/supernova.git', 'https://try.gogs.io/zork/digits.git'])
trygogs_p3 = ('{\n "data": [\n {\n "id": 340,\n "owner": {\n "id": 585,\n "username": "zork",\n ...yond-the-titanic.git', 'https://try.gogs.io/perekre/beyond-the-titanic.git', 'https://try.gogs.io/yinheli/digits.git'])
def test_gogs_full_listing(
swh_scheduler, requests_mock, mocker, trygogs_p1, trygogs_p2, trygogs_p3
):
kwargs = dict(
url=TRY_GOGS_URL, instance="try_gogs", page_size=3, api_token="secret"
)
lister = GogsLister(scheduler=swh_scheduler, **kwargs)
lister.get_origins_from_page: Mock = mocker.spy(lister, "get_origins_from_page")
p1_text, p1_headers, p1_result, p1_origin_urls = trygogs_p1
p2_text, p2_headers, p2_result, p2_origin_urls = trygogs_p2
p3_text, p3_headers, p3_result, p3_origin_urls = trygogs_p3
requests_mock.get(P1, text=p1_text, headers=p1_headers)
requests_mock.get(P2, text=p2_text, headers=p2_headers)
requests_mock.get(P3, text=p3_text, headers=p3_headers)
stats = lister.run()
assert stats.pages == 3
assert stats.origins == 9
calls = map(mocker.call, [p1_result, p2_result, p3_result])
lister.get_origins_from_page.assert_has_calls(list(calls))
scheduler_origins = swh_scheduler.get_listed_origins(lister.lister_obj.id).results
check_listed_origins(
p1_origin_urls + p2_origin_urls + p3_origin_urls, scheduler_origins
)
> assert (
lister.get_state_from_scheduler().last_seen_next_link is None
) # None because P3 was the last page (no next link)
E AssertionError: assert 'https://try.gogs.io/api/v1/repos/search?page=3&limit=3' is None
E + where 'https://try.gogs.io/api/v1/repos/search?page=3&limit=3' = GogsListerState(last_seen_next_link='https://try.gogs.io/api/v1/repos/search?page=3&limit=3').last_seen_next_link
E + where GogsListerState(last_seen_next_link='https://try.gogs.io/api/v1/repos/search?page=3&limit=3') = <bound method Lister.get_state_from_scheduler of <swh.lister.gogs.lister.GogsLister object at 0x7f5936e40cf8>>()
E + where <bound method Lister.get_state_from_scheduler of <swh.lister.gogs.lister.GogsLister object at 0x7f5936e40cf8>> = <swh.lister.gogs.lister.GogsLister object at 0x7f5936e40cf8>.get_state_from_scheduler
.tox/py3/lib/python3.7/site-packages/swh/lister/gogs/tests/test_lister.py:120: AssertionError
TEST RESULT
TEST RESULT
- Run At
- Aug 11 2022, 6:56 AM