import pytest @pytest.mark.parametrize( "url,missing_parameter", [ ("/api/feed/", "URL"), ("/api/feed/?url=https://mozilla.org", "article"), ("/api/feed/?url=https://mozilla.org&article=article", "title"), ("/api/feed/?url=https://mozilla.org&title=h2&article=article", None), ], ) def test_missing_parameters(client, url, missing_parameter): response = client.get(url) if missing_parameter: assert response.json["message"] == f"Missing parameter: {missing_parameter}" assert response.status_code == 400 else: assert response.status_code == 200 @pytest.mark.parametrize( "url,status_code,message", [ ("https://mozilla.org", 200, None), ("mozilla.org", 200, None), ("toto", 400, "Incorrect URL"), ], ) def test_incorrect_url(client, url, status_code, message): response = client.get(f"/api/feed/?url={url}&title=h2&article=article") assert response.status_code == status_code if message: assert response.json["message"] == message