2016-04-20 1 views
0

Я хочу протестировать приложение wsgi. Я хочу сделать точную переменную environ без каких-либо подключений сокетов или http-вызовов. (Если моя тестовая среда - это сервер, а приложение живет на одной машине, то зачем делать http-звонки?)Как я могу сделать точную строку user-agent в python?

Я нашел webtest, и в настоящее время я смотрю на источник, чтобы понять это (он не работает для движка Google приложения по какой-либо причине).

Моей текущей проблемой при создании точной переменной окружения является пользовательский агент. Я могу получить системную информацию с import platform; platform.uname(), но она возвращает Darwin для Macbooks, а не Macintosh, которая находится в строке user-agent при отправке с macbook. Я нашел несколько библиотек для создания «поддельных» пользовательских агентов, но я хочу сделать real.

+0

Я не уверен, что вы подразумеваете под " точный "и" реальный "пользовательский агент. Вы хотите подражать тому, что может создать конкретный браузер? Если да, то какой браузер? – Schwern

+0

[Я пропустил что-то очевидное?] (Http://whatsmyuseragent.com/) – jDo

+0

@jDo теперь вызывайте это, но из python и без запроса http get. В принципе, что такое пользовательский агент скрипта python? – Ignat

ответ

0

Если вы используете Google App Engine, и проблема имеет точный пользовательский агент из теста, во-первых, вы, вероятно, захотите использовать App Engine Testbed. Оттуда есть специальные инструкции по using webtest. Если вы не делаете что-то странное, это должно работать нормально.

Путь затем передать пользовательские заголовки, в том числе агента пользователя, как это (per the docs):

app.get('/path', [params], [headers], [extra_environ], ...) 

Так, например:

app.get('/foo', headers={'User-Agent': 'Mozilla'})