Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/common/test_origin_save.py
Show First 20 Lines • Show All 353 Lines • ▼ Show 20 Lines | |||||
def test__check_origin_exists_404(requests_mock): | def test__check_origin_exists_404(requests_mock): | ||||
url_ko = "https://example.org/some-inexistant-url" | url_ko = "https://example.org/some-inexistant-url" | ||||
requests_mock.head(url_ko, status_code=404) | requests_mock.head(url_ko, status_code=404) | ||||
with pytest.raises(BadInputExc, match="not exist"): | with pytest.raises(BadInputExc, match="not exist"): | ||||
_check_origin_exists(url_ko) | _check_origin_exists(url_ko) | ||||
@pytest.mark.parametrize("invalid_origin", [None, ""]) | |||||
def test__check_origin_invalid_input(invalid_origin): | |||||
with pytest.raises(BadInputExc, match="must be set"): | |||||
_check_origin_exists(invalid_origin) | |||||
def test__check_origin_exists_200(requests_mock): | def test__check_origin_exists_200(requests_mock): | ||||
url = "https://example.org/url" | url = "https://example.org/url" | ||||
requests_mock.head(url, status_code=200) | requests_mock.head(url, status_code=200) | ||||
# passes the check | # passes the check | ||||
_check_origin_exists(url) | actual_metadata = _check_origin_exists(url) | ||||
# and we actually may have retrieved some metadata on the origin | |||||
assert actual_metadata == origin_exists(url) | |||||
def test_origin_exists_404(requests_mock): | def test_origin_exists_404(requests_mock): | ||||
"""Origin which does not exist should be reported as inexistent""" | """Origin which does not exist should be reported as inexistent""" | ||||
url_ko = "https://example.org/some-inexistant-url" | url_ko = "https://example.org/some-inexistant-url" | ||||
requests_mock.head(url_ko, status_code=404) | requests_mock.head(url_ko, status_code=404) | ||||
actual_result = origin_exists(url_ko) | actual_result = origin_exists(url_ko) | ||||
Show All 27 Lines | requests_mock.head( | ||||
}, | }, | ||||
) | ) | ||||
actual_result = origin_exists(url) | actual_result = origin_exists(url) | ||||
assert actual_result == OriginExistenceCheckInfo( | assert actual_result == OriginExistenceCheckInfo( | ||||
origin_url=url, | origin_url=url, | ||||
exists=True, | exists=True, | ||||
content_length=10, | content_length=10, | ||||
last_modified="Sun, 21 Aug 2011 16:26:32 GMT", | last_modified="2011-08-21T16:26:32", | ||||
) | |||||
def test_origin_exists_200_with_data_unexpected_date_format(requests_mock): | |||||
"""Existing origin should be ok, unexpected last modif time result in no time""" | |||||
url = "http://example.org/real-url2" | |||||
# this is parsable but not as expected | |||||
unexpected_format_date = "Sun, 21 Aug 2021 16:26:32" | |||||
requests_mock.head( | |||||
url, status_code=200, headers={"last-modified": unexpected_format_date,}, | |||||
) | |||||
actual_result = origin_exists(url) | |||||
# so the resulting date is None | |||||
assert actual_result == OriginExistenceCheckInfo( | |||||
origin_url=url, exists=True, content_length=None, last_modified=None, | |||||
) | ) | ||||
@pytest.mark.django_db | @pytest.mark.django_db | ||||
@pytest.mark.parametrize("visit_status", ["created", "ongoing",]) | @pytest.mark.parametrize("visit_status", ["created", "ongoing",]) | ||||
def test_get_save_origin_requests_no_visit_date_found(mocker, visit_status): | def test_get_save_origin_requests_no_visit_date_found(mocker, visit_status): | ||||
"""Uneventful visits with failed visit status are marked as failed | """Uneventful visits with failed visit status are marked as failed | ||||
▲ Show 20 Lines • Show All 105 Lines • Show Last 20 Lines |