у вас какая-то каша в коде:
expected_response_text=[]
for i in UA:
expected_response_text.append(i)
expected_response_text = {'user_agent': 'Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30','platform': 'Mobile', 'browser': 'No', 'device': 'Android'}
- вот тут вы идете по словарю, добавляете ключ в лист expected_response_text, потом в него же переприсваете словарь харкодный - что тут по вашему должно произойти?
Ну и словари на прямую сравнивать бессмыслено надо всегда искать diff
@pytest.mark.parametrize('agent, platform, browser, device', UA)
def test_get_user_agent(self, agent, platform, browser, device):
url = "https://playground.learnqa.ru/ajax/api/user_agent_check"
UA = {"user-agent": agent}
response = requests.get(url, headers=UA)
parsed_response = response.json()
expected_response_text = {
'user_agent': agent,
'platform': platform,
'browser': browser,
'device': device
}
print(expected_response_text)
actual_response_text = parsed_response
print(actual_response_text)
assert not (result := compare(expected_response_text, actual_response_text)), result