2025-02-19T18:03 2025-02-19T18:03 ============================= test session starts ============================== platform linux -- Python 3.10.16, pytest-7.1.1, pluggy-1.0.0 rootdir: /usr/lib/python3-jinja2/ptest plugins: hypothesis-6.39.5, subtests-0.7.0 collected 851 items PASS: tests/test_api.py::TestExtendedAPI::test_item_and_attribute PASS: tests/test_api.py::TestExtendedAPI::test_finalize PASS: tests/test_api.py::TestExtendedAPI::test_finalize_constant_expression PASS: tests/test_api.py::TestExtendedAPI::test_no_finalize_template_data PASS: tests/test_api.py::TestExtendedAPI::test_context_finalize PASS: tests/test_api.py::TestExtendedAPI::test_eval_finalize PASS: tests/test_api.py::TestExtendedAPI::test_env_autoescape PASS: tests/test_api.py::TestExtendedAPI::test_cycler PASS: tests/test_api.py::TestExtendedAPI::test_expressions PASS: tests/test_api.py::TestExtendedAPI::test_template_passthrough PASS: tests/test_api.py::TestExtendedAPI::test_get_template_undefined PASS: tests/test_api.py::TestExtendedAPI::test_autoescape_autoselect PASS: tests/test_api.py::TestExtendedAPI::test_sandbox_max_range PASS: tests/test_api.py::TestMeta::test_find_undeclared_variables PASS: tests/test_api.py::TestMeta::test_find_refererenced_templates PASS: tests/test_api.py::TestMeta::test_find_included_templates PASS: tests/test_api.py::TestStreaming::test_basic_streaming PASS: tests/test_api.py::TestStreaming::test_buffered_streaming PASS: tests/test_api.py::TestStreaming::test_streaming_behavior PASS: tests/test_api.py::TestStreaming::test_dump_stream PASS: tests/test_api.py::TestUndefined::test_stopiteration_is_undefined PASS: tests/test_api.py::TestUndefined::test_undefined_and_special_attributes PASS: tests/test_api.py::TestUndefined::test_undefined_attribute_error PASS: tests/test_api.py::TestUndefined::test_logging_undefined PASS: tests/test_api.py::TestUndefined::test_default_undefined PASS: tests/test_api.py::TestUndefined::test_chainable_undefined PASS: tests/test_api.py::TestUndefined::test_debug_undefined PASS: tests/test_api.py::TestUndefined::test_strict_undefined PASS: tests/test_api.py::TestUndefined::test_indexing_gives_undefined PASS: tests/test_api.py::TestUndefined::test_none_gives_proper_error PASS: tests/test_api.py::TestUndefined::test_object_repr PASS: tests/test_api.py::TestLowLevel::test_custom_code_generator PASS: tests/test_api.py::TestLowLevel::test_custom_context PASS: tests/test_async.py::test_basic_async PASS: tests/test_async.py::test_await_on_calls PASS: tests/test_async.py::test_await_on_calls_normal_render PASS: tests/test_async.py::test_await_and_macros PASS: tests/test_async.py::test_async_blocks PASS: tests/test_async.py::test_async_generate PASS: tests/test_async.py::test_async_iteration_in_templates PASS: tests/test_async.py::test_async_iteration_in_templates_extended PASS: tests/test_async.py::TestAsyncImports::test_context_imports PASS: tests/test_async.py::TestAsyncImports::test_trailing_comma PASS: tests/test_async.py::TestAsyncImports::test_exports PASS: tests/test_async.py::TestAsyncImports::test_import_with_globals PASS: tests/test_async.py::TestAsyncImports::test_import_with_globals_override PASS: tests/test_async.py::TestAsyncImports::test_from_import_with_globals PASS: tests/test_async.py::TestAsyncIncludes::test_context_include PASS: tests/test_async.py::TestAsyncIncludes::test_choice_includes PASS: tests/test_async.py::TestAsyncIncludes::test_include_ignoring_missing PASS: tests/test_async.py::TestAsyncIncludes::test_context_include_with_overrides PASS: tests/test_async.py::TestAsyncIncludes::test_unoptimized_scopes PASS: tests/test_async.py::TestAsyncIncludes::test_unoptimized_scopes_autoescape PASS: tests/test_async.py::TestAsyncForLoop::test_simple PASS: tests/test_async.py::TestAsyncForLoop::test_else PASS: tests/test_async.py::TestAsyncForLoop::test_empty_blocks PASS: tests/test_async.py::TestAsyncForLoop::test_context_vars[0] PASS: tests/test_async.py::TestAsyncForLoop::test_context_vars[iter] PASS: tests/test_async.py::TestAsyncForLoop::test_context_vars[reversed] PASS: tests/test_async.py::TestAsyncForLoop::test_context_vars[1] PASS: tests/test_async.py::TestAsyncForLoop::test_context_vars[auto_aiter] PASS: tests/test_async.py::TestAsyncForLoop::test_cycling PASS: tests/test_async.py::TestAsyncForLoop::test_lookaround PASS: tests/test_async.py::TestAsyncForLoop::test_changed PASS: tests/test_async.py::TestAsyncForLoop::test_scope PASS: tests/test_async.py::TestAsyncForLoop::test_varlen PASS: tests/test_async.py::TestAsyncForLoop::test_noniter PASS: tests/test_async.py::TestAsyncForLoop::test_recursive PASS: tests/test_async.py::TestAsyncForLoop::test_recursive_lookaround PASS: tests/test_async.py::TestAsyncForLoop::test_recursive_depth0 PASS: tests/test_async.py::TestAsyncForLoop::test_recursive_depth PASS: tests/test_async.py::TestAsyncForLoop::test_looploop PASS: tests/test_async.py::TestAsyncForLoop::test_reversed_bug tests/test_async.py::TestAsyncForLoop::test_loop_errors -------------------------------- live log call --------------------------------- ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> PASS: PASS: tests/test_async.py::TestAsyncForLoop::test_loop_filter PASS: tests/test_async.py::TestAsyncForLoop::test_scoped_special_var PASS: tests/test_async.py::TestAsyncForLoop::test_scoped_loop_var PASS: tests/test_async.py::TestAsyncForLoop::test_recursive_empty_loop_iter PASS: tests/test_async.py::TestAsyncForLoop::test_call_in_loop PASS: tests/test_async.py::TestAsyncForLoop::test_scoping_bug PASS: tests/test_async.py::TestAsyncForLoop::test_unpacking PASS: tests/test_async.py::TestAsyncForLoop::test_recursive_loop_filter PASS: tests/test_async.py::TestAsyncForLoop::test_nonrecursive_loop_filter PASS: tests/test_async.py::TestAsyncForLoop::test_bare_async PASS: tests/test_async.py::TestAsyncForLoop::test_awaitable_property_slicing PASS: tests/test_async.py::test_namespace_awaitable PASS: tests/test_async.py::test_chainable_undefined_aiter PASS: tests/test_async.py::test_native_async PASS: tests/test_async.py::test_native_list_async PASS: tests/test_async.py::test_getitem_after_filter PASS: tests/test_async.py::test_getitem_after_call tests/test_async_filters.py::test_first[0] -------------------------------- live log call --------------------------------- ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> PASS: tests/test_async_filters.py::test_first[1] -------------------------------- live log call --------------------------------- ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> PASS: PASS: tests/test_async_filters.py::test_groupby[0] PASS: tests/test_async_filters.py::test_groupby[1] PASS: tests/test_async_filters.py::test_groupby_case[False-a: 1, 3\nb: 2\n] PASS: tests/test_async_filters.py::test_groupby_case[True-A: 3\na: 1\nb: 2\n] PASS: tests/test_async_filters.py::test_groupby_tuple_index[0] PASS: tests/test_async_filters.py::test_groupby_tuple_index[1] PASS: tests/test_async_filters.py::test_groupby_multidot[0] PASS: tests/test_async_filters.py::test_groupby_multidot[1] PASS: tests/test_async_filters.py::test_join_env_int[0] PASS: tests/test_async_filters.py::test_join_env_int[1] PASS: tests/test_async_filters.py::test_join_string_list[0] PASS: tests/test_async_filters.py::test_join_string_list[1] PASS: tests/test_async_filters.py::test_join_attribute[0] PASS: tests/test_async_filters.py::test_join_attribute[1] PASS: tests/test_async_filters.py::test_simple_reject[0] PASS: tests/test_async_filters.py::test_simple_reject[1] PASS: tests/test_async_filters.py::test_bool_reject[0] PASS: tests/test_async_filters.py::test_bool_reject[1] PASS: tests/test_async_filters.py::test_simple_select[0] PASS: tests/test_async_filters.py::test_simple_select[1] PASS: tests/test_async_filters.py::test_bool_select[0] PASS: tests/test_async_filters.py::test_bool_select[1] PASS: tests/test_async_filters.py::test_simple_select_attr[0] PASS: tests/test_async_filters.py::test_simple_select_attr[1] PASS: tests/test_async_filters.py::test_simple_map[0] PASS: tests/test_async_filters.py::test_simple_map[1] PASS: tests/test_async_filters.py::test_map_sum PASS: tests/test_async_filters.py::test_attribute_map[0] PASS: tests/test_async_filters.py::test_attribute_map[1] PASS: tests/test_async_filters.py::test_empty_map PASS: tests/test_async_filters.py::test_sum[0] PASS: tests/test_async_filters.py::test_sum[1] PASS: tests/test_async_filters.py::test_sum_attributes[0] PASS: tests/test_async_filters.py::test_sum_attributes[1] PASS: tests/test_async_filters.py::test_sum_attributes_nested PASS: tests/test_async_filters.py::test_sum_attributes_tuple PASS: tests/test_async_filters.py::test_slice[0] PASS: tests/test_async_filters.py::test_slice[1] PASS: tests/test_async_filters.py::test_custom_async_filter tests/test_async_filters.py::test_custom_async_iteratable_filter[0] -------------------------------- live log call --------------------------------- ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> PASS: tests/test_async_filters.py::test_custom_async_iteratable_filter[1] -------------------------------- live log call --------------------------------- ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> ERROR asyncio:base_events.py:1758 Task was destroyed but it is pending! task: ()>> PASS: PASS: tests/test_bytecode_cache.py::TestByteCodeCache::test_simple PASS: tests/test_bytecode_cache.py::TestMemcachedBytecodeCache::test_dump_load PASS: tests/test_bytecode_cache.py::TestMemcachedBytecodeCache::test_exception PASS: tests/test_compile.py::test_filters_deterministic PASS: tests/test_compile.py::test_import_as_with_context_deterministic PASS: tests/test_core_tags.py::TestForLoop::test_simple PASS: tests/test_core_tags.py::TestForLoop::test_else PASS: tests/test_core_tags.py::TestForLoop::test_else_scoping_item PASS: tests/test_core_tags.py::TestForLoop::test_empty_blocks PASS: tests/test_core_tags.py::TestForLoop::test_context_vars PASS: tests/test_core_tags.py::TestForLoop::test_cycling PASS: tests/test_core_tags.py::TestForLoop::test_lookaround PASS: tests/test_core_tags.py::TestForLoop::test_changed PASS: tests/test_core_tags.py::TestForLoop::test_scope PASS: tests/test_core_tags.py::TestForLoop::test_varlen PASS: tests/test_core_tags.py::TestForLoop::test_noniter PASS: tests/test_core_tags.py::TestForLoop::test_recursive PASS: tests/test_core_tags.py::TestForLoop::test_recursive_lookaround PASS: tests/test_core_tags.py::TestForLoop::test_recursive_depth0 PASS: tests/test_core_tags.py::TestForLoop::test_recursive_depth PASS: tests/test_core_tags.py::TestForLoop::test_looploop PASS: tests/test_core_tags.py::TestForLoop::test_reversed_bug PASS: tests/test_core_tags.py::TestForLoop::test_loop_errors PASS: tests/test_core_tags.py::TestForLoop::test_loop_filter PASS: tests/test_core_tags.py::TestForLoop::test_loop_unassignable PASS: tests/test_core_tags.py::TestForLoop::test_scoped_special_var PASS: tests/test_core_tags.py::TestForLoop::test_scoped_loop_var PASS: tests/test_core_tags.py::TestForLoop::test_recursive_empty_loop_iter PASS: tests/test_core_tags.py::TestForLoop::test_call_in_loop PASS: tests/test_core_tags.py::TestForLoop::test_scoping_bug PASS: tests/test_core_tags.py::TestForLoop::test_unpacking PASS: tests/test_core_tags.py::TestForLoop::test_intended_scoping_with_set PASS: tests/test_core_tags.py::TestIfCondition::test_simple PASS: tests/test_core_tags.py::TestIfCondition::test_elif PASS: tests/test_core_tags.py::TestIfCondition::test_elif_deep PASS: tests/test_core_tags.py::TestIfCondition::test_else PASS: tests/test_core_tags.py::TestIfCondition::test_empty PASS: tests/test_core_tags.py::TestIfCondition::test_complete PASS: tests/test_core_tags.py::TestIfCondition::test_no_scope PASS: tests/test_core_tags.py::TestMacros::test_simple PASS: tests/test_core_tags.py::TestMacros::test_scoping PASS: tests/test_core_tags.py::TestMacros::test_arguments PASS: tests/test_core_tags.py::TestMacros::test_arguments_defaults_nonsense PASS: tests/test_core_tags.py::TestMacros::test_caller_defaults_nonsense PASS: tests/test_core_tags.py::TestMacros::test_varargs PASS: tests/test_core_tags.py::TestMacros::test_simple_call PASS: tests/test_core_tags.py::TestMacros::test_complex_call PASS: tests/test_core_tags.py::TestMacros::test_caller_undefined PASS: tests/test_core_tags.py::TestMacros::test_include PASS: tests/test_core_tags.py::TestMacros::test_macro_api PASS: tests/test_core_tags.py::TestMacros::test_callself PASS: tests/test_core_tags.py::TestMacros::test_macro_defaults_self_ref PASS: tests/test_core_tags.py::TestSet::test_normal PASS: tests/test_core_tags.py::TestSet::test_block PASS: tests/test_core_tags.py::TestSet::test_block_escaping PASS: tests/test_core_tags.py::TestSet::test_set_invalid PASS: tests/test_core_tags.py::TestSet::test_namespace_redefined PASS: tests/test_core_tags.py::TestSet::test_namespace PASS: tests/test_core_tags.py::TestSet::test_namespace_block PASS: tests/test_core_tags.py::TestSet::test_init_namespace PASS: tests/test_core_tags.py::TestSet::test_namespace_loop PASS: tests/test_core_tags.py::TestSet::test_namespace_macro PASS: tests/test_core_tags.py::TestSet::test_block_escaping_filtered PASS: tests/test_core_tags.py::TestSet::test_block_filtered PASS: tests/test_core_tags.py::TestSet::test_block_filtered_set PASS: tests/test_core_tags.py::TestWith::test_with PASS: tests/test_core_tags.py::TestWith::test_with_argument_scoping PASS: tests/test_debug.py::TestDebug::test_runtime_error PASS: tests/test_debug.py::TestDebug::test_syntax_error PASS: tests/test_debug.py::TestDebug::test_regular_syntax_error PASS: tests/test_debug.py::TestDebug::test_pickleable_syntax_error PASS: tests/test_debug.py::TestDebug::test_include_syntax_error_source PASS: tests/test_debug.py::TestDebug::test_local_extraction PASS: tests/test_debug.py::TestDebug::test_get_corresponding_lineno_traceback PASS: tests/test_ext.py::TestExtensions::test_extend_late PASS: tests/test_ext.py::TestExtensions::test_loop_controls PASS: tests/test_ext.py::TestExtensions::test_do PASS: tests/test_ext.py::TestExtensions::test_extension_nodes PASS: tests/test_ext.py::TestExtensions::test_contextreference_node_passes_context PASS: tests/test_ext.py::TestExtensions::test_contextreference_node_can_pass_locals PASS: tests/test_ext.py::TestExtensions::test_identifier PASS: tests/test_ext.py::TestExtensions::test_rebinding PASS: tests/test_ext.py::TestExtensions::test_preprocessor_extension PASS: tests/test_ext.py::TestExtensions::test_streamfilter_extension PASS: tests/test_ext.py::TestExtensions::test_extension_ordering PASS: tests/test_ext.py::TestExtensions::test_debug PASS: tests/test_ext.py::TestInternationalization::test_trans PASS: tests/test_ext.py::TestInternationalization::test_trans_plural PASS: tests/test_ext.py::TestInternationalization::test_trans_plural_with_functions PASS: tests/test_ext.py::TestInternationalization::test_complex_plural PASS: tests/test_ext.py::TestInternationalization::test_trans_stringformatting PASS: tests/test_ext.py::TestInternationalization::test_trimmed PASS: tests/test_ext.py::TestInternationalization::test_trimmed_policy PASS: tests/test_ext.py::TestInternationalization::test_trimmed_policy_override PASS: tests/test_ext.py::TestInternationalization::test_trimmed_vars PASS: tests/test_ext.py::TestInternationalization::test_trimmed_varname_trimmed PASS: tests/test_ext.py::TestInternationalization::test_extract PASS: tests/test_ext.py::TestInternationalization::test_extract_trimmed PASS: tests/test_ext.py::TestInternationalization::test_extract_trimmed_option PASS: tests/test_ext.py::TestInternationalization::test_comment_extract PASS: tests/test_ext.py::TestInternationalization::test_extract_context PASS: tests/test_ext.py::TestInternationalization::test_nested_trans_error PASS: tests/test_ext.py::TestInternationalization::test_trans_block_error PASS: tests/test_ext.py::TestScope::test_basic_scope_behavior PASS: tests/test_ext.py::TestNewstyleInternationalization::test_trans PASS: tests/test_ext.py::TestNewstyleInternationalization::test_trans_plural PASS: tests/test_ext.py::TestNewstyleInternationalization::test_complex_plural PASS: tests/test_ext.py::TestNewstyleInternationalization::test_trans_stringformatting PASS: tests/test_ext.py::TestNewstyleInternationalization::test_newstyle_plural PASS: tests/test_ext.py::TestNewstyleInternationalization::test_autoescape_support PASS: tests/test_ext.py::TestNewstyleInternationalization::test_autoescape_macros PASS: tests/test_ext.py::TestNewstyleInternationalization::test_num_used_twice PASS: tests/test_ext.py::TestNewstyleInternationalization::test_num_called_num PASS: tests/test_ext.py::TestNewstyleInternationalization::test_trans_vars PASS: tests/test_ext.py::TestNewstyleInternationalization::test_novars_vars_escaping PASS: tests/test_ext.py::TestNewstyleInternationalization::test_context PASS: tests/test_ext.py::TestNewstyleInternationalization::test_context_plural PASS: tests/test_ext.py::TestNewstyleInternationalization::test_context_block PASS: tests/test_ext.py::TestNewstyleInternationalization::test_context_plural_block PASS: tests/test_ext.py::TestAutoEscape::test_scoped_setting PASS: tests/test_ext.py::TestAutoEscape::test_nonvolatile PASS: tests/test_ext.py::TestAutoEscape::test_volatile PASS: tests/test_ext.py::TestAutoEscape::test_scoping PASS: tests/test_ext.py::TestAutoEscape::test_volatile_scoping PASS: tests/test_ext.py::TestAutoEscape::test_overlay_scopes PASS: tests/test_filters.py::TestFilter::test_filter_calling PASS: tests/test_filters.py::TestFilter::test_capitalize PASS: tests/test_filters.py::TestFilter::test_center PASS: tests/test_filters.py::TestFilter::test_default PASS: tests/test_filters.py::TestFilter::test_dictsort[-[('aa', 0), ('AB', 3), ('b', 1), ('c', 2)]] PASS: tests/test_filters.py::TestFilter::test_dictsort[true-[('AB', 3), ('aa', 0), ('b', 1), ('c', 2)]] PASS: tests/test_filters.py::TestFilter::test_dictsort[by="value"-[('aa', 0), ('b', 1), ('c', 2), ('AB', 3)]] PASS: tests/test_filters.py::TestFilter::test_dictsort[reverse=true-[('c', 2), ('b', 1), ('AB', 3), ('aa', 0)]] PASS: tests/test_filters.py::TestFilter::test_batch PASS: tests/test_filters.py::TestFilter::test_slice PASS: tests/test_filters.py::TestFilter::test_escape PASS: tests/test_filters.py::TestFilter::test_trim[None-..stays..] PASS: tests/test_filters.py::TestFilter::test_trim[.- ..stays] PASS: tests/test_filters.py::TestFilter::test_trim[ .-stays] PASS: tests/test_filters.py::TestFilter::test_striptags PASS: tests/test_filters.py::TestFilter::test_filesizeformat PASS: tests/test_filters.py::TestFilter::test_filesizeformat_issue59 PASS: tests/test_filters.py::TestFilter::test_first PASS: tests/test_filters.py::TestFilter::test_float[42-42.0] PASS: tests/test_filters.py::TestFilter::test_float[abc-0.0] PASS: tests/test_filters.py::TestFilter::test_float[32.32-32.32] PASS: tests/test_filters.py::TestFilter::test_float_default PASS: tests/test_filters.py::TestFilter::test_format PASS: tests/test_filters.py::TestFilter::test_indent PASS: tests/test_filters.py::TestFilter::test_indent_markup_input PASS: tests/test_filters.py::TestFilter::test_indent_width_string PASS: tests/test_filters.py::TestFilter::test_int[42-42] PASS: tests/test_filters.py::TestFilter::test_int[abc-0] PASS: tests/test_filters.py::TestFilter::test_int[32.32-32] PASS: tests/test_filters.py::TestFilter::test_int[12345678901234567890-12345678901234567890] PASS: tests/test_filters.py::TestFilter::test_int_base[0x4d32-16-19762] PASS: tests/test_filters.py::TestFilter::test_int_base[011-8-9] PASS: tests/test_filters.py::TestFilter::test_int_base[0x33Z-16-0] PASS: tests/test_filters.py::TestFilter::test_int_default PASS: tests/test_filters.py::TestFilter::test_int_special_method PASS: tests/test_filters.py::TestFilter::test_join PASS: tests/test_filters.py::TestFilter::test_join_attribute PASS: tests/test_filters.py::TestFilter::test_last PASS: tests/test_filters.py::TestFilter::test_length PASS: tests/test_filters.py::TestFilter::test_lower PASS: tests/test_filters.py::TestFilter::test_items PASS: tests/test_filters.py::TestFilter::test_items_undefined PASS: tests/test_filters.py::TestFilter::test_pprint PASS: tests/test_filters.py::TestFilter::test_random PASS: tests/test_filters.py::TestFilter::test_reverse PASS: tests/test_filters.py::TestFilter::test_string PASS: tests/test_filters.py::TestFilter::test_title PASS: tests/test_filters.py::TestFilter::test_truncate PASS: tests/test_filters.py::TestFilter::test_truncate_very_short PASS: tests/test_filters.py::TestFilter::test_truncate_end_length PASS: tests/test_filters.py::TestFilter::test_upper PASS: tests/test_filters.py::TestFilter::test_urlize PASS: tests/test_filters.py::TestFilter::test_urlize_rel_policy PASS: tests/test_filters.py::TestFilter::test_urlize_target_parameter PASS: tests/test_filters.py::TestFilter::test_urlize_extra_schemes_parameter PASS: tests/test_filters.py::TestFilter::test_wordcount PASS: tests/test_filters.py::TestFilter::test_block PASS: tests/test_filters.py::TestFilter::test_chaining PASS: tests/test_filters.py::TestFilter::test_sum PASS: tests/test_filters.py::TestFilter::test_sum_attributes PASS: tests/test_filters.py::TestFilter::test_sum_attributes_nested PASS: tests/test_filters.py::TestFilter::test_sum_attributes_tuple PASS: tests/test_filters.py::TestFilter::test_abs PASS: tests/test_filters.py::TestFilter::test_round_positive PASS: tests/test_filters.py::TestFilter::test_round_negative PASS: tests/test_filters.py::TestFilter::test_xmlattr PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[\t] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[\n] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[\x0c] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[ ] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[/] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[>] PASS: tests/test_filters.py::TestFilter::test_xmlattr_key_invalid[=] PASS: tests/test_filters.py::TestFilter::test_sort1 PASS: tests/test_filters.py::TestFilter::test_sort2 PASS: tests/test_filters.py::TestFilter::test_sort3 PASS: tests/test_filters.py::TestFilter::test_sort4 PASS: tests/test_filters.py::TestFilter::test_sort5 PASS: tests/test_filters.py::TestFilter::test_sort6 PASS: tests/test_filters.py::TestFilter::test_sort7 PASS: tests/test_filters.py::TestFilter::test_sort8 PASS: tests/test_filters.py::TestFilter::test_unique PASS: tests/test_filters.py::TestFilter::test_unique_case_sensitive PASS: tests/test_filters.py::TestFilter::test_unique_attribute PASS: tests/test_filters.py::TestFilter::test_min_max[{{ ["a", "B"]|min }}-a] PASS: tests/test_filters.py::TestFilter::test_min_max[{{ ["a", "B"]|min(case_sensitive=true) }}-B] PASS: tests/test_filters.py::TestFilter::test_min_max[{{ []|min }}-] PASS: tests/test_filters.py::TestFilter::test_min_max[{{ ["a", "B"]|max }}-B] PASS: tests/test_filters.py::TestFilter::test_min_max[{{ ["a", "B"]|max(case_sensitive=true) }}-a] PASS: tests/test_filters.py::TestFilter::test_min_max[{{ []|max }}-] PASS: tests/test_filters.py::TestFilter::test_min_max_attribute[min-1] PASS: tests/test_filters.py::TestFilter::test_min_max_attribute[max-9] PASS: tests/test_filters.py::TestFilter::test_groupby PASS: tests/test_filters.py::TestFilter::test_groupby_tuple_index PASS: tests/test_filters.py::TestFilter::test_groupby_multidot PASS: tests/test_filters.py::TestFilter::test_groupby_default PASS: tests/test_filters.py::TestFilter::test_groupby_case[False-a: 1, 3\nb: 2\n] PASS: tests/test_filters.py::TestFilter::test_groupby_case[True-A: 3\na: 1\nb: 2\n] PASS: tests/test_filters.py::TestFilter::test_filtertag PASS: tests/test_filters.py::TestFilter::test_replace PASS: tests/test_filters.py::TestFilter::test_forceescape PASS: tests/test_filters.py::TestFilter::test_safe PASS: tests/test_filters.py::TestFilter::test_urlencode[Hello, world!-Hello%2C%20world%21] PASS: tests/test_filters.py::TestFilter::test_urlencode[Hello, world\u203d-Hello%2C%20world%E2%80%BD] PASS: tests/test_filters.py::TestFilter::test_urlencode[value2-f=1] PASS: tests/test_filters.py::TestFilter::test_urlencode[value3-f=1&z=2] PASS: tests/test_filters.py::TestFilter::test_urlencode[value4-%E2%80%BD=1] PASS: tests/test_filters.py::TestFilter::test_urlencode[value5-0=1] PASS: tests/test_filters.py::TestFilter::test_urlencode[value6-a+b%2Fc=a+b%2Fc] PASS: tests/test_filters.py::TestFilter::test_urlencode[a b/c-a%20b/c] PASS: tests/test_filters.py::TestFilter::test_simple_map PASS: tests/test_filters.py::TestFilter::test_map_sum PASS: tests/test_filters.py::TestFilter::test_attribute_map PASS: tests/test_filters.py::TestFilter::test_empty_map PASS: tests/test_filters.py::TestFilter::test_map_default PASS: tests/test_filters.py::TestFilter::test_simple_select PASS: tests/test_filters.py::TestFilter::test_bool_select PASS: tests/test_filters.py::TestFilter::test_simple_reject PASS: tests/test_filters.py::TestFilter::test_bool_reject PASS: tests/test_filters.py::TestFilter::test_simple_select_attr PASS: tests/test_filters.py::TestFilter::test_simple_reject_attr PASS: tests/test_filters.py::TestFilter::test_func_select_attr PASS: tests/test_filters.py::TestFilter::test_func_reject_attr PASS: tests/test_filters.py::TestFilter::test_json_dump PASS: tests/test_filters.py::TestFilter::test_wordwrap PASS: tests/test_filters.py::TestFilter::test_filter_undefined PASS: tests/test_filters.py::TestFilter::test_filter_undefined_in_if PASS: tests/test_filters.py::TestFilter::test_filter_undefined_in_elif PASS: tests/test_filters.py::TestFilter::test_filter_undefined_in_else PASS: tests/test_filters.py::TestFilter::test_filter_undefined_in_nested_if PASS: tests/test_filters.py::TestFilter::test_filter_undefined_in_condexpr PASS: tests/test_idtracking.py::test_basics PASS: tests/test_idtracking.py::test_complex PASS: tests/test_idtracking.py::test_if_branching_stores PASS: tests/test_idtracking.py::test_if_branching_stores_undefined PASS: tests/test_idtracking.py::test_if_branching_multi_scope PASS: tests/test_imports.py::TestImports::test_context_imports PASS: tests/test_imports.py::TestImports::test_import_needs_name PASS: tests/test_imports.py::TestImports::test_no_trailing_comma PASS: tests/test_imports.py::TestImports::test_trailing_comma_with_context PASS: tests/test_imports.py::TestImports::test_exports PASS: tests/test_imports.py::TestImports::test_not_exported PASS: tests/test_imports.py::TestImports::test_import_with_globals PASS: tests/test_imports.py::TestImports::test_import_with_globals_override PASS: tests/test_imports.py::TestImports::test_from_import_with_globals PASS: tests/test_imports.py::TestIncludes::test_context_include PASS: tests/test_imports.py::TestIncludes::test_choice_includes PASS: tests/test_imports.py::TestIncludes::test_include_ignoring_missing PASS: tests/test_imports.py::TestIncludes::test_context_include_with_overrides PASS: tests/test_imports.py::TestIncludes::test_unoptimized_scopes PASS: tests/test_imports.py::TestIncludes::test_import_from_with_context PASS: tests/test_inheritance.py::TestInheritance::test_layout PASS: tests/test_inheritance.py::TestInheritance::test_level1 PASS: tests/test_inheritance.py::TestInheritance::test_level2 PASS: tests/test_inheritance.py::TestInheritance::test_level3 PASS: tests/test_inheritance.py::TestInheritance::test_level4 PASS: tests/test_inheritance.py::TestInheritance::test_super PASS: tests/test_inheritance.py::TestInheritance::test_working PASS: tests/test_inheritance.py::TestInheritance::test_reuse_blocks PASS: tests/test_inheritance.py::TestInheritance::test_preserve_blocks PASS: tests/test_inheritance.py::TestInheritance::test_dynamic_inheritance PASS: tests/test_inheritance.py::TestInheritance::test_multi_inheritance PASS: tests/test_inheritance.py::TestInheritance::test_scoped_block PASS: tests/test_inheritance.py::TestInheritance::test_super_in_scoped_block PASS: tests/test_inheritance.py::TestInheritance::test_scoped_block_after_inheritance PASS: tests/test_inheritance.py::TestInheritance::test_level1_required PASS: tests/test_inheritance.py::TestInheritance::test_level2_required PASS: tests/test_inheritance.py::TestInheritance::test_level3_required PASS: tests/test_inheritance.py::TestInheritance::test_invalid_required PASS: tests/test_inheritance.py::TestInheritance::test_required_with_scope PASS: tests/test_inheritance.py::TestInheritance::test_duplicate_required_or_scoped PASS: tests/test_inheritance.py::TestBugFix::test_fixed_macro_scoping_bug PASS: tests/test_inheritance.py::TestBugFix::test_double_extends PASS: tests/test_lexnparse.py::TestTokenStream::test_simple PASS: tests/test_lexnparse.py::TestTokenStream::test_iter PASS: tests/test_lexnparse.py::TestLexer::test_raw1 PASS: tests/test_lexnparse.py::TestLexer::test_raw2 PASS: tests/test_lexnparse.py::TestLexer::test_raw3 PASS: tests/test_lexnparse.py::TestLexer::test_raw4 PASS: tests/test_lexnparse.py::TestLexer::test_balancing PASS: tests/test_lexnparse.py::TestLexer::test_comments PASS: tests/test_lexnparse.py::TestLexer::test_string_escapes PASS: tests/test_lexnparse.py::TestLexer::test_bytefallback PASS: tests/test_lexnparse.py::TestLexer::test_operators PASS: tests/test_lexnparse.py::TestLexer::test_normalizing PASS: tests/test_lexnparse.py::TestLexer::test_trailing_newline PASS: tests/test_lexnparse.py::TestLexer::test_name[foo-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[f\xf6\xf6-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[\u304d-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[_-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[1a-False] PASS: tests/test_lexnparse.py::TestLexer::test_name[a--False] PASS: tests/test_lexnparse.py::TestLexer::test_name[\U0001f40da-False] PASS: tests/test_lexnparse.py::TestLexer::test_name[a\U0001f40d\U0001f40d-False] PASS: tests/test_lexnparse.py::TestLexer::test_name[\u1885-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[\u1886-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[\u2118-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[\u212e-True] PASS: tests/test_lexnparse.py::TestLexer::test_name[\xb7-False] PASS: tests/test_lexnparse.py::TestLexer::test_name[a\xb7-True] PASS: tests/test_lexnparse.py::TestLexer::test_lineno_with_strip PASS: tests/test_lexnparse.py::TestParser::test_php_syntax PASS: tests/test_lexnparse.py::TestParser::test_erb_syntax PASS: tests/test_lexnparse.py::TestParser::test_comment_syntax PASS: tests/test_lexnparse.py::TestParser::test_balancing PASS: tests/test_lexnparse.py::TestParser::test_start_comment PASS: tests/test_lexnparse.py::TestParser::test_line_syntax PASS: tests/test_lexnparse.py::TestParser::test_line_syntax_priority PASS: tests/test_lexnparse.py::TestParser::test_error_messages PASS: tests/test_lexnparse.py::TestSyntax::test_call PASS: tests/test_lexnparse.py::TestSyntax::test_slicing PASS: tests/test_lexnparse.py::TestSyntax::test_attr PASS: tests/test_lexnparse.py::TestSyntax::test_subscript PASS: tests/test_lexnparse.py::TestSyntax::test_tuple PASS: tests/test_lexnparse.py::TestSyntax::test_math PASS: tests/test_lexnparse.py::TestSyntax::test_div PASS: tests/test_lexnparse.py::TestSyntax::test_unary PASS: tests/test_lexnparse.py::TestSyntax::test_concat PASS: tests/test_lexnparse.py::TestSyntax::test_compare[1->-0] PASS: tests/test_lexnparse.py::TestSyntax::test_compare[1->=-1] PASS: tests/test_lexnparse.py::TestSyntax::test_compare[2-<-3] PASS: tests/test_lexnparse.py::TestSyntax::test_compare[3-<=-4] PASS: tests/test_lexnparse.py::TestSyntax::test_compare[4-==-4] PASS: tests/test_lexnparse.py::TestSyntax::test_compare[4-!=-5] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_parens PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ 4 < 2 < 3 }}-False] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ a < b < c }}-False] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ 4 > 2 > 3 }}-False] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ a > b > c }}-False] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ 4 > 2 < 3 }}-True] PASS: tests/test_lexnparse.py::TestSyntax::test_compare_compound[{{ a > b < c }}-True] PASS: tests/test_lexnparse.py::TestSyntax::test_inop PASS: tests/test_lexnparse.py::TestSyntax::test_collection_literal[[]] PASS: tests/test_lexnparse.py::TestSyntax::test_collection_literal[{}] PASS: tests/test_lexnparse.py::TestSyntax::test_collection_literal[()] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[1-1] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[123-123] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[12_34_56-123456] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[1.2-1.2] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[34.56-34.56] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[3_4.5_6-34.56] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[1e0-1.0] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[10e1-100.0] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[2.5e100-2.5e+100] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[2.5e+100-2.5e+100] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[25.6e-10-2.56e-09] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[1_2.3_4e5_6-1.234e+57] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0-0] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0_00-0] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0b1001_1111-159] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0o123-83] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0o1_23-83] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0x123abc-1194684] PASS: tests/test_lexnparse.py::TestSyntax::test_numeric_literal[0x12_3abc-1194684] PASS: tests/test_lexnparse.py::TestSyntax::test_bool PASS: tests/test_lexnparse.py::TestSyntax::test_grouping PASS: tests/test_lexnparse.py::TestSyntax::test_django_attr PASS: tests/test_lexnparse.py::TestSyntax::test_conditional_expression PASS: tests/test_lexnparse.py::TestSyntax::test_short_conditional_expression PASS: tests/test_lexnparse.py::TestSyntax::test_filter_priority PASS: tests/test_lexnparse.py::TestSyntax::test_function_calls PASS: tests/test_lexnparse.py::TestSyntax::test_tuple_expr PASS: tests/test_lexnparse.py::TestSyntax::test_trailing_comma PASS: tests/test_lexnparse.py::TestSyntax::test_block_end_name PASS: tests/test_lexnparse.py::TestSyntax::test_constant_casing PASS: tests/test_lexnparse.py::TestSyntax::test_test_chaining PASS: tests/test_lexnparse.py::TestSyntax::test_string_concatenation PASS: tests/test_lexnparse.py::TestSyntax::test_notin PASS: tests/test_lexnparse.py::TestSyntax::test_operator_precedence PASS: tests/test_lexnparse.py::TestSyntax::test_implicit_subscribed_tuple PASS: tests/test_lexnparse.py::TestSyntax::test_raw2 PASS: tests/test_lexnparse.py::TestSyntax::test_const PASS: tests/test_lexnparse.py::TestSyntax::test_neg_filter_priority PASS: tests/test_lexnparse.py::TestSyntax::test_const_assign PASS: tests/test_lexnparse.py::TestSyntax::test_localset PASS: tests/test_lexnparse.py::TestSyntax::test_parse_unary PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim PASS: tests/test_lexnparse.py::TestLstripBlocks::test_no_lstrip PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_blocks_false_with_no_lstrip PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_endline PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_inline PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_nested PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_left_chars PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_embeded_strings PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_preserve_leading_newlines PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_comment PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_angle_bracket_simple PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_angle_bracket_comment PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_angle_bracket PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_angle_bracket_compact PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_blocks_outside_with_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_outside_with_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_blocks_inside_with_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_inside_with_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_blocks_without_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_without_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_blocks_consume_after_without_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_consume_before_without_new_line PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_comment PASS: tests/test_lexnparse.py::TestLstripBlocks::test_lstrip_trim_blocks_raw PASS: tests/test_lexnparse.py::TestLstripBlocks::test_php_syntax_with_manual PASS: tests/test_lexnparse.py::TestLstripBlocks::test_php_syntax PASS: tests/test_lexnparse.py::TestLstripBlocks::test_php_syntax_compact PASS: tests/test_lexnparse.py::TestLstripBlocks::test_erb_syntax PASS: tests/test_lexnparse.py::TestLstripBlocks::test_erb_syntax_with_manual PASS: tests/test_lexnparse.py::TestLstripBlocks::test_erb_syntax_no_lstrip PASS: tests/test_lexnparse.py::TestLstripBlocks::test_comment_syntax PASS: tests/test_lexnparse.py::TestTrimBlocks::test_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_no_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_no_trim_outer PASS: tests/test_lexnparse.py::TestTrimBlocks::test_lstrip_no_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_trim_blocks_false_with_no_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_trim_nested PASS: tests/test_lexnparse.py::TestTrimBlocks::test_no_trim_nested PASS: tests/test_lexnparse.py::TestTrimBlocks::test_comment_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_comment_no_trim PASS: tests/test_lexnparse.py::TestTrimBlocks::test_multiple_comment_trim_lstrip PASS: tests/test_lexnparse.py::TestTrimBlocks::test_multiple_comment_no_trim_lstrip PASS: tests/test_lexnparse.py::TestTrimBlocks::test_raw_trim_lstrip PASS: tests/test_lexnparse.py::TestTrimBlocks::test_raw_no_trim_lstrip PASS: tests/test_lexnparse.py::TestTrimBlocks::test_no_trim_angle_bracket PASS: tests/test_lexnparse.py::TestTrimBlocks::test_no_trim_php_syntax PASS: tests/test_loader.py::TestLoaders::test_dict_loader PASS: tests/test_loader.py::TestLoaders::test_package_loader PASS: tests/test_loader.py::TestLoaders::test_filesystem_loader_overlapping_names PASS: tests/test_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.98s ============================== DURATION: 4