Инструменты разработки¶Development Tools
Модули, описанные в этой главе, помогают писать программное обеспечение. Например,
модуль pydoc принимает модуль и генерирует документацию на основе его
содержимого. Модули doctest и unittest содержат
фреймворки для написания модульных тестов, которые автоматически выполняют код и проверяют,
что вывод соответствует ожидаемому. 2to3 может переводить исходный код Python 2.x
в корректный код Python 3.x.
Список модулей, описанных в этой главе:
typing– Поддержка аннотаций типовtyping – Support for type hints- Соответствующие PEPsRelevant PEPs
- Псевдонимы типовType aliases
- NewType
- Callable
- Обобщённые типыGenerics
- Пользовательские обобщённые типыUser-defined generic types
- Тип
AnyThe Any type - Номинальное и структурное подтипированиеNominal vs structural subtyping
- Содержание модуляModule contents
- Специальные примитивы типизацииSpecial typing primitives
- Конкретные обобщённые коллекцииGeneric concrete collections
- Абстрактные базовые классыAbstract Base Classes
- ПротоколыProtocols
- Функции и декораторыFunctions and decorators
- Вспомогательные функции интроспекцииIntrospection helpers
- КонстантаConstant
pydoc– генератор документации и система интерактивной справкиpydoc – Documentation generator and online help system- Режим разработки PythonPython Development Mode
- Эффекты режима разработки PythonEffects of the Python Development Mode
- Пример ResourceWarningResourceWarning Example
- Пример ошибки с некорректным файловым дескрипторомBad file descriptor error example
doctest– тестирование интерактивных примеров Pythondoctest – Test interactive Python examples- Простое использование: проверка примеров в строках документацииSimple Usage: Checking Examples in Docstrings
- Простое использование: проверка примеров в текстовом файлеSimple Usage: Checking Examples in a Text File
- Как это работаетHow It Works
- Какие строки документации проверяются?Which Docstrings Are Examined?
- Как распознаются примеры в строках документации?How are Docstring Examples Recognized?
- Каков контекст выполнения?What’s the Execution Context?
- А как насчёт исключений?What About Exceptions?
- Флаги опцийOption Flags
- ДирективыDirectives
- ПредупрежденияWarnings
- Базовый APIBasic API
- API unittestUnittest API
- Расширенный APIAdvanced API
- ОтладкаDebugging
- ТрибунаSoapbox
unittest– фреймворк для модульного тестированияunittest – Unit testing framework- Простой примерBasic example
- Интерфейс командной строкиCommand-Line Interface
- Обнаружение тестовTest Discovery
- Организация тестового кодаOrganizing test code
- Повторное использование старого тестового кодаRe-using old test code
- Пропуск тестов и ожидаемые сбоиSkipping tests and expected failures
- Различение итераций теста с помощью подтестовDistinguishing test iterations using subtests
- Классы и функцииClasses and functions
- Фикстуры классов и модулейClass and Module Fixtures
- Обработка сигналовSignal Handling
unittest.mock– библиотека mock-объектовunittest.mock – mock object library- Краткое руководствоQuick Guide
- Класс MockThe Mock Class
- ПатчерыThe patchers
- patch
- patch.object
- patch.dict
- patch.multiple
- Методы patch: start и stoppatch methods: start and stop
- patch встроенных объектовpatch builtins
- TEST_PREFIX
- Вложение декораторов patchNesting Patch Decorators
- Где применять patchWhere to patch
- Подмена дескрипторов и прокси-объектовPatching Descriptors and Proxy Objects
- MagicMock и поддержка магических методовMagicMock and magic method support
- Вспомогательные средстваHelpers
unittest.mock– начало работыunittest.mock – getting started- Использование MockUsing Mock
- Методы подмены моковMock Patching Methods
- Mock для вызовов методов объектаMock for Method Calls on an Object
- Создание моков для классовMocking Classes
- Именование моковNaming your mocks
- Отслеживание всех вызововTracking all Calls
- Установка возвращаемых значений и атрибутовSetting Return Values and Attributes
- Возбуждение исключений с помощью моковRaising exceptions with mocks
- Функции побочного эффекта и итерируемые объектыSide effect functions and iterables
- Мокирование асинхронных итераторовMocking asynchronous iterators
- Мокирование асинхронного контекстного менеджераMocking asynchronous context manager
- Создание мока на основе существующего объектаCreating a Mock from an Existing Object
- Декораторы patchPatch Decorators
- Дополнительные примерыFurther Examples
- Мокирование цепочек вызововMocking chained calls
- Частичное мокированиеPartial mocking
- Создание мока для метода-генератораMocking a Generator Method
- Применение одного и того же patch к каждому тестовому методуApplying the same patch to every test method
- Создание моков для несвязанных методовMocking Unbound Methods
- Проверка множественных вызовов с помощью mockChecking multiple calls with mock
- Работа с изменяемыми аргументамиCoping with mutable arguments
- Вложенные подменыNesting Patches
- Мокирование словаря с помощью MagicMockMocking a dictionary with MagicMock
- Подклассы Mock и их атрибутыMock subclasses and their attributes
- Мокирование импортов с помощью patch.dictMocking imports with patch.dict
- Отслеживание порядка вызовов и менее многословные утверждения о вызовахTracking order of calls and less verbose call assertions
- Более сложное сопоставление аргументовMore complex argument matching
- Использование MockUsing Mock
- 2to3 – автоматическое преобразование кода Python 2 в 32to3 – Automated Python 2 to 3 code translation
test– Пакет регрессионных тестов для Pythontest – Regression tests package for Pythontest.support– Утилиты для набора тестов Pythontest.support – Utilities for the Python test suitetest.support.socket_helper– Утилиты для тестирования сокетовtest.support.socket_helper – Utilities for socket teststest.support.script_helper– Утилиты для тестов выполнения Pythontest.support.script_helper – Utilities for the Python execution teststest.support.bytecode_helper– Вспомогательные инструменты для тестирования корректной генерации байт-кодаtest.support.bytecode_helper – Support tools for testing correct bytecode generationtest.support.threading_helper– Утилиты для тестирования потоковtest.support.threading_helper – Utilities for threading teststest.support.os_helper– Утилиты для тестирования ОСtest.support.os_helper – Utilities for os teststest.support.import_helper– утилиты для тестирования импортаtest.support.import_helper – Utilities for import teststest.support.warnings_helper– утилиты для тестирования предупрежденийtest.support.warnings_helper – Utilities for warnings tests