Coverage report: 99%

Files Functions Classes

coverage.py v7.13.5, created at 2026-05-03 21:23 +0000

File function   statements missing excluded   coverage
tdom / __init__.py (no function)   3 0 0   100%
tdom / callables.py CallableInfo.from_callable   24 0 0   100%
tdom / callables.py CallableInfo.supports_zero_args   1 0 0   100%
tdom / callables.py get_callable_info   1 0 0   100%
tdom / callables.py (no function)   18 0 0   100%
tdom / callables_test.py callable_zero_args   0 0 1   100%
tdom / callables_test.py test_zero_args   7 0 0   100%
tdom / callables_test.py callable_positional   0 0 1   100%
tdom / callables_test.py test_positional   7 0 0   100%
tdom / callables_test.py callable_positional_only   0 0 1   100%
tdom / callables_test.py test_positional_only   7 0 0   100%
tdom / callables_test.py callable_positional_only_default   0 0 1   100%
tdom / callables_test.py test_positional_only_default   7 0 0   100%
tdom / callables_test.py callable_kwargs   0 0 1   100%
tdom / callables_test.py test_kwargs   7 0 0   100%
tdom / callables_test.py callable_mixed   0 0 1   100%
tdom / callables_test.py test_mixed   7 0 0   100%
tdom / callables_test.py callable_positional_with_defaults   0 0 1   100%
tdom / callables_test.py test_positional_with_defaults   7 0 0   100%
tdom / callables_test.py callable_keyword_only   0 0 1   100%
tdom / callables_test.py test_keyword_only   7 0 0   100%
tdom / callables_test.py callable_var_positional   0 0 1   100%
tdom / callables_test.py test_var_positional   7 0 0   100%
tdom / callables_test.py callable_all_types   0 0 1   100%
tdom / callables_test.py test_all_types   7 0 0   100%
tdom / callables_test.py (no function)   12 0 18   100%
tdom / escaping.py escape_html_comment   16 0 0   100%
tdom / escaping.py escape_html_style   5 0 0   100%
tdom / escaping.py escape_html_script   5 0 0   100%
tdom / escaping.py (no function)   11 0 0   100%
tdom / escaping_test.py test_escape_html_text   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_empty   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_no_special   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_starts_with_gt   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_starts_with_dash_gt   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_contains_special_strings   3 0 0   100%
tdom / escaping_test.py test_escape_html_comment_ends_with_lt_dash   1 0 0   100%
tdom / escaping_test.py test_escape_html_comment_markup   6 0 0   100%
tdom / escaping_test.py test_escape_html_style   3 0 0   100%
tdom / escaping_test.py test_escape_html_style_markup   6 0 0   100%
tdom / escaping_test.py test_escape_html_script   5 0 0   100%
tdom / escaping_test.py test_escape_html_script_markup   6 0 0   100%
tdom / escaping_test.py (no function)   14 0 0   100%
tdom / format.py convert   0 0 1   100%
tdom / format.py convert   0 0 1   100%
tdom / format.py convert   7 0 0   100%
tdom / format.py _matcher_matches   1 0 0   100%
tdom / format.py _format_interpolation   7 0 0   100%
tdom / format.py format_interpolation   1 0 0   100%
tdom / format.py format_template   6 0 0   100%
tdom / format.py (no function)   15 0 6   100%
tdom / format_test.py Convertible.__str__   1 0 0   100%
tdom / format_test.py Convertible.__repr__   1 0 0   100%
tdom / format_test.py test_convert_none   2 0 0   100%
tdom / format_test.py test_convert_a   3 0 0   100%
tdom / format_test.py test_convert_r   2 0 0   100%
tdom / format_test.py test_convert_s   2 0 0   100%
tdom / format_test.py test_format_interpolation_no_formatting   3 0 0   100%
tdom / format_test.py test_format_interpolation_a   3 0 0   100%
tdom / format_test.py test_format_interpolation_r   3 0 0   100%
tdom / format_test.py test_format_interpolation_s   3 0 0   100%
tdom / format_test.py test_format_interpolation_default_formatting   3 0 0   100%
tdom / format_test.py test_format_interpolation_custom_formatter_match_exact   4 0 0   100%
tdom / format_test.py test_format_interpolation_custom_formatter_match_exact.formatter   1 0 0   100%
tdom / format_test.py test_format_interpolation_custom_formatter_match_predicate   5 0 0   100%
tdom / format_test.py test_format_interpolation_custom_formatter_match_predicate.matcher   1 0 0   100%
tdom / format_test.py test_format_interpolation_custom_formatter_match_predicate.formatter   1 0 0   100%
tdom / format_test.py test_format_template   3 0 0   100%
tdom / format_test.py (no function)   17 0 0   100%
tdom / htmlspec.py (no function)   7 0 0   100%
tdom / parser.py SourceTracker.interpolations   1 0 0   100%
tdom / parser.py SourceTracker.advance_interpolation   2 0 0   100%
tdom / parser.py SourceTracker.get_expression   2 0 0   100%
tdom / parser.py SourceTracker.format_starttag   1 0 0   100%
tdom / parser.py TemplateParser.__init__   1 0 0   100%
tdom / parser.py TemplateParser.get_parent   1 0 0   100%
tdom / parser.py TemplateParser.append_child   2 0 0   100%
tdom / parser.py TemplateParser.make_tattr   14 0 0   100%
tdom / parser.py TemplateParser.make_tattrs   1 0 0   100%
tdom / parser.py TemplateParser.make_open_tag   7 0 0   100%
tdom / parser.py TemplateParser.finalize_tag   7 0 0   100%
tdom / parser.py TemplateParser.validate_end_tag   17 1 0   94%
tdom / parser.py TemplateParser.handle_starttag   5 0 0   100%
tdom / parser.py TemplateParser.handle_startendtag   3 0 0   100%
tdom / parser.py TemplateParser.handle_endtag   6 0 0   100%
tdom / parser.py TemplateParser.handle_data   5 0 0   100%
tdom / parser.py TemplateParser.handle_comment   3 0 0   100%
tdom / parser.py TemplateParser.handle_decl   8 0 0   100%
tdom / parser.py TemplateParser.reset   5 0 0   100%
tdom / parser.py TemplateParser.close   5 1 0   80%
tdom / parser.py TemplateParser.get_tnode   5 0 0   100%
tdom / parser.py TemplateParser.feed_str   1 0 0   100%
tdom / parser.py TemplateParser.feed_interpolation   2 0 0   100%
tdom / parser.py TemplateParser.feed_template   7 0 0   100%
tdom / parser.py TemplateParser.parse   4 0 0   100%
tdom / parser.py (no function)   51 0 0   100%
tdom / parser_test.py test_parse_mixed_literal_content   2 0 0   100%
tdom / parser_test.py test_parse_empty   2 0 0   100%
tdom / parser_test.py test_parse_text   2 0 0   100%
tdom / parser_test.py test_parse_text_multiline   2 0 0   100%
tdom / parser_test.py test_parse_text_with_entities   2 0 0   100%
tdom / parser_test.py test_parse_text_with_template_singleton   3 0 0   100%
tdom / parser_test.py test_parse_text_with_template   3 0 0   100%
tdom / parser_test.py test_parse_void_element   2 0 0   100%
tdom / parser_test.py test_parse_void_element_self_closed   2 0 0   100%
tdom / parser_test.py test_parse_uppercase_void_element   2 0 0   100%
tdom / parser_test.py test_parse_standard_element_with_text   2 0 0   100%
tdom / parser_test.py test_parse_nested_elements   2 0 0   100%
tdom / parser_test.py test_parse_element_with_template   3 0 0   100%
tdom / parser_test.py test_parse_element_with_template_singleton   3 0 0   100%
tdom / parser_test.py test_parse_multiple_voids   2 0 0   100%
tdom / parser_test.py test_parse_text_entities   2 0 0   100%
tdom / parser_test.py test_parse_script_tag_content   2 0 0   100%
tdom / parser_test.py test_parse_script_with_entities   2 0 0   100%
tdom / parser_test.py test_parse_textarea_tag_content   2 0 0   100%
tdom / parser_test.py test_parse_textarea_with_entities   2 0 0   100%
tdom / parser_test.py test_parse_title_unusual   2 0 0   100%
tdom / parser_test.py test_parse_mismatched_tags   2 0 0   100%
tdom / parser_test.py test_parse_unclosed_tag   2 0 0   100%
tdom / parser_test.py test_parse_unexpected_closing_tag   2 0 0   100%
tdom / parser_test.py test_self_closing_tags   2 0 0   100%
tdom / parser_test.py test_nested_self_closing_tags   4 0 0   100%
tdom / parser_test.py test_self_closing_tags_unexpected_closing_tag   2 0 0   100%
tdom / parser_test.py test_self_closing_void_tags_unexpected_closing_tag   2 0 0   100%
tdom / parser_test.py test_literal_attrs   2 0 0   100%
tdom / parser_test.py test_literal_attr_entities   2 0 0   100%
tdom / parser_test.py test_literal_attr_order   3 0 0   100%
tdom / parser_test.py test_interpolated_attr   4 0 0   100%
tdom / parser_test.py test_templated_attr   6 0 0   100%
tdom / parser_test.py test_spread_attr   3 0 0   100%
tdom / parser_test.py test_templated_attribute_name_error   3 0 0   100%
tdom / parser_test.py test_templated_attribute_name_and_value_error   4 0 0   100%
tdom / parser_test.py test_adjacent_spread_attrs_error   4 0 0   100%
tdom / parser_test.py test_parse_comment   2 0 0   100%
tdom / parser_test.py test_parse_comment_interpolation   3 0 0   100%
tdom / parser_test.py test_parse_doctype   2 0 0   100%
tdom / parser_test.py test_parse_doctype_interpolation_error   3 0 0   100%
tdom / parser_test.py test_unsupported_decl_error   4 0 0   100%
tdom / parser_test.py test_component_element_with_children   3 0 0   100%
tdom / parser_test.py test_component_element_with_children.Component   1 1 0   0%
tdom / parser_test.py test_component_element_self_closing   3 0 0   100%
tdom / parser_test.py test_component_element_self_closing.Component   1 1 0   0%
tdom / parser_test.py test_component_element_with_closing_tag   3 0 0   100%
tdom / parser_test.py test_component_element_with_closing_tag.Component   1 1 0   0%
tdom / parser_test.py test_component_element_special_case_mismatched_closing_tag_still_parses   4 0 0   100%
tdom / parser_test.py test_component_element_special_case_mismatched_closing_tag_still_parses.Component1   1 1 0   0%
tdom / parser_test.py test_component_element_special_case_mismatched_closing_tag_still_parses.Component2   1 1 0   0%
tdom / parser_test.py test_component_element_invalid_closing_tag   3 0 0   100%
tdom / parser_test.py test_component_element_invalid_closing_tag.Component   1 1 0   0%
tdom / parser_test.py test_component_element_invalid_opening_tag   3 0 0   100%
tdom / parser_test.py test_component_element_invalid_opening_tag.Component   1 1 0   0%
tdom / parser_test.py test_adjacent_start_component_tag_error   3 0 0   100%
tdom / parser_test.py test_adjacent_start_component_tag_error.Component   1 1 0   0%
tdom / parser_test.py test_adjacent_end_component_tag_error   3 0 0   100%
tdom / parser_test.py test_adjacent_end_component_tag_error.Component   1 1 0   0%
tdom / parser_test.py test_placeholder_collision_avoidance   6 0 0   100%
tdom / parser_test.py (no function)   56 0 0   100%
tdom / placeholders.py make_placeholder_config   3 0 0   100%
tdom / placeholders.py PlaceholderConfig.make_placeholder   1 0 0   100%
tdom / placeholders.py PlaceholderConfig.match_placeholders   1 0 0   100%
tdom / placeholders.py PlaceholderConfig.find_placeholders   13 0 0   100%
tdom / placeholders.py PlaceholderState.is_empty   1 0 0   100%
tdom / placeholders.py PlaceholderState.add_placeholder   3 0 0   100%
tdom / placeholders.py PlaceholderState.remove_placeholders   6 0 0   100%
tdom / placeholders.py (no function)   20 0 0   100%
tdom / placeholders_test.py test_make_placeholder   3 0 0   100%
tdom / placeholders_test.py test_match_placeholders   8 0 0   100%
tdom / placeholders_test.py test_find_placeholders   9 0 0   100%
tdom / placeholders_test.py test_placeholder_state   15 0 0   100%
tdom / placeholders_test.py (no function)   6 0 0   100%
tdom / processor.py _format_safe   2 0 0   100%
tdom / processor.py _format_unsafe   2 0 0   100%
tdom / processor.py _format_callback   2 0 0   100%
tdom / processor.py format_interpolation   1 0 0   100%
tdom / processor.py _expand_aria_attr   12 0 0   100%
tdom / processor.py _expand_data_attr   8 0 0   100%
tdom / processor.py _substitute_spread_attrs   5 0 0   100%
tdom / processor.py parse_style_attribute_value   9 0 0   100%
tdom / processor.py make_style_accumulator   8 2 0   75%
tdom / processor.py StyleAccumulator.merge_value   9 0 0   100%
tdom / processor.py StyleAccumulator.to_value   2 0 0   100%
tdom / processor.py make_class_accumulator   8 2 0   75%
tdom / processor.py ClassAccumulator.merge_value   15 0 0   100%
tdom / processor.py ClassAccumulator.to_value   2 0 0   100%
tdom / processor.py _resolve_t_attrs   49 2 0   96%
tdom / processor.py _resolve_html_attrs   8 0 0   100%
tdom / processor.py _kebab_to_snake   1 0 0   100%
tdom / processor.py _prep_component_kwargs   17 0 0   100%
tdom / processor.py serialize_html_attrs   1 0 0   100%
tdom / processor.py _fix_svg_attrs   2 0 0   100%
tdom / processor.py ProcessContext.copy   1 0 0   100%
tdom / processor.py ITemplateParserProxy.to_tnode   0 0 1   100%
tdom / processor.py TemplateParserProxy.to_tnode   1 0 0   100%
tdom / processor.py CachedTemplateParserProxy._to_tnode   1 0 0   100%
tdom / processor.py CachedTemplateParserProxy.to_tnode   1 0 0   100%
tdom / processor.py IComponentProcessor.process   0 0 1   100%
tdom / processor.py ComponentProcessor.process   12 0 0   100%
tdom / processor.py ITemplateProcessor.process   0 0 1   100%
tdom / processor.py TemplateProcessor.process   1 0 0   100%
tdom / processor.py TemplateProcessor._process_template   2 0 0   100%
tdom / processor.py TemplateProcessor._process_tnode   15 2 0   87%
tdom / processor.py TemplateProcessor._process_document_type   5 1 0   80%
tdom / processor.py TemplateProcessor._process_fragment   1 0 0   100%
tdom / processor.py TemplateProcessor._process_texts   5 0 0   100%
tdom / processor.py TemplateProcessor._process_comment   3 0 0   100%
tdom / processor.py TemplateProcessor._process_element   22 0 0   100%
tdom / processor.py TemplateProcessor._process_attrs   7 0 0   100%
tdom / processor.py TemplateProcessor._extract_component_template   6 0 0   100%
tdom / processor.py TemplateProcessor._process_component   4 0 0   100%
tdom / processor.py TemplateProcessor._process_raw_texts   7 1 0   86%
tdom / processor.py TemplateProcessor._process_escapable_raw_texts   3 0 0   100%
tdom / processor.py TemplateProcessor._process_normal_texts   1 0 0   100%
tdom / processor.py TemplateProcessor._process_normal_text   3 0 0   100%
tdom / processor.py TemplateProcessor._process_normal_text_from_value   11 0 0   100%
tdom / processor.py resolve_text_without_recursion   33 0 0   100%
tdom / processor.py extract_embedded_template   11 0 0   100%
tdom / processor.py _make_default_template_processor   1 0 0   100%
tdom / processor.py html   3 0 0   100%
tdom / processor.py svg   3 0 0   100%
tdom / processor.py (no function)   106 0 6   100%
tdom / processor_extension_test.py TestComponentProcessor.Body.__call__   1 0 0   100%
tdom / processor_extension_test.py TestComponentProcessor.Header.__call__   1 0 0   100%
tdom / processor_extension_test.py TestComponentProcessor.AppStateComponentProcessor.process   3 0 0   100%
tdom / processor_extension_test.py TestComponentProcessor._make_html   5 0 0   100%
tdom / processor_extension_test.py TestComponentProcessor._make_html._html   4 0 0   100%
tdom / processor_extension_test.py TestComponentProcessor.test_injected_app_state   6 0 0   100%
tdom / processor_extension_test.py (no function)   22 0 0   100%
tdom / processor_test.py make_ctx   1 0 0   100%
tdom / processor_test.py html   3 0 0   100%
tdom / processor_test.py TestBareTemplate.test_empty   1 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_literal   1 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_singleton   6 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_singleton_without_parent   4 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_singleton_explicit_parent_script   4 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_singleton_explicit_parent_div   4 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_template   2 0 0   100%
tdom / processor_test.py TestBareTemplate.test_text_template_escaping   2 0 0   100%
tdom / processor_test.py TestBareTemplate.test_parse_entities_are_escaped_no_parent_tag   2 0 0   100%
tdom / processor_test.py LiteralHTML.__init__   1 0 0   100%
tdom / processor_test.py LiteralHTML.__html__   1 0 0   100%
tdom / processor_test.py test_literal_html_has_html_dunder   1 0 0   100%
tdom / processor_test.py test_markup_has_html_dunder   1 0 0   100%
tdom / processor_test.py TestComment.test_literal   1 0 0   100%
tdom / processor_test.py TestComment.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestComment.test_singleton_object   1 0 0   100%
tdom / processor_test.py TestComment.test_singleton_none   1 0 0   100%
tdom / processor_test.py TestComment.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestComment.test_singleton_has_html_dunder   2 0 0   100%
tdom / processor_test.py TestComment.test_singleton_escaping   2 0 0   100%
tdom / processor_test.py TestComment.test_templated_str   2 0 0   100%
tdom / processor_test.py TestComment.test_templated_object   1 0 0   100%
tdom / processor_test.py TestComment.test_templated_none   1 0 0   100%
tdom / processor_test.py TestComment.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestComment.test_templated_has_html_dunder_error   7 0 0   100%
tdom / processor_test.py TestComment.test_templated_multiple_interpolations   2 0 0   100%
tdom / processor_test.py TestComment.test_templated_escaping   2 0 0   100%
tdom / processor_test.py TestComment.test_not_supported__recursive_template_error   3 0 0   100%
tdom / processor_test.py TestComment.test_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestDocumentType.test_literal   1 0 0   100%
tdom / processor_test.py TestDocumentType.test_literal_lowercase   2 0 0   100%
tdom / processor_test.py TestVoidElementLiteral.test_void   1 0 0   100%
tdom / processor_test.py TestVoidElementLiteral.test_void_self_closed   1 0 0   100%
tdom / processor_test.py TestVoidElementLiteral.test_void_mixed_closing   1 0 0   100%
tdom / processor_test.py TestVoidElementLiteral.test_chain_of_void_elements   1 0 0   100%
tdom / processor_test.py TestNormalTextElementLiteral.test_empty   1 0 0   100%
tdom / processor_test.py TestNormalTextElementLiteral.test_with_text   1 0 0   100%
tdom / processor_test.py TestNormalTextElementLiteral.test_nested_elements   1 0 0   100%
tdom / processor_test.py TestNormalTextElementLiteral.test_entities_are_escaped   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_None   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_object   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_has_html_dunder   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_simple_template   3 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_simple_iterable   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_singleton_escaping   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_None   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_str   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_object   1 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_has_html_dunder   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_simple_template   3 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_simple_iterable   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_escaping   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_templated_escaping_in_literals   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_iterable_of_templates   2 0 0   100%
tdom / processor_test.py TestNormalTextElementDynamic.test_iterable_of_templates_of_iterable_of_templates   5 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_script_empty   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_style_empty   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_script_with_content   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_style_with_content   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_script_with_content_escaped_in_normal_text   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_style_with_content_escaped_in_normal_text   1 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestRawTextElementLiteral.test_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_title_empty   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_textarea_empty   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_title_with_content   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_textarea_with_content   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_title_with_escapable_content   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextElementLiteral.test_textarea_with_escapable_content   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_none   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_object   2 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_has_html_dunder_pitfall   2 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_singleton_escaping   5 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_none   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_str   2 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_object   2 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_has_html_dunder   3 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_escaping   5 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_templated_multiple_interpolations   1 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestRawTextScriptDynamic.test_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_none   1 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_object   2 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_has_html_dunder_pitfall   2 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_singleton_escaping   5 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_none   1 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_str   2 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_object   2 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_has_html_dunder   3 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_escaping   5 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_templated_multiple_interpolations   1 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_exact_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_inexact_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_exact_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestRawTextStyleDynamic.test_inexact_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_none   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_object   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_has_html_dunder_pitfall   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_singleton_escaping   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_none   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_str   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_object   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_has_html_dunder   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_escaping   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_templated_multiple_interpolations   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_exact_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_exact_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_inexact_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTitleDynamic.test_inexact_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_none   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_str   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_bool   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_object   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_has_html_dunder_pitfall   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_singleton_escaping   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_none   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_str   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_bool   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_object   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_has_html_dunder   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_multiple_interpolations   1 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_templated_escaping   2 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_not_supported_recursive_template_error   3 0 0   100%
tdom / processor_test.py TestEscapableRawTextTextareaDynamic.test_not_supported_recursive_iterable_error   3 0 0   100%
tdom / processor_test.py Convertible.__str__   1 0 0   100%
tdom / processor_test.py Convertible.__repr__   1 0 0   100%
tdom / processor_test.py test_convertible_fixture   3 0 0   100%
tdom / processor_test.py wrap_template_in_tags   3 0 0   100%
tdom / processor_test.py wrap_text_in_tags   4 0 0   100%
tdom / processor_test.py TestInterpolationConversion.test_str   3 0 0   100%
tdom / processor_test.py TestInterpolationConversion.test_repr   3 0 0   100%
tdom / processor_test.py TestInterpolationConversion.test_ascii_raw_text   1 0 0   100%
tdom / processor_test.py TestInterpolationConversion.test_ascii_escapable_normal_and_raw   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_normal_text_safe   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_raw_text_safe   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_escapable_raw_text_safe   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_normal_text_unsafe   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_raw_text_unsafe   3 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_escapable_raw_text_unsafe   2 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_all_text_callback   3 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_all_text_callback.get_value   1 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_callback_nonzero_callable_error   5 0 0   100%
tdom / processor_test.py TestInterpolationFormatSpec.test_callback_nonzero_callable_error.add   1 0 0   100%
tdom / processor_test.py TestUsagePatterns.test_conditional_rendering_with_if_else   6 0 0   100%
tdom / processor_test.py TestLiteralAttribute.test_literal_attrs   1 0 0   100%
tdom / processor_test.py TestLiteralAttribute.test_literal_attr_escaped   1 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr_escaped   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr_unquoted   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr_true   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr_false   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolated_attr_none   2 0 0   100%
tdom / processor_test.py TestInterpolatedAttribute.test_interpolate_attr_empty_string   1 0 0   100%
tdom / processor_test.py TestSpreadAttribute.test_spread_attr   2 0 0   100%
tdom / processor_test.py TestSpreadAttribute.test_spread_attr_none   2 0 0   100%
tdom / processor_test.py TestSpreadAttribute.test_spread_attr_type_errors   3 0 0   100%
tdom / processor_test.py TestTemplatedAttribute.test_templated_attr_mixed_interpolations_start_end_and_nest   5 0 0   100%
tdom / processor_test.py TestTemplatedAttribute.test_templated_attr_no_quotes   3 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_disjoint_interpolated_attr_spread_attr   3 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_overlapping_spread_attrs   3 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_replace_literal_attr_str_str   1 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_replace_literal_attr_str_true   1 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_replace_literal_attr_true_str   1 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_remove_literal_attr_str_none   1 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_remove_literal_attr_true_none   1 0 0   100%
tdom / processor_test.py TestAttributeMerging.test_attr_merge_other_literal_attr_intact   1 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_interpolated_data_attributes   2 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_toggle_to_str   2 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_toggle_to_true   2 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_unrelated_unaffected   2 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_templated_error   4 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_none   3 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_attr_errors   3 0 0   100%
tdom / processor_test.py TestSpecialDataAttribute.test_data_literal_attr_bypass   2 0 0   100%
tdom / processor_test.py TestSpecialAriaAttribute.test_aria_templated_attr_error   4 0 0   100%
tdom / processor_test.py TestSpecialAriaAttribute.test_aria_interpolated_attr_dict   3 0 0   100%
tdom / processor_test.py TestSpecialAriaAttribute.test_aria_interpolate_attr_none   3 0 0   100%
tdom / processor_test.py TestSpecialAriaAttribute.test_aria_attr_errors   3 0 0   100%
tdom / processor_test.py TestSpecialAriaAttribute.test_aria_literal_attr_bypass   2 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_interpolated_class_attribute   10 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_interpolated_class_attribute_with_multiple_placeholders   4 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_interpolated_attribute_spread_with_class_attribute   3 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_class_literal_attr_bypass   2 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_class_none_ignored   5 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_class_type_errors   5 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_class_merge_literals   2 0 0   100%
tdom / processor_test.py TestSpecialClassAttribute.test_class_merge_literal_then_interpolation   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_literal_attr_passthru   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_in_interpolated_attr   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_in_templated_attr   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_in_spread_attr   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_merged_from_all_attrs   5 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_override_left_to_right   7 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_interpolated_style_attribute_multiple_placeholders   4 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_interpolated_style_attribute_merged   4 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_interpolated_style_attribute_merged_override   4 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_attribute_str   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_attribute_non_str_non_dict   3 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_literal_attr_bypass   2 0 0   100%
tdom / processor_test.py TestSpecialStyleAttribute.test_style_none   3 0 0   100%
tdom / processor_test.py TestPrepComponentKwargs.test_named   5 0 0   100%
tdom / processor_test.py TestPrepComponentKwargs.test_named.InputElement   1 1 0   0%
tdom / processor_test.py TestPrepComponentKwargs.test_unused_kwargs   4 4 0   0%
tdom / processor_test.py TestPrepComponentKwargs.test_unused_kwargs.InputElement   1 1 0   0%
tdom / processor_test.py TestPrepComponentKwargs.test_accepts_children   10 0 0   100%
tdom / processor_test.py TestPrepComponentKwargs.test_accepts_children.DivWrapper   1 1 0   0%
tdom / processor_test.py TestPrepComponentKwargs.test_no_children   5 0 0   100%
tdom / processor_test.py TestPrepComponentKwargs.test_no_children.SpanMaker   1 1 0   0%
tdom / processor_test.py TestFunctionComponent.FunctionComponent   5 0 0   100%
tdom / processor_test.py TestFunctionComponent.test_with_children   2 0 0   100%
tdom / processor_test.py TestFunctionComponent.test_with_no_children   2 0 0   100%
tdom / processor_test.py TestFunctionComponent.test_missing_props_error   2 0 0   100%
tdom / processor_test.py TestFunctionComponentNoChildren.FunctionComponentNoChildren   5 0 0   100%
tdom / processor_test.py TestFunctionComponentNoChildren.test_interpolated_template_component_ignore_children   2 0 0   100%
tdom / processor_test.py TestFunctionComponentKeywordArgs.FunctionComponentKeywordArgs   5 0 0   100%
tdom / processor_test.py TestFunctionComponentKeywordArgs.test_children_always_passed_via_kwargs   2 0 0   100%
tdom / processor_test.py TestFunctionComponentKeywordArgs.test_children_always_passed_via_kwargs_even_when_empty   2 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.ColumnsComponent   1 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.test_fragment_from_component   2 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.test_component_passed_as_attr_value   3 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.test_component_passed_as_attr_value.Wrapper   1 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.test_nested_component_gh23   3 0 0   100%
tdom / processor_test.py TestComponentSpecialUsage.test_nested_component_gh23.Header   1 0 0   100%
tdom / processor_test.py TestClassComponent.ClassComponent.__call__   1 0 0   100%
tdom / processor_test.py TestClassComponent.test_class_component_implicit_invocation_with_children   2 0 0   100%
tdom / processor_test.py TestClassComponent.test_class_component_direct_invocation   3 0 0   100%
tdom / processor_test.py TestClassComponent.ClassComponentNoChildren.__call__   1 0 0   100%
tdom / processor_test.py TestClassComponent.test_implicit_invocation_ignore_children   2 0 0   100%
tdom / processor_test.py test_attribute_type_component   10 0 0   100%
tdom / processor_test.py test_attribute_type_component.AttributeTypeComponent   11 0 0   100%
tdom / processor_test.py TestComponentErrors.test_component_non_callable_fails   2 0 0   100%
tdom / processor_test.py TestComponentErrors.test_component_requiring_positional_arg_fails   2 0 1   100%
tdom / processor_test.py TestComponentErrors.test_component_requiring_positional_arg_fails.RequiresPositional   0 0 1   100%
tdom / processor_test.py TestComponentErrors.test_mismatched_component_closing_tag_fails   4 0 0   100%
tdom / processor_test.py TestComponentErrors.test_mismatched_component_closing_tag_fails.OpenTag   1 1 0   0%
tdom / processor_test.py TestComponentErrors.test_mismatched_component_closing_tag_fails.CloseTag   1 1 0   0%
tdom / processor_test.py TestComponentErrors.test_function_component_returns_nontemplate_fails   3 0 0   100%
tdom / processor_test.py TestComponentErrors.test_function_component_returns_nontemplate_fails.BadFunctionComp   1 0 0   100%
tdom / processor_test.py TestComponentErrors.test_component_object_returns_nontemplate_fails   3 0 0   100%
tdom / processor_test.py TestComponentErrors.test_component_object_returns_nontemplate_fails.BadFactoryComp   2 0 0   100%
tdom / processor_test.py TestComponentErrors.test_component_object_returns_nontemplate_fails.BadFactoryComp.component_object   1 0 0   100%
tdom / processor_test.py test_integration_basic   10 0 0   100%
tdom / processor_test.py test_integration_basic.WrapperComponent   1 0 0   100%
tdom / processor_test.py struct_repr   1 1 0   0%
tdom / processor_test.py test_process_template_internal_cache   27 0 0   100%
tdom / processor_test.py test_repeat_calls   6 0 0   100%
tdom / processor_test.py test_repeat_calls.get_sample_t   1 0 0   100%
tdom / processor_test.py get_select_t_with_list   1 0 0   100%
tdom / processor_test.py get_select_t_with_generator   1 0 0   100%
tdom / processor_test.py get_select_t_with_concat   4 0 0   100%
tdom / processor_test.py test_process_template_iterables   5 0 0   100%
tdom / processor_test.py test_process_template_iterables.get_color_select_t   3 0 0   100%
tdom / processor_test.py test_component_integration   6 0 0   100%
tdom / processor_test.py test_component_integration.PageComponent   1 0 0   100%
tdom / processor_test.py test_component_integration.FooterComponent   1 0 0   100%
tdom / processor_test.py test_component_integration.LayoutComponent   1 0 0   100%
tdom / processor_test.py TestInterpolatingHTMLInTemplateWithDynamicParentTag.test_dynamic_raw_text   5 0 0   100%
tdom / processor_test.py TestInterpolatingHTMLInTemplateWithDynamicParentTag.test_dynamic_escapable_raw_text   4 0 0   100%
tdom / processor_test.py TestInterpolatingHTMLInTemplateWithDynamicParentTag.test_dynamic_normal_text   4 0 0   100%
tdom / processor_test.py TestPagerComponentExample.PagerDisplay.__call__   12 1 0   92%
tdom / processor_test.py TestPagerComponentExample.test_example   7 0 0   100%
tdom / processor_test.py TestPagerComponentExample.test_example.paginate_url   1 0 0   100%
tdom / processor_test.py TestPagerComponentExample.test_example.Footer   1 0 0   100%
tdom / processor_test.py test_mathml   5 0 0   100%
tdom / processor_test.py (no function)   354 0 0   100%
tdom / protocols.py HasHTMLDunder.__html__   0 0 1   100%
tdom / protocols.py (no function)   3 0 0   100%
tdom / protocols_test.py LTEntity.__html__   1 1 0   0%
tdom / protocols_test.py test_custom_html_dunder_isinstance_has_html_dunder   2 0 0   100%
tdom / protocols_test.py test_markup_isinstance_has_html_dunder   2 0 0   100%
tdom / protocols_test.py test_str_not_isinstance_has_html_dunder   2 0 0   100%
tdom / protocols_test.py (no function)   7 0 0   100%
tdom / svg_test.py test_svg_clippath_case_fixed   2 0 0   100%
tdom / svg_test.py test_svg_lineargradient_case_fixed   2 0 0   100%
tdom / svg_test.py test_svg_femergenode_self_closing_case_fixed   2 0 0   100%
tdom / svg_test.py test_svg_nested_tags_case_fixed   2 0 0   100%
tdom / svg_test.py test_svg_viewbox_attr_case_fixed   2 0 0   100%
tdom / svg_test.py test_svg_case_sensitivity   2 0 0   100%
tdom / svg_test.py test_svg_tag_case_sensitivity   2 0 0   100%
tdom / svg_test.py test_svg_tag_case_sensitivity_outside_svg   2 0 0   100%
tdom / svg_test.py test_svg_attr_case_sensitivity_outside_svg   2 0 0   100%
tdom / svg_test.py test_svg_interpolated_attr   3 0 0   100%
tdom / svg_test.py test_svg_interpolated_child   3 0 0   100%
tdom / svg_test.py test_svg_fragment_multiple_roots   2 0 0   100%
tdom / svg_test.py test_svg_and_html_produce_different_results_for_same_strings   4 0 0   100%
tdom / svg_test.py test_html_full_svg_document_still_works   2 0 0   100%
tdom / svg_test.py test_svg_fragment_embedded_in_html   3 0 0   100%
tdom / svg_test.py test_svg_fragment_embedded_in_html.icon   1 0 0   100%
tdom / svg_test.py test_svg_fragment_with_spread_attr   4 0 0   100%
tdom / svg_test.py test_svg_fragment_with_spread_attr.icon   1 0 0   100%
tdom / svg_test.py test_svg_nesting   3 0 0   100%
tdom / svg_test.py (no function)   19 0 0   100%
tdom / template_utils.py template_from_parts   3 0 0   100%
tdom / template_utils.py combine_template_refs   1 0 0   100%
tdom / template_utils.py TemplateRef.is_literal   1 0 0   100%
tdom / template_utils.py TemplateRef.is_empty   1 0 0   100%
tdom / template_utils.py TemplateRef.is_singleton   1 0 0   100%
tdom / template_utils.py TemplateRef.to_naive_template   1 0 0   100%
tdom / template_utils.py TemplateRef.literal   1 0 0   100%
tdom / template_utils.py TemplateRef.empty   1 0 0   100%
tdom / template_utils.py TemplateRef.singleton   1 0 0   100%
tdom / template_utils.py TemplateRef.from_naive_template   1 0 0   100%
tdom / template_utils.py TemplateRef.__post_init__   2 0 0   100%
tdom / template_utils.py TemplateRef.__iter__   9 0 0   100%
tdom / template_utils.py TemplateRef.resolve   2 0 0   100%
tdom / template_utils.py (no function)   28 0 0   100%
tdom / template_utils_test.py test_template_from_parts   5 0 0   100%
tdom / template_utils_test.py test_template_ref_is_literal   4 0 0   100%
tdom / template_utils_test.py test_template_ref_is_empty   4 0 0   100%
tdom / template_utils_test.py test_template_ref_is_singleton   4 0 0   100%
tdom / template_utils_test.py test_template_ref_post_init_validation   2 0 0   100%
tdom / template_utils_test.py test_combine_template_refs   2 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_singleton   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_empty   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_empty_prefix   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_empty_suffix   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_literal   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_only_interpolations   1 0 0   100%
tdom / template_utils_test.py test_template_ref_iter_complete   1 0 0   100%
tdom / template_utils_test.py test_template_ref_resolve   5 0 0   100%
tdom / template_utils_test.py (no function)   17 0 0   100%
tdom / tnodes.py TNode.__html__   1 0 0   100%
tdom / tnodes.py TNode.__str__   1 0 0   100%
tdom / tnodes.py TText.empty   1 0 0   100%
tdom / tnodes.py TText.literal   1 0 0   100%
tdom / tnodes.py TComment.literal   1 0 0   100%
tdom / tnodes.py (no function)   43 0 0   100%
tdom / tnodes_test.py test_tnode_abstract_methods   5 0 0   100%
tdom / tnodes_test.py test_ttext_literal   3 0 0   100%
tdom / tnodes_test.py test_ttext_empty   2 0 0   100%
tdom / tnodes_test.py test_tcomment_literal   3 0 0   100%
tdom / tnodes_test.py (no function)   7 0 0   100%
tdom / utils.py LastUpdatedOrderedDict.__setitem__   2 0 0   100%
tdom / utils.py CachableTemplate.__init__   1 0 0   100%
tdom / utils.py CachableTemplate.__eq__   3 1 0   67%
tdom / utils.py CachableTemplate.__hash__   1 0 0   100%
tdom / utils.py (no function)   8 0 0   100%
tdom / utils_test.py test_last_updated_ordered_dict   11 0 0   100%
tdom / utils_test.py test_cachable_template_eq   5 0 0   100%
tdom / utils_test.py test_cachable_template_hash   3 0 0   100%
tdom / utils_test.py (no function)   4 0 0   100%
Total     2593 35 48   99%

No items found using the specified filter.