2025-02-03T16:58 2025-02-03T16:58 _loader.py::TestLoaders::test_choice_loader PASS: tests/test_loader.py::TestLoaders::test_function_loader PASS: tests/test_loader.py::TestLoaders::test_prefix_loader PASS: tests/test_loader.py::TestLoaders::test_caching PASS: tests/test_loader.py::TestLoaders::test_no_cache PASS: tests/test_loader.py::TestLoaders::test_limited_size_cache PASS: tests/test_loader.py::TestLoaders::test_cache_loader_change PASS: tests/test_loader.py::TestLoaders::test_dict_loader_cache_invalidates PASS: tests/test_loader.py::TestLoaders::test_split_template_path PASS: tests/test_loader.py::TestFileSystemLoader::test_searchpath_as_str PASS: tests/test_loader.py::TestFileSystemLoader::test_searchpath_as_pathlib PASS: tests/test_loader.py::TestFileSystemLoader::test_searchpath_as_list_including_pathlib PASS: tests/test_loader.py::TestFileSystemLoader::test_caches_template_based_on_mtime PASS: tests/test_loader.py::TestFileSystemLoader::test_uses_specified_encoding[utf-8-\u6587\u5b57\u5316\u3051] PASS: tests/test_loader.py::TestFileSystemLoader::test_uses_specified_encoding[iso-8859-1-\xe6\x96\x87\xe5\xad\x97\xe5\x8c\x96\xe3\x81\x91] PASS: tests/test_loader.py::TestFileSystemLoader::test_filename_normpath PASS: tests/test_loader.py::TestModuleLoader::test_log PASS: tests/test_loader.py::TestModuleLoader::test_deflated_zip_compile PASS: tests/test_loader.py::TestModuleLoader::test_stored_zip_compile PASS: tests/test_loader.py::TestModuleLoader::test_filesystem_compile PASS: tests/test_loader.py::TestModuleLoader::test_weak_references PASS: tests/test_loader.py::TestModuleLoader::test_choice_loader PASS: tests/test_loader.py::TestModuleLoader::test_prefix_loader PASS: tests/test_loader.py::TestModuleLoader::test_path_as_pathlib PASS: tests/test_loader.py::TestModuleLoader::test_supports_pathlib_in_list_of_paths PASS: tests/test_loader.py::test_package_dir_source[foo/test.html-FOO] PASS: tests/test_loader.py::test_package_dir_source[test.html-BAR] PASS: tests/test_loader.py::test_package_dir_list PASS: tests/test_loader.py::test_package_file_source[foo/test.html-FOO] PASS: tests/test_loader.py::test_package_file_source[test.html-BAR] PASS: tests/test_loader.py::test_package_file_list PASS: tests/test_loader.py::test_package_zip_source[foo/test.html-FOO] PASS: tests/test_loader.py::test_package_zip_source[test.html-BAR] PASS: tests/test_loader.py::test_package_zip_list PASS: tests/test_loader.py::test_package_zip_omit_curdir[] PASS: tests/test_loader.py::test_package_zip_omit_curdir[.] PASS: tests/test_loader.py::test_package_zip_omit_curdir[./] PASS: tests/test_loader.py::test_pep_451_import_hook PASS: tests/test_nativetypes.py::test_is_defined_native_return PASS: tests/test_nativetypes.py::test_undefined_native_return PASS: tests/test_nativetypes.py::test_adding_undefined_native_return PASS: tests/test_nativetypes.py::test_cast_int PASS: tests/test_nativetypes.py::test_list_add PASS: tests/test_nativetypes.py::test_multi_expression_add PASS: tests/test_nativetypes.py::test_loops PASS: tests/test_nativetypes.py::test_loops_with_ints PASS: tests/test_nativetypes.py::test_loop_look_alike PASS: tests/test_nativetypes.py::test_booleans[{{ value }}-True] PASS: tests/test_nativetypes.py::test_booleans[{{ value }}-False] PASS: tests/test_nativetypes.py::test_booleans[{{ 1 == 1 }}-True] PASS: tests/test_nativetypes.py::test_booleans[{{ 2 + 2 == 5 }}-False] PASS: tests/test_nativetypes.py::test_booleans[{{ None is none }}-True] PASS: tests/test_nativetypes.py::test_booleans[{{ '' == None }}-False] PASS: tests/test_nativetypes.py::test_variable_dunder PASS: tests/test_nativetypes.py::test_constant_dunder PASS: tests/test_nativetypes.py::test_constant_dunder_to_string PASS: tests/test_nativetypes.py::test_string_literal_var PASS: tests/test_nativetypes.py::test_string_top_level PASS: tests/test_nativetypes.py::test_tuple_of_variable_strings PASS: tests/test_nativetypes.py::test_concat_strings_with_quotes PASS: tests/test_nativetypes.py::test_no_intermediate_eval PASS: tests/test_nativetypes.py::test_spontaneous_env PASS: tests/test_nativetypes.py::test_leading_spaces PASS: tests/test_nativetypes.py::test_macro PASS: tests/test_nodes.py::test_template_hash PASS: tests/test_pickle.py::test_environment PASS: tests/test_regression.py::TestCorner::test_assigned_scoping PASS: tests/test_regression.py::TestCorner::test_closure_scoping PASS: tests/test_regression.py::TestBug::test_keyword_folding PASS: tests/test_regression.py::TestBug::test_extends_output_bugs PASS: tests/test_regression.py::TestBug::test_urlize_filter_escaping PASS: tests/test_regression.py::TestBug::test_urlize_filter_closing_punctuation PASS: tests/test_regression.py::TestBug::test_loop_call_loop PASS: tests/test_regression.py::TestBug::test_weird_inline_comment PASS: tests/test_regression.py::TestBug::test_old_macro_loop_scoping_bug PASS: tests/test_regression.py::TestBug::test_partial_conditional_assignments PASS: tests/test_regression.py::TestBug::test_stacked_locals_scoping_bug PASS: tests/test_regression.py::TestBug::test_stacked_locals_scoping_bug_twoframe PASS: tests/test_regression.py::TestBug::test_call_with_args PASS: tests/test_regression.py::TestBug::test_empty_if_condition_fails PASS: tests/test_regression.py::TestBug::test_recursive_loop_compile PASS: tests/test_regression.py::TestBug::test_else_loop_bug PASS: tests/test_regression.py::TestBug::test_correct_prefix_loader_name PASS: tests/test_regression.py::TestBug::test_pass_context_callable_class PASS: tests/test_regression.py::TestBug::test_block_set_with_extends PASS: tests/test_regression.py::TestBug::test_nested_for_else PASS: tests/test_regression.py::TestBug::test_macro_var_bug PASS: tests/test_regression.py::TestBug::test_macro_var_bug_advanced PASS: tests/test_regression.py::TestBug::test_callable_defaults PASS: tests/test_regression.py::TestBug::test_macro_escaping PASS: tests/test_regression.py::TestBug::test_macro_scoping PASS: tests/test_regression.py::TestBug::test_scopes_and_blocks PASS: tests/test_regression.py::TestBug::test_scopes_and_include PASS: tests/test_regression.py::TestBug::test_caller_scoping PASS: tests/test_regression.py::TestBug::test_variable_reuse PASS: tests/test_regression.py::TestBug::test_double_caller PASS: tests/test_regression.py::TestBug::test_double_caller_no_default PASS: tests/test_regression.py::TestBug::test_macro_blocks PASS: tests/test_regression.py::TestBug::test_scoped_block PASS: tests/test_regression.py::TestBug::test_recursive_loop_filter PASS: tests/test_regression.py::TestBug::test_empty_if PASS: tests/test_regression.py::TestBug::test_subproperty_if PASS: tests/test_regression.py::TestBug::test_set_and_include PASS: tests/test_regression.py::TestBug::test_loop_include PASS: tests/test_regression.py::TestBug::test_grouper_repr PASS: tests/test_regression.py::TestBug::test_custom_context PASS: tests/test_regression.py::TestBug::test_recursive_loop_bug PASS: tests/test_regression.py::TestBug::test_markup_and_chainable_undefined PASS: tests/test_regression.py::TestBug::test_scoped_block_loop_vars PASS: tests/test_regression.py::TestBug::test_pass_context_loop_vars PASS: tests/test_regression.py::TestBug::test_pass_context_scoped_loop_vars PASS: tests/test_regression.py::TestBug::test_pass_context_in_blocks PASS: tests/test_regression.py::TestBug::test_pass_context_block_and_loop PASS: tests/test_regression.py::TestBug::test_cached_extends[extends] PASS: tests/test_regression.py::TestBug::test_cached_extends[include] PASS: tests/test_regression.py::TestBug::test_nested_loop_scoping PASS: tests/test_regression.py::test_unicode_whitespace[\x0c] PASS: tests/test_regression.py::test_unicode_whitespace[\x85] PASS: tests/test_runtime.py::test_loop_idx PASS: tests/test_runtime.py::test_loop_idx0 PASS: tests/test_runtime.py::test_loopcontext0 PASS: tests/test_runtime.py::test_loopcontext1 PASS: tests/test_runtime.py::test_loopcontext2 PASS: tests/test_runtime.py::test_iterator_not_advanced_early PASS: tests/test_runtime.py::test_mock_not_pass_arg_marker PASS: tests/test_security.py::TestSandbox::test_unsafe PASS: tests/test_security.py::TestSandbox::test_immutable_environment PASS: tests/test_security.py::TestSandbox::test_restricted PASS: tests/test_security.py::TestSandbox::test_template_data PASS: tests/test_security.py::TestSandbox::test_attr_filter PASS: tests/test_security.py::TestSandbox::test_binary_operator_intercepting PASS: tests/test_security.py::TestSandbox::test_unary_operator_intercepting PASS: tests/test_security.py::TestStringFormat::test_basic_format_safety PASS: tests/test_security.py::TestStringFormat::test_basic_format_all_okay PASS: tests/test_security.py::TestStringFormat::test_safe_format_safety PASS: tests/test_security.py::TestStringFormat::test_safe_format_all_okay PASS: tests/test_security.py::TestStringFormat::test_empty_braces_format PASS: tests/test_security.py::TestStringFormatMap::test_basic_format_safety PASS: tests/test_security.py::TestStringFormatMap::test_basic_format_all_okay PASS: tests/test_security.py::TestStringFormatMap::test_safe_format_all_okay PASS: tests/test_tests.py::TestTestsCase::test_defined PASS: tests/test_tests.py::TestTestsCase::test_even PASS: tests/test_tests.py::TestTestsCase::test_odd PASS: tests/test_tests.py::TestTestsCase::test_lower PASS: tests/test_tests.py::TestTestsCase::test_types[none is none-True] PASS: tests/test_tests.py::TestTestsCase::test_types[false is none-False] PASS: tests/test_tests.py::TestTestsCase::test_types[true is none-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is none-False] PASS: tests/test_tests.py::TestTestsCase::test_types[none is true-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is true-False] PASS: tests/test_tests.py::TestTestsCase::test_types[true is true-True] PASS: tests/test_tests.py::TestTestsCase::test_types[0 is true-False] PASS: tests/test_tests.py::TestTestsCase::test_types[1 is true-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is true-False] PASS: tests/test_tests.py::TestTestsCase::test_types[none is false-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is false-True] PASS: tests/test_tests.py::TestTestsCase::test_types[true is false-False] PASS: tests/test_tests.py::TestTestsCase::test_types[0 is false-False] PASS: tests/test_tests.py::TestTestsCase::test_types[1 is false-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is false-False] PASS: tests/test_tests.py::TestTestsCase::test_types[none is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is boolean-True] PASS: tests/test_tests.py::TestTestsCase::test_types[true is boolean-True] PASS: tests/test_tests.py::TestTestsCase::test_types[0 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[1 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[0.0 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[1.0 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[3.14159 is boolean-False] PASS: tests/test_tests.py::TestTestsCase::test_types[none is integer-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is integer-False] PASS: tests/test_tests.py::TestTestsCase::test_types[true is integer-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is integer-True] PASS: tests/test_tests.py::TestTestsCase::test_types[3.14159 is integer-False] PASS: tests/test_tests.py::TestTestsCase::test_types[(10 ** 100) is integer-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is float-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is float-False] PASS: tests/test_tests.py::TestTestsCase::test_types[true is float-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is float-False] PASS: tests/test_tests.py::TestTestsCase::test_types[4.2 is float-True] PASS: tests/test_tests.py::TestTestsCase::test_types[(10 ** 100) is float-False] PASS: tests/test_tests.py::TestTestsCase::test_types[none is number-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[true is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[3.14159 is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[complex is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[(10 ** 100) is number-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is string-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is string-False] PASS: tests/test_tests.py::TestTestsCase::test_types[true is string-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is string-False] PASS: tests/test_tests.py::TestTestsCase::test_types["foo" is string-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is sequence-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is sequence-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is sequence-False] PASS: tests/test_tests.py::TestTestsCase::test_types["foo" is sequence-True] PASS: tests/test_tests.py::TestTestsCase::test_types[[] is sequence-True] PASS: tests/test_tests.py::TestTestsCase::test_types[[1, 2, 3] is sequence-True] PASS: tests/test_tests.py::TestTestsCase::test_types[{} is sequence-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is mapping-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is mapping-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is mapping-False] PASS: tests/test_tests.py::TestTestsCase::test_types["foo" is mapping-False] PASS: tests/test_tests.py::TestTestsCase::test_types[[] is mapping-False] PASS: tests/test_tests.py::TestTestsCase::test_types[{} is mapping-True] PASS: tests/test_tests.py::TestTestsCase::test_types[mydict is mapping-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is iterable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is iterable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is iterable-False] PASS: tests/test_tests.py::TestTestsCase::test_types["foo" is iterable-True] PASS: tests/test_tests.py::TestTestsCase::test_types[[] is iterable-True] PASS: tests/test_tests.py::TestTestsCase::test_types[{} is iterable-True] PASS: tests/test_tests.py::TestTestsCase::test_types[range(5) is iterable-True] PASS: tests/test_tests.py::TestTestsCase::test_types[none is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[false is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[42 is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types["foo" is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[[] is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[{} is callable-False] PASS: tests/test_tests.py::TestTestsCase::test_types[range is callable-True] PASS: tests/test_tests.py::TestTestsCase::test_upper PASS: tests/test_tests.py::TestTestsCase::test_equalto PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[eq 2-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[eq 3-False] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[ne 3-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[ne 2-False] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[lt 3-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[lt 2-False] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[le 2-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[le 1-False] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[gt 1-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[gt 2-False] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[ge 2-True] PASS: tests/test_tests.py::TestTestsCase::test_compare_aliases[ge 3-False] PASS: tests/test_tests.py::TestTestsCase::test_sameas PASS: tests/test_tests.py::TestTestsCase::test_no_paren_for_arg1 PASS: tests/test_tests.py::TestTestsCase::test_escaped PASS: tests/test_tests.py::TestTestsCase::test_greaterthan PASS: tests/test_tests.py::TestTestsCase::test_lessthan PASS: tests/test_tests.py::TestTestsCase::test_multiple_tests PASS: tests/test_tests.py::TestTestsCase::test_in PASS: tests/test_tests.py::test_name_undefined PASS: tests/test_tests.py::test_name_undefined_in_if PASS: tests/test_tests.py::test_is_filter PASS: tests/test_tests.py::test_is_test PASS: tests/test_utils.py::TestLRUCache::test_simple PASS: tests/test_utils.py::TestLRUCache::test_values PASS: tests/test_utils.py::TestLRUCache::test_values_empty PASS: tests/test_utils.py::TestLRUCache::test_pickleable PASS: tests/test_utils.py::TestLRUCache::test_copy[copy0] PASS: tests/test_utils.py::TestLRUCache::test_copy[copy1] PASS: tests/test_utils.py::TestLRUCache::test_clear PASS: tests/test_utils.py::TestLRUCache::test_repr PASS: tests/test_utils.py::TestLRUCache::test_items PASS: tests/test_utils.py::TestLRUCache::test_setdefault PASS: tests/test_utils.py::TestHelpers::test_object_type_repr PASS: tests/test_utils.py::TestHelpers::test_autoescape_select PASS: tests/test_utils.py::TestEscapeUrlizeTarget::test_escape_urlize_target PASS: tests/test_utils.py::TestLoremIpsum::test_lorem_ipsum_markup PASS: tests/test_utils.py::TestLoremIpsum::test_lorem_ipsum_html PASS: tests/test_utils.py::TestLoremIpsum::test_lorem_ipsum_n PASS: tests/test_utils.py::TestLoremIpsum::test_lorem_ipsum_min PASS: tests/test_utils.py::TestLoremIpsum::test_lorem_ipsum_max PASS: tests/test_utils.py::test_missing PASS: tests/test_utils.py::test_consume ============================= 851 passed in 3.69s ============================== ........................ ---------------------------------------------------------------------- Ran 24 tests in 0.006s OK DURATION: 0