Инструменты разработки
Модули, описанные в этой главе, помогут вам создавать программное обеспечение. Например, модуль pydoc принимает модуль и генерирует документацию на основе его содержимого. Модули doctest и unittest содержат фреймворки для написания модульных тестов, которые автоматически запускают код и проверяют, что полученный результат соответствует ожидаемому.
Список модулей, описанных в этой главе:
- Справочные инструменты интроспекции
- Константа
- Устаревшие псевдонимы
- График устаревания основных функций
pydoc— Генератор документации и система онлайн-справочной информации- Режим разработки Python
-
doctest— Тестирование интерактивных примеров Python- Простое использование: проверка примеров в строках документации
- Простое использование: проверка примеров в текстовом файле
- Как это работает
- Основной API
- API модуля unittest
- Расширенный API
-
Классы и функции
-
Тестовые случаи
-
TestCasesetUp()tearDown()setUpClass()tearDownClass()run()skipTest()subTest()debug()assertEqual()assertNotEqual()assertTrue()assertFalse()assertIs()assertIsNot()assertIsNone()assertIsNotNone()assertIn()assertNotIn()assertIsInstance()assertNotIsInstance()assertRaises()assertRaisesRegex()assertWarns()assertWarnsRegex()-
assertLogs() assertNoLogs()assertAlmostEqual()assertNotAlmostEqual()assertGreater()assertGreaterEqual()assertLess()assertLessEqual()assertRegex()assertNotRegex()assertCountEqual()addTypeEqualityFunc()assertMultiLineEqual()assertSequenceEqual()assertListEqual()assertTupleEqual()assertSetEqual()assertDictEqual()fail()failureExceptionlongMessagemaxDiffcountTestCases()defaultTestResult()id()shortDescription()addCleanup()enterContext()doCleanups()addClassCleanup()enterClassContext()doClassCleanups()
-
IsolatedAsyncioTestCase FunctionTestCase
-
- Группировка тестов
-
Тестовые случаи
-
Классы и функции
-
Загрузка и выполнение тестов
-
TestLoader -
TestResulterrorsfailuresskippedexpectedFailuresunexpectedSuccessescollectedDurationsshouldStoptestsRunbufferfailfasttb_localswasSuccessful()stop()startTest()stopTest()startTestRun()stopTestRun()addError()addFailure()addSuccess()addSkip()addExpectedFailure()addUnexpectedSuccess()addSubTest()addDuration()
TextTestResultdefaultTestLoader-
TextTestRunner main()- Протокол load_tests
-
- Фикстуры класса и модуля
- Обработка сигналов
-
Загрузка и выполнение тестов
-
unittest.mock— библиотека объектов-моков- Быстрое руководство
-
Класс Mock
-
Mockassert_called()assert_called_once()assert_called_with()assert_called_once_with()assert_any_call()assert_has_calls()assert_not_called()reset_mock()mock_add_spec()attach_mock()configure_mock()__dir__()_get_child_mock()calledcall_countreturn_valueside_effectcall_argscall_args_listmethod_callsmock_calls__class__
NonCallableMockPropertyMock-
AsyncMock -
ThreadingMock - Вызов
- Удаление атрибутов
- Имена моков и атрибут имени
- Присоединение моков в качестве атрибутов
-
- Декораторы patch
- MagicMock и поддержка магических методов
- Вспомогательные функции
-
unittest.mock— начало работы-
Использование Mock
- Моделирование методов
- Использование Mock для вызовов методов объекта
- Моделирование классов
- Наименование созданных Mock
- Отслеживание всех вызовов
- Установление возвращаемых значений и атрибутов
- Вызов исключений с помощью Mock
- Функции и итерируемые объекты для side_effect
- Моделирование асинхронных итераторов
- Моделирование асинхронного менеджера контекста
- Создание Mock из существующего объекта
- Использование side_effect для возвращения содержимого файлов
- Декораторы patch
-
Дополнительные примеры
- Моделирование цепочек вызовов
- Частичное моделирование
- Моделирование метода-генератора
- Применение одной и той же подмены к каждому методу теста
- Моделирование несвязанных методов
- Проверка нескольких вызовов с помощью Mock
- Обработка изменяемых аргументов
- Вложенные подмены
- Моделирование словаря с помощью MagicMock
- Подклассы Mock и их атрибуты
- Моделирование импортов с помощью patch.dict
- Отслеживание порядка вызовов и менее подробные проверки вызовов
- Более сложные соответствия аргументов
-
Использование Mock
-
test— пакет регрессионных тестов для Python -
test.support— утилиты для набора тестов Python
TestFailedResourceDeniedverboseis_jythonis_androidunix_shellLOOPBACK_TIMEOUTINTERNET_TIMEOUTSHORT_TIMEOUTLONG_TIMEOUTPGOPIPE_MAX_SIZEPy_DEBUGSOCK_MAX_SIZETEST_SUPPORT_DIRTEST_HOME_DIRTEST_DATA_DIRMAX_Py_ssize_tmax_memusereal_max_memuseMISSING_C_DOCSTRINGSHAVE_DOCSTRINGSTEST_HTTP_URLALWAYS_EQNEVER_EQLARGESTSMALLESTbusy_retry()sleeping_retry()is_resource_enabled()python_is_optimized()with_pymalloc()requires()sortdict()findfile()get_pagesize()setswitchinterval()check_impl_detail()set_memlimit()record_original_stdout()get_original_stdout()args_from_interpreter_flags()optim_args_from_interpreter_flags()captured_stdin()captured_stdout()captured_stderr()disable_faulthandler()gc_collect()disable_gc()swap_attr()swap_item()flush_std_streams()print_warning()wait_process()calcobjsize()calcvobjsize()checksizeof()anticipate_failure()system_must_validate_cert()run_with_locale()run_with_tz()requires_freebsd_version()requires_linux_version()requires_mac_version()requires_gil_enabled()requires_IEEE_754()requires_zlib()requires_gzip()requires_bz2()requires_lzma()requires_resource()requires_docstrings()requires_limited_api()cpython_only()impl_detail()no_tracing()refcount_test()bigmemtest()bigaddrspacetest()check_syntax_error()open_urlresource()reap_children()get_attribute()catch_unraisable_exception()load_package_tests()detect_api_mismatch()patch()run_in_subinterp()check_free_after_iterating()missing_compiler_executable()check__all__()skip_if_broken_multiprocessing_synchronize()
-
test.support.socket_helper— Инструменты для тестирования сокетов -
test.support.script_helper— Инструменты для тестирования выполнения Python-скриптов -
test.support.bytecode_helper— Инструменты для тестирования генерации байткода -
test.support.threading_helper— Инструменты для тестирования потоков -
test.support.os_helper— Инструменты для тестирования osFS_NONASCIISAVEDCWDTESTFNTESTFN_NONASCIITESTFN_UNENCODABLETESTFN_UNDECODABLETESTFN_UNICODEEnvironmentVarGuardFakePathset()unset()can_symlink()can_xattr()change_cwd()create_empty_file()fd_count()fs_is_case_insensitive()make_bad_fd()rmdir()rmtree()skip_unless_symlink()skip_unless_xattr()temp_cwd()temp_dir()temp_umask()unlink()
-
test.support.import_helper— Инструменты для тестирования импорта
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/development.html