Пример использования
тест-кейсы:
Поиск фильмов по корректному имени.
Поиск фильмов по некорректному (невалидному) имени (букв меньше 3).
Поиск фильмов без указания апи ключа.
можно использовать мой апи кей
apikey=23f82659
код без фикстур
#----------------------------------------------------------------------------# ------------------------ test-case valid params -----------------------#
import requests
import pytest
def test_search_valid_movie():
# base_url
base_url = "https://www.omdbapi.com/"
# params
api_key = "23f82659"
s = "matrix"
# url
url = f"{base_url}?apikey={api_key}&s={s}"
# send request
response = requests.get(url)
# фактического результат
status_code, response_result = response.status_code, response.json()['Response']
# expected result
expected_status_code = range(200, 400)
expected_response_result = "True"
# проверка совпадения наших ожиданий и фактического результат
assert (status_code in expected_status_code) and response_result == expected_response_result
# ------------------------ test-case invalid param @s -----------------------#
def test_invalid_search():
base_url = "https://www.omdbapi.com/"
apikey = "23f82659"
s = "m"
url = f"{base_url}?apikey={apikey}&s={s}"
response = requests.get(url)
assert response.status_code in range(200, 300)
assert response.json()['Response'] == "False"
# ------------------------ test-case invalid param @apikey -----------------------#
def test_invalid_apikey():
base_url = "https://www.omdbapi.com/"
apikey = "rrrr"
s = "matrix"
url = f"{base_url}?apikey={apikey}&s={s}"
response = requests.get(url)
assert response.status_code in range(400, 500)
assert response.json()['Response'] == "False"
код c фикстурами
import requests
import pytest
@pytest.fixture
def valid_params():
return {
"apikey": "23f82659",
"s": "matrix",
"base_url": "https://www.omdbapi.com/"
}
@pytest.fixture
def invalid_params():
return {
"apikey": "rrrr",
"s": "m",
"base_url": "https://www.omdbapi.com/"
}
@pytest.fixture
def get_url(valid_params):
return f"{valid_params['base_url']}?apikey={valid_params['apikey']}&s={valid_params['s']}"
def test_search_valid_movie(get_url):
response = requests.get(get_url)
status_code, response_result = response.status_code, response.json()['Response']
expected_status_code = range(200, 400)
expected_response_result = "True"
assert (status_code in expected_status_code) and response_result == expected_response_result
def test_invalid_search(invalid_params):
url = f"{invalid_params['base_url']}?apikey={invalid_params['apikey']}&s={invalid_params['s']}"
response = requests.get(url)
assert response.status_code in range(200, 300)
assert response.json()['Response'] == "False"
def test_invalid_apikey(invalid_params):
url = f"{invalid_params['base_url']}?apikey={invalid_params['apikey']}&s={invalid_params['s']}"
response = requests.get(url)
assert response.status_code in range(400, 500)
assert response.json()['Response'] == "False"
Last updated