When testing webapp views and an unexpected HTTP status code is returned, tests reporting do not help to find the cause of the issue, see below:
_________________ test_content_origin_snapshot_release_browse __________________ client = <django.test.client.Client object at 0x7f9ce315e828> archive_data = <swh.web.tests.conftest._ArchiveData object at 0x7f9ce781b6a0> @given(origin_with_multiple_visits()) > def test_content_origin_snapshot_release_browse(client, archive_data, origin): swh/web/tests/browse/views/test_content.py:477: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ client = <django.test.client.Client object at 0x7f9ce315e828> archive_data = <swh.web.tests.conftest._ArchiveData object at 0x7f9ce781b6a0> origin = {'archives': ['highlightjs-line-numbers.js.zip', 'highlightjs-line-numbers.js_visit2.zip'], 'type': 'git', 'url': 'https://github.com/wcoder/highlightjs-line-numbers.js'} @given(origin_with_multiple_visits()) def test_content_origin_snapshot_release_browse(client, archive_data, origin): visits = archive_data.origin_visit_get(origin["url"]) visit = random.choice(visits) snapshot = archive_data.snapshot_get(visit["snapshot"]) branches, releases = process_snapshot_branches(snapshot) release_info = random.choice(releases) directory_content = archive_data.directory_ls(release_info["directory"]) directory_file = random.choice( [e for e in directory_content if e["type"] == "file"] ) url = reverse( "browse-content", url_args={"query_string": directory_file["checksums"]["sha1"]}, query_params={ "origin_url": origin["url"], "snapshot": snapshot["id"], "release": release_info["name"], "path": directory_file["name"], }, ) resp = client.get(url) > assert resp.status_code == 200 E assert 500 == 200 E + where 500 = <HttpResponse status_code=500, "text/html; charset=utf-8">.status_code swh/web/tests/browse/views/test_content.py:501: AssertionError ---------------------------------- Hypothesis ---------------------------------- Falsifying example: test_content_origin_snapshot_release_browse( client=<django.test.client.Client at 0x7f9ce315e828>, archive_data=<swh.web.tests.conftest._ArchiveData at 0x7f9ce781b6a0>, origin={'archives': ['highlightjs-line-numbers.js.zip', 'highlightjs-line-numbers.js_visit2.zip'], 'type': 'git', 'url': 'https://github.com/wcoder/highlightjs-line-numbers.js'}, )
We should manage to display the stack trace that led to the HTTP error in order to gain some debugging time here.