Засоби розробки¶
Модулі, описані в цьому розділі, допоможуть вам писати програмне забезпечення. Наприклад, модуль pydoc
бере модуль і генерує документацію на основі вмісту модуля. Модулі doctest
та unittest
містять фреймворки для написання модульних тестів, які автоматично виконують код і перевіряють, чи отримано очікуваний результат.
Перелік модулів, описаних у цьому розділі:
typing
— Підтримка підказок типу- Specification for the Python Type System
- Псевдоніми типів
- NewType
- Annotating callable objects
- Узагальнення
- Annotating tuples
- The type of class objects
- Annotating generators and coroutines
- Визначені користувачем загальні типи
- Тип
Any
- Номінальний проти структурного підтипу
- Зміст модуля
- Спеціальні примітиви типізації
- Протоколи
- ABCs for working with IO
- Функції та декоратори
- Помічники в самоаналізі
- Постійний
- Застарілі псевдоніми
- Deprecation Timeline of Major Features
pydoc
— Documentation generator and online help system- Режим розробки Python
doctest
— Test interactive Python examples- Просте використання: перевірка прикладів у Docstrings
- Просте використання: перевірка прикладів у текстовому файлі
- Як це працює
- Базовий API
- Unittest API
- Розширений API
- Налагодження
- Мильниця
unittest
— Unit testing framework- Базовий приклад
- Інтерфейс командного рядка
- Тестове відкриття
- Організація тестового коду
- Повторне використання старого тестового коду
- Пропуск тестів і очікувані невдачі
- Розрізнення тестових ітерацій за допомогою субтестів
- Класи та функції
- Тестові випадки
TestCase
setUp()
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()
failureException
longMessage
maxDiff
countTestCases()
defaultTestResult()
id()
shortDescription()
addCleanup()
enterContext()
doCleanups()
addClassCleanup()
enterClassContext()
doClassCleanups()
IsolatedAsyncioTestCase
FunctionTestCase
- Групування тестів
- Завантаження та виконання тестів
TestLoader
TestResult
errors
failures
skipped
expectedFailures
unexpectedSuccesses
collectedDurations
shouldStop
testsRun
buffer
failfast
tb_locals
wasSuccessful()
stop()
startTest()
stopTest()
startTestRun()
stopTestRun()
addError()
addFailure()
addSuccess()
addSkip()
addExpectedFailure()
addUnexpectedSuccess()
addSubTest()
addDuration()
TextTestResult
defaultTestLoader
TextTestRunner
main()
- протокол load_tests
- Тестові випадки
- Фікстури класів і модулів
- Обробка сигналів
unittest.mock
— mock object library- Quick Guide
- The Mock Class
Mock
assert_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()
called
call_count
return_value
side_effect
call_args
call_args_list
method_calls
mock_calls
__class__
NonCallableMock
PropertyMock
AsyncMock
ThreadingMock
- Calling
- Deleting Attributes
- Mock names and the name attribute
- Attaching Mocks as Attributes
- The patchers
- MagicMock and magic method support
- Helpers
- Order of precedence of
side_effect
,return_value
and wraps
unittest.mock
— getting started- Using Mock
- Mock Patching Methods
- 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
- Using side_effect to return per file content
- Patch Decorators
- Further Examples
- Mocking chained calls
- Partial mocking
- Mocking a Generator Method
- Applying the same patch to every test method
- Mocking Unbound Methods
- Checking multiple calls with mock
- Coping with mutable arguments
- Nesting Patches
- Mocking a dictionary with MagicMock
- Mock subclasses and their attributes
- Mocking imports with patch.dict
- Tracking order of calls and less verbose call assertions
- More complex argument matching
- Using Mock
test
— Regression tests package for Pythontest.support
— Утиліти для набору тестів PythonTestFailed
ResourceDenied
verbose
is_jython
is_android
unix_shell
LOOPBACK_TIMEOUT
INTERNET_TIMEOUT
SHORT_TIMEOUT
LONG_TIMEOUT
PGO
PIPE_MAX_SIZE
Py_DEBUG
SOCK_MAX_SIZE
TEST_SUPPORT_DIR
TEST_HOME_DIR
TEST_DATA_DIR
MAX_Py_ssize_t
max_memuse
real_max_memuse
MISSING_C_DOCSTRINGS
HAVE_DOCSTRINGS
TEST_HTTP_URL
ALWAYS_EQ
NEVER_EQ
LARGEST
SMALLEST
busy_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()
check_disallow_instantiation()
adjust_int_max_str_digits()
SuppressCrashReport
SaveSignals
Matcher
test.support.socket_helper
— Утиліти для тестування сокетівtest.support.script_helper
— Утиліти для тестів виконання Pythontest.support.bytecode_helper
— Інструменти підтримки для тестування правильної генерації байт-кодуtest.support.threading_helper
— Утиліти для потокових тестівtest.support.os_helper
— Утиліти для тестування ОСFS_NONASCII
SAVEDCWD
TESTFN
TESTFN_NONASCII
TESTFN_UNENCODABLE
TESTFN_UNDECODABLE
TESTFN_UNICODE
EnvironmentVarGuard
FakePath
set()
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
— Утиліти для імпортування тестівtest.support.warnings_helper
— Утиліти для перевірки попереджень