Nota
¡Ayúdanos a traducir la documentación oficial de Python al Español! Puedes encontrar más información en Como contribuir. Ayuda a acercar Python a más personas de habla hispana.
Herramientas de desarrollo¶
Los módulos descritos en este capítulo le ayudan a escribir software. Por ejemplo, el módulo pydoc toma un módulo y genera documentación basada en el contenido del módulo. Los módulos doctest y unittest contienen frameworks para escribir pruebas unitarias que ejecutan y validan automáticamente el código, verificando que se produce la salida esperada. 2to3 puede traducir el código fuente de Python 2.x en código válido de Python 3.x.
La lista de módulos descritos en este capítulo es:
typing— Soporte para type hints- PEPs relevantes
- Alias de tipo
- NewType
- Anotaciones en objetos invocables
- Genéricos
- Anotaciones en tuplas
- El tipo de objetos de clase
- Tipos genéricos definidos por el usuario
- El tipo
Any - Subtipado nominal vs estructural
- Contenido del módulo
- Primitivos especiales de tipado
- Protocolos
- ABC para trabajar con IO
- Funciones y decoradores
- Ayudas de introspección
- Constantes
- Alias obsoletos
- Línea de tiempo de obsolescencia de características principales
pydoc— Generador de documentación y Sistema de ayuda en línea- Modo de desarrollo de Python
doctest– Prueba ejemplos interactivos de Python- Uso simple: verificar ejemplos en docstrings
- Uso Simple: Verificar ejemplos en un Archivo de Texto
- Cómo funciona
- API básica
- API de unittest
- API avanzada
- Depuración
- Plataforma improvisada
unittest— Framework de tests unitarios- Ejemplo sencillo
- Interfaz de línea de comandos
- Descubrimiento de pruebas
- Organización del código de pruebas
- Reutilización de código de prueba anterior
- Omitir tests y fallos esperados
- Distinguiendo iteraciones de tests empleando subtests
- Clases y funciones
- Casos de test
TestCaseTestCase.setUp()TestCase.tearDown()TestCase.setUpClass()TestCase.tearDownClass()TestCase.run()TestCase.skipTest()TestCase.subTest()TestCase.debug()TestCase.assertEqual()TestCase.assertNotEqual()TestCase.assertTrue()TestCase.assertFalse()TestCase.assertIs()TestCase.assertIsNot()TestCase.assertIsNone()TestCase.assertIsNotNone()TestCase.assertIn()TestCase.assertNotIn()TestCase.assertIsInstance()TestCase.assertNotIsInstance()TestCase.assertRaises()TestCase.assertRaisesRegex()TestCase.assertWarns()TestCase.assertWarnsRegex()TestCase.assertLogs()TestCase.recordsTestCase.outputTestCase.assertNoLogs()TestCase.assertAlmostEqual()TestCase.assertNotAlmostEqual()TestCase.assertGreater()TestCase.assertGreaterEqual()TestCase.assertLess()TestCase.assertLessEqual()TestCase.assertRegex()TestCase.assertNotRegex()TestCase.assertCountEqual()TestCase.addTypeEqualityFunc()TestCase.assertMultiLineEqual()TestCase.assertSequenceEqual()TestCase.assertListEqual()TestCase.assertTupleEqual()TestCase.assertSetEqual()TestCase.assertDictEqual()TestCase.fail()TestCase.failureExceptionTestCase.longMessageTestCase.maxDiffTestCase.countTestCases()TestCase.defaultTestResult()TestCase.id()TestCase.shortDescription()TestCase.addCleanup()TestCase.enterContext()TestCase.doCleanups()TestCase.addClassCleanup()TestCase.enterClassContext()TestCase.doClassCleanups()
IsolatedAsyncioTestCaseFunctionTestCase
- Agrupando tests
- Cargando y ejecutando tests
TestLoaderTestLoader.errorsTestLoader.loadTestsFromTestCase()TestLoader.loadTestsFromModule()TestLoader.loadTestsFromName()TestLoader.loadTestsFromNames()TestLoader.getTestCaseNames()TestLoader.discover()TestLoader.testMethodPrefixTestLoader.sortTestMethodsUsingTestLoader.suiteClassTestLoader.testNamePatterns
TestResultTestResult.errorsTestResult.failuresTestResult.skippedTestResult.expectedFailuresTestResult.unexpectedSuccessesTestResult.collectedDurationsTestResult.shouldStopTestResult.testsRunTestResult.bufferTestResult.failfastTestResult.tb_localsTestResult.wasSuccessful()TestResult.stop()TestResult.startTest()TestResult.stopTest()TestResult.startTestRun()TestResult.stopTestRun()TestResult.addError()TestResult.addFailure()TestResult.addSuccess()TestResult.addSkip()TestResult.addExpectedFailure()TestResult.addUnexpectedSuccess()TestResult.addSubTest()TestResult.addDuration()
TextTestResultdefaultTestLoaderTextTestRunnermain()- load_tests protocolo
- Casos de test
- Instalaciones para clases y módulos
- Manejo de señales
unittest.mock— Biblioteca de objetos simulados- Guía rápida
- La clase Mock
MockMock.assert_called()Mock.assert_called_once()Mock.assert_called_with()Mock.assert_called_once_with()Mock.assert_any_call()Mock.assert_has_calls()Mock.assert_not_called()Mock.reset_mock()Mock.mock_add_spec()Mock.attach_mock()Mock.configure_mock()Mock.__dir__()Mock._get_child_mock()Mock.calledMock.call_countMock.return_valueMock.side_effectMock.call_argsMock.call_args_listMock.method_callsMock.mock_callsMock.__class__
NonCallableMockPropertyMockAsyncMockAsyncMock.assert_awaited()AsyncMock.assert_awaited_once()AsyncMock.assert_awaited_with()AsyncMock.assert_awaited_once_with()AsyncMock.assert_any_await()AsyncMock.assert_has_awaits()AsyncMock.assert_not_awaited()AsyncMock.reset_mock()AsyncMock.await_countAsyncMock.await_argsAsyncMock.await_args_list
- Llamar a los objetos simulados
- Eliminar atributos
- Los nombres de los objetos simulados y el atributo name
- Adjuntar objetos simulados como atributos
- Parcheadores
- MagicMock y el soporte de métodos mágicos
- Ayudantes
unittest.mock— primeros pasos- Usando mock
- Métodos de parcheo mock
- Mock de llamadas a métodos sobre un objeto
- Clases de Mock
- Nombrando tus mocks
- Siguiendo todas las llamadas
- Establecer valores de retorno y atributos
- Generar excepciones con mocks
- Funciones de efectos secundarios e iterables
- Iteradores asincrónicos de Mocking
- El gestor de contexto asincrónico de Mocking
- Creando un mock desde un objeto existente
- Uso de side_effect para devolver el contenido por archivo
- Decoradores de Parches
- Otros ejemplos
- Mocking de llamadas encadenadas
- Mocking parcial
- Mocking de un método generador
- Aplicar el mismo parche a cada método de prueba
- Mocking de métodos sin enlazar
- Comprobación de varias llamadas con mock
- Copiando con argumentos mutables
- Anidando parches
- Mocking a un diccionario usando MagickMock
- Mock de subclases y sus atributos
- Importaciones de Mocking con patch.dict
- Seguimiento del orden de las llamadas y de las aserciones de llamadas menos detalladas
- Coincidencia de argumentos más compleja
- Usando mock
- 2to3 — Traducción automática de código de Python 2 a 3
test— Paquete de pruebas de regresión para Pythontest.support— Utilidades para el conjunto de pruebas de PythonTestFailedResourceDeniedverboseis_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()match_test()set_match_tests()run_unittest()run_doctest()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_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()SuppressCrashReportSaveSignalsMatcher
test.support.socket_helper— Utilidades para pruebas de sockettest.support.script_helper—Utilidades para las pruebas de ejecución de Pythontest.support.bytecode_helper— Herramientas de apoyo para comprobar la correcta generación de bytecodetest.support.threading_helper— Utilidades para pruebas con hilostest.support.os_helper— Utilidades para pruebas de sistemas operativosFS_NONASCIISAVEDCWDTESTFNTESTFN_NONASCIITESTFN_UNENCODABLETESTFN_UNDECODABLETESTFN_UNICODEEnvironmentVarGuardFakePathcan_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— Utilidades para pruebas de importacióntest.support.warnings_helper— Utilidades para pruebas de advertencias