Таня Шлюссер - Автостопом по Python

Здесь есть возможность читать онлайн «Таня Шлюссер - Автостопом по Python» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Питер, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Автостопом по Python: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Автостопом по Python»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Перед вами — увлекательная книга, которую по достоинству оценит любой неравнодушный программист и даже бывалый питонщик. Она составлена на основе одноименного онлайнового руководства
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.

Автостопом по Python — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Автостопом по Python», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Когда мы в первый раз откроем файл werkzeug/test_routing.py, можем быстро взглянуть на связи между модулями, поискав импортированные объекты во всем файле.

Рассмотрим все операторы импорта.

Конечно pytest используется для тестирования Модуль uuid применяется всего в - фото 157

картинка 158Конечно, pytest используется для тестирования.

картинка 159Модуль uuid применяется всего в одной функции test_uuid_converter(), чтобы подтвердить, что работает преобразование между объектами типа string и uuid.UUID (строка Universal Unique Identifier (универсальный уникальный идентификатор) позволяет уникально идентифицировать объекты в Интернете).

картинка 160Функция strict_eq() используется довольно часто и определена в файле werkzeug/tests/__init__.py. Предназначена для тестирования и нужна только потому, что в Python 2 существовало явное преобразование между строками в формате Unicode и byte, но на это нельзя полагаться в Python 3.

картинка 161werkzeug.routing — это тестируемый модуль.

картинка 162Объект Response применяется всего в одной функции test_dispatch() для подтверждения, что werkzeug.routing.MapAdapter.dispatch() передает правильную информацию, отправленную приложению WSGI.

картинка 163Эти объекты словаря используются по одному разу. ImmutableDict нужен для того, чтобы подтвердить, что неизменяемый каталог, указанный в werkzeug.routing.Map, действительно неизменяем, а MultiDict — чтобы предоставить несколько значений с ключами строителю URL и подтвердить, что был собран правильный URL.

картинка 164Функция create_environ() предназначена для тестирования: создает среду WSGI без реального запроса HTTP.

Цель этого анализа — исследование связей между модулями. Мы обнаружили, что werkzeug.routing лишь импортирует некоторые специальные структуры данных. Остальная часть юнит-тестов показывает область действия модуля маршрутизации. Например, вы можете использовать символы, не входящие в ASCII:

def test_environ_nonascii_pathinfo():

····environ = create_environ(u'/лошадь')

····m = r.Map([

········r.Rule(u'/', endpoint='index'),

········r.Rule(u'/лошадь', endpoint='horse')

····])

····a = m.bind_to_environ(environ)

····strict_eq(a.match(u'/'), ('index', {}))

····strict_eq(a.match(u'/лошадь'), ('horse', {}))

····pytest.raises(r.NotFound, a.match, u'/барсук')

Существуют тесты для сборки и анализа URL и даже утилиты для поиска ближайшего совпадения, которое не является полным. Вы можете выполнить пользовательскую обработку в процессе преобразования типов путей и строк URL:

def test_converter_with_tuples():

····'''

····Регрессионные тесты для https://github.com/pallets/werkzeug/issues/709

····'''

····class TwoValueConverter(r.BaseConverter):

········def __init__(self, *args, **kwargs):

············super(TwoValueConverter, self).__init__(*args, **kwargs)

············self.regex = r'(\w\w+)/(\w\w+)'

········def to_python(self, two_values):

············one, two = two_values.split('/')

············return one, two

········def to_url(self, values):

············return "%s/%s" % (values[0], values[1])

····map = r.Map([

········r.Rule('//', endpoint='handler')

····], converters={'two': TwoValueConverter})

····a = map.bind('example.org', '/')

····route, kwargs = a.match('/qwert/yuiop/')

····assert kwargs['foo'] == ('qwert', 'yuiop')

Аналогично немногое импортируется в файле werkzeug/test_wrappers.py. В тесте показывается функциональность, доступная объекту Request, — cookies, кодировки, аутентификация, безопасность, таймауты кэша и даже мультиязычные кодировки:

def test_modified_url_encoding():

····class ModifiedRequest(wrappers.Request):

········url_charset = 'euc-kr'

····req = ModifiedRequest.from_values(u'/?foo= картинка 165'.encode('euc-kr'))

····strict_eq(req.args['foo'], u' картинка 166')

Как правило, чтение тестов позволяет более подробно ознакомиться с возможностями библиотеки. Теперь понятно, для чего нужна библиотека Werkzeug, поэтому можно двигаться дальше.

Tox в Werkzeug

Tox ( https://tox.readthedocs.io/) — инструмент командной строки, который использует виртуальные среды для запуска тестов. Вы можете запускать их на своем компьютере (tox в командной строке), если установлены интерпретаторы Python. Интегрирован с GitHub, поэтому, если у вас есть файл tox.ini на высшем уровне репозитория, как у Werkzeug, он автоматически будет запускать тесты при каждом коммите.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Автостопом по Python»

Представляем Вашему вниманию похожие книги на «Автостопом по Python» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Автостопом по Python»

Обсуждение, отзывы о книге «Автостопом по Python» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x