Ferramentas de Desenvolvimento¶
Os módulos descritos neste capítulo ajudam você a escrever softwares. Por exemplo, o módulo pydoc
recebe um módulo e gera documentação com base no conteúdo do módulo. Os módulos doctest
e unittest
contêm frameworks para escrever testes unitários que automaticamente exercitam código e verificam se a saída esperada é produzida.
A lista de módulos descritos neste capítulo é:
typing
— Suporte para dicas de tipo- Especificação para o sistema de tipos do Python
- Apelidos de tipo
- NewType
- Anotações de objetos chamáveis
- Genéricos
- Anotando tuplas
- O tipo de objetos de classe
- Anotando geradores e corrotinas
- Tipos genéricos definidos pelo usuário
- O tipo
Any
- Subtipagem nominal vs estrutural
- Conteúdo do módulo
- Tipos primitivos especiais
- Protocolos
- ABCs para trabalhar com E/S
- Funções e decoradores
- Introspection helpers
- Constante
- Apelidos descontinuados
- Cronograma de descontinuação dos principais recursos
pydoc
— Gerador de documentação e sistema de ajuda online- Modo de Desenvolvimento do Python
doctest
— Test interactive Python examples- Uso simples: verificando exemplos em Docstrings
- Utilização comum: Verificando exemplos em um arquivo texto
- Como ele funciona
- Basic API
- API do Unittest
- Advanced API
- Depuração
- Soapbox
unittest
— Unit testing framework- Exemplo Básico
- Interface de Linha de Comando
- Test Discovery
- Organizando código teste
- Reutilizando códigos de teste antigos
- Ignorando testes e falhas esperadas
- Distinguindo iterações de teste utilizando subtestes
- Classes e funções
- Casos de teste
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
- Grouping tests
- Carregando e executando testes
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 Protocol
- Casos de teste
- Classes e Módulos de Definição de Contexto
- Tratamento de sinal
unittest.mock
— mock object library- Guia Rápido
- A classe Mock
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
- Fazendo chamadas
- Deletando Atributos
- Nomes de Mock e o atributo name
- Anexando Mocks como Atributos
- Os criadores de patches
- MagicMock and magic method support
- Ajudantes
- Order of precedence of
side_effect
,return_value
and wraps
unittest.mock
— primeiros passos- Usando Mock
- Métodos de aplicação de patches em Mock
- Mock de chamadas de métodos em um objeto
- Mocking Classes
- Nomeando os mocks
- Rastreando todas as chamadas
- 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
- Usando Mock
test
— Regression tests package for Pythontest.support
— Utilitários para o conjunto de teste do 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
— Utilities for socket teststest.support.script_helper
— Utilities for the Python execution teststest.support.bytecode_helper
— Ferramentas de suporte para testar a geração correta de bytecodetest.support.threading_helper
— Utilities for threading teststest.support.os_helper
— Utilities for os testsFS_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
— Utilities for import teststest.support.warnings_helper
— Utilities for warnings tests