• Как в Pytest создать паратремизованный тест с использованием разных параметров?

    у вас какая-то каша в коде:

    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
    Ответ написан
    Комментировать