Coverage report: 98%

Files Functions Classes

coverage.py v7.13.0, created at 2025-12-17 23:32 +0000

File function   statements missing excluded   coverage
tdom / __init__.py (no function)   5 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)   17 0 0   100%
tdom / callables_test.py callable_zero_args   0 0 2   100%
tdom / callables_test.py test_zero_args   7 0 0   100%
tdom / callables_test.py callable_positional   0 0 2   100%
tdom / callables_test.py test_positional   7 0 0   100%
tdom / callables_test.py callable_positional_only   0 0 2   100%
tdom / callables_test.py test_positional_only   7 0 0   100%
tdom / callables_test.py callable_positional_only_default   0 0 2   100%
tdom / callables_test.py test_positional_only_default   7 0 0   100%
tdom / callables_test.py callable_kwargs   0 0 2   100%
tdom / callables_test.py test_kwargs   7 0 0   100%
tdom / callables_test.py callable_mixed   0 0 2   100%
tdom / callables_test.py test_mixed   7 0 0   100%
tdom / callables_test.py callable_positional_with_defaults   0 0 2   100%
tdom / callables_test.py test_positional_with_defaults   7 0 0   100%
tdom / callables_test.py callable_keyword_only   0 0 2   100%
tdom / callables_test.py test_keyword_only   7 0 0   100%
tdom / callables_test.py callable_var_positional   0 0 2   100%
tdom / callables_test.py test_var_positional   7 0 0   100%
tdom / callables_test.py callable_all_types   0 0 2   100%
tdom / callables_test.py test_all_types   7 0 0   100%
tdom / callables_test.py (no function)   12 0 18   100%
tdom / classnames.py classnames   20 1 0   95%
tdom / classnames.py (no function)   1 0 0   100%
tdom / classnames_test.py test_classnames_empty   1 0 0   100%
tdom / classnames_test.py test_classnames_strings   1 0 0   100%
tdom / classnames_test.py test_classnames_strings_strip   1 0 0   100%
tdom / classnames_test.py test_cslx_empty_strings   1 0 0   100%
tdom / classnames_test.py test_clsx_booleans   1 0 0   100%
tdom / classnames_test.py test_classnames_lists_and_tuples   1 0 0   100%
tdom / classnames_test.py test_classnames_dicts   1 0 0   100%
tdom / classnames_test.py test_classnames_mixed_inputs   1 0 0   100%
tdom / classnames_test.py test_classnames_ignores_none_and_false   1 0 0   100%
tdom / classnames_test.py test_classnames_raises_type_error_on_invalid_input   4 0 0   100%
tdom / classnames_test.py test_classnames_kitchen_sink   1 0 0   100%
tdom / classnames_test.py (no function)   13 0 0   100%
tdom / escaping.py escape_html_comment   12 0 0   100%
tdom / escaping.py escape_html_style   3 0 0   100%
tdom / escaping.py escape_html_script   3 0 0   100%
tdom / escaping.py (no function)   10 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_style   3 0 0   100%
tdom / escaping_test.py test_escape_html_script   5 0 0   100%
tdom / escaping_test.py (no function)   9 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)   13 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 / nodes.py Node.__html__   1 0 0   100%
tdom / nodes.py Text.__str__   1 0 0   100%
tdom / nodes.py Text.__eq__   1 0 0   100%
tdom / nodes.py Fragment.__str__   1 0 0   100%
tdom / nodes.py Comment.__str__   1 0 0   100%
tdom / nodes.py DocumentType.__str__   1 0 0   100%
tdom / nodes.py Element.__post_init__   4 0 0   100%
tdom / nodes.py Element.is_void   1 0 0   100%
tdom / nodes.py Element.is_content   1 0 0   100%
tdom / nodes.py Element._children_to_str   15 3 0   80%
tdom / nodes.py Element.__str__   7 0 0   100%
tdom / nodes.py (no function)   35 0 0   100%
tdom / nodes_test.py test_comment   2 0 0   100%
tdom / nodes_test.py test_comment_empty   2 0 0   100%
tdom / nodes_test.py test_comment_special_chars   2 0 0   100%
tdom / nodes_test.py test_doctype_default   2 0 0   100%
tdom / nodes_test.py test_doctype_custom   2 0 0   100%
tdom / nodes_test.py test_text   2 0 0   100%
tdom / nodes_test.py test_text_escaping   2 0 0   100%
tdom / nodes_test.py test_text_safe   4 0 0   100%
tdom / nodes_test.py test_text_safe.CustomHTML.__html__   1 0 0   100%
tdom / nodes_test.py test_text_equality   5 0 0   100%
tdom / nodes_test.py test_fragment_empty   2 0 0   100%
tdom / nodes_test.py test_fragment_with_text   2 0 0   100%
tdom / nodes_test.py test_fragment_with_multiple_texts   2 0 0   100%
tdom / nodes_test.py test_element_no_children   3 0 0   100%
tdom / nodes_test.py test_void_element_no_children   3 0 0   100%
tdom / nodes_test.py test_element_invalid_empty_tag   2 0 0   100%
tdom / nodes_test.py test_element_is_content   4 0 0   100%
tdom / nodes_test.py test_void_element_with_attributes   2 0 0   100%
tdom / nodes_test.py test_void_element_with_children   2 0 0   100%
tdom / nodes_test.py test_standard_element_with_attributes   2 0 0   100%
tdom / nodes_test.py test_standard_element_with_text_child   2 0 0   100%
tdom / nodes_test.py test_standard_element_with_element_children   2 0 0   100%
tdom / nodes_test.py test_element_with_fragment_with_children   2 0 0   100%
tdom / nodes_test.py test_standard_element_with_mixed_children   2 0 0   100%
tdom / nodes_test.py test_complex_tree   2 0 0   100%
tdom / nodes_test.py test_dunder_html_method   2 0 0   100%
tdom / nodes_test.py test_escaping_of_text_content   2 0 0   100%
tdom / nodes_test.py test_escaping_of_attribute_values   2 0 0   100%
tdom / nodes_test.py (no function)   30 0 0   100%
tdom / parser.py SourceTracker.interpolations   1 0 0   100%
tdom / parser.py SourceTracker.s_index   1 1 0   0%
tdom / parser.py SourceTracker.advance_interpolation   2 0 0   100%
tdom / parser.py SourceTracker.get_expression   2 0 0   100%
tdom / parser.py SourceTracker.get_interpolation_value   1 1 0   0%
tdom / parser.py SourceTracker.format_starttag   1 0 0   100%
tdom / parser.py SourceTracker.format_endtag   1 1 0   0%
tdom / parser.py SourceTracker.format_open_tag   7 7 0   0%
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 1 0   93%
tdom / parser.py TemplateParser.make_tattrs   1 0 0   100%
tdom / parser.py TemplateParser.make_open_tag   11 2 0   82%
tdom / parser.py TemplateParser.finalize_tag   7 0 0   100%
tdom / parser.py TemplateParser.validate_end_tag   21 3 0   86%
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   3 0 0   100%
tdom / parser.py TemplateParser.handle_comment   3 0 0   100%
tdom / parser.py TemplateParser.handle_decl   8 2 0   75%
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   2 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)   55 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_with_entities   2 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_attributes   2 0 0   100%
tdom / parser_test.py test_parse_element_attribute_order   3 0 0   100%
tdom / parser_test.py test_parse_comment   2 0 0   100%
tdom / parser_test.py test_parse_doctype   2 0 0   100%
tdom / parser_test.py test_parse_multiple_voids   2 0 0   100%
tdom / parser_test.py test_parse_mixed_content   2 0 0   100%
tdom / parser_test.py test_parse_entities_are_escaped   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_attributes   2 0 0   100%
tdom / parser_test.py test_interpolated_attributes   4 0 0   100%
tdom / parser_test.py test_templated_attributes   6 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_spread_attribute   3 0 0   100%
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 (no function)   42 0 0   100%
tdom / placeholders.py make_placeholder   1 0 0   100%
tdom / placeholders.py match_placeholders   1 0 0   100%
tdom / placeholders.py find_placeholders   13 0 0   100%
tdom / placeholders.py PlaceholderState.__init__   1 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)   18 0 0   100%
tdom / placeholders_test.py test_make_placeholder   2 0 0   100%
tdom / placeholders_test.py test_match_placeholders   7 0 0   100%
tdom / placeholders_test.py test_find_placeholders   8 0 0   100%
tdom / placeholders_test.py test_placeholder_state   14 0 0   100%
tdom / placeholders_test.py (no function)   6 0 0   100%
tdom / processor.py HasHTMLDunder.__html__   0 0 1   100%
tdom / processor.py _parse_and_cache   1 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_interpolation   1 0 0   100%
tdom / processor.py _force_dict   4 0 0   100%
tdom / processor.py _process_aria_attr   9 0 0   100%
tdom / processor.py _process_data_attr   6 0 0   100%
tdom / processor.py _process_class_attr   1 0 0   100%
tdom / processor.py _process_style_attr   9 0 0   100%
tdom / processor.py _substitute_spread_attrs   3 0 0   100%
tdom / processor.py _process_attr   4 0 0   100%
tdom / processor.py _resolve_t_attrs   22 2 0   91%
tdom / processor.py _resolve_html_attrs   10 0 0   100%
tdom / processor.py _resolve_attrs   2 0 0   100%
tdom / processor.py _flatten_nodes   6 0 0   100%
tdom / processor.py _substitute_and_flatten_children   3 0 0   100%
tdom / processor.py _node_from_value   18 0 0   100%
tdom / processor.py _kebab_to_snake   1 0 0   100%
tdom / processor.py _invoke_component   18 0 0   100%
tdom / processor.py _resolve_ref   2 0 0   100%
tdom / processor.py _resolve_t_text_ref   7 0 0   100%
tdom / processor.py _resolve_t_node   26 2 0   92%
tdom / processor.py html   3 0 0   100%
tdom / processor.py (no function)   45 0 0   100%
tdom / processor_test.py test_parse_empty   3 0 0   100%
tdom / processor_test.py test_parse_text   3 0 0   100%
tdom / processor_test.py test_parse_comment   3 0 0   100%
tdom / processor_test.py test_parse_document_type   3 0 0   100%
tdom / processor_test.py test_parse_void_element   3 0 0   100%
tdom / processor_test.py test_parse_void_element_self_closed   3 0 0   100%
tdom / processor_test.py test_parse_chain_of_void_elements   3 0 0   100%
tdom / processor_test.py test_static_boolean_attr_retained   3 0 0   100%
tdom / processor_test.py test_parse_element_with_text   3 0 0   100%
tdom / processor_test.py test_parse_element_with_attributes   3 0 0   100%
tdom / processor_test.py test_parse_nested_elements   3 0 0   100%
tdom / processor_test.py test_parse_entities_are_escaped   3 0 0   100%
tdom / processor_test.py test_interpolated_text_content   4 0 0   100%
tdom / processor_test.py test_escaping_of_interpolated_text_content   4 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_conversions   5 0 0   100%
tdom / processor_test.py test_interpolated_in_content_node   5 0 0   100%
tdom / processor_test.py test_interpolated_trusted_in_content_node   3 0 0   100%
tdom / processor_test.py test_interpolated_false_content   3 0 0   100%
tdom / processor_test.py test_interpolated_none_content   3 0 0   100%
tdom / processor_test.py test_interpolated_zero_arg_function   3 0 0   100%
tdom / processor_test.py test_interpolated_zero_arg_function.get_value   1 0 0   100%
tdom / processor_test.py test_interpolated_multi_arg_function_fails   2 0 1   100%
tdom / processor_test.py test_interpolated_multi_arg_function_fails.add   0 0 1   100%
tdom / processor_test.py test_raw_html_injection_with_markupsafe   4 0 0   100%
tdom / processor_test.py test_raw_html_injection_with_dunder_html_protocol   7 0 0   100%
tdom / processor_test.py test_raw_html_injection_with_dunder_html_protocol.SafeContent.__init__   1 0 0   100%
tdom / processor_test.py test_raw_html_injection_with_dunder_html_protocol.SafeContent.__html__   1 0 0   100%
tdom / processor_test.py test_raw_html_injection_with_format_spec   4 0 0   100%
tdom / processor_test.py test_raw_html_injection_with_markupsafe_unsafe_format_spec   4 0 0   100%
tdom / processor_test.py test_conditional_rendering_with_if_else   9 0 0   100%
tdom / processor_test.py test_conditional_rendering_with_and   8 0 0   100%
tdom / processor_test.py test_interpolated_template_content   4 0 0   100%
tdom / processor_test.py test_interpolated_element_content   4 0 0   100%
tdom / processor_test.py test_interpolated_nonstring_content   4 0 0   100%
tdom / processor_test.py test_list_items   4 0 0   100%
tdom / processor_test.py test_nested_list_items   7 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value   4 0 0   100%
tdom / processor_test.py test_escaping_of_interpolated_attribute_value   4 0 0   100%
tdom / processor_test.py test_interpolated_unquoted_attribute_value   4 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_true   4 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_falsy   5 0 0   100%
tdom / processor_test.py test_interpolated_attribute_spread_dict   4 0 0   100%
tdom / processor_test.py test_interpolated_mixed_attribute_values_and_spread_dict   5 0 0   100%
tdom / processor_test.py test_multiple_attribute_spread_dicts   5 0 0   100%
tdom / processor_test.py test_interpolated_class_attribute   4 0 0   100%
tdom / processor_test.py test_interpolated_class_attribute_with_multiple_placeholders   4 0 0   100%
tdom / processor_test.py test_interpolated_attribute_spread_with_class_attribute   4 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_embedded_placeholder   4 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_with_static_prefix_and_suffix   4 0 0   100%
tdom / processor_test.py test_attribute_value_empty_string   2 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_multiple_placeholders   5 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_tricky_multiple_placeholders   5 0 0   100%
tdom / processor_test.py test_placeholder_collision_avoidance   5 0 0   100%
tdom / processor_test.py test_interpolated_attribute_value_multiple_placeholders_no_quotes   5 0 0   100%
tdom / processor_test.py test_interpolated_data_attributes   4 0 0   100%
tdom / processor_test.py test_data_attr_toggle_to_str   3 0 0   100%
tdom / processor_test.py test_data_attr_toggle_to_true   3 0 0   100%
tdom / processor_test.py test_data_attr_unrelated_unaffected   3 0 0   100%
tdom / processor_test.py test_interpolated_data_attribute_multiple_placeholders   5 5 0   0%
tdom / processor_test.py test_interpolated_aria_attributes   4 0 0   100%
tdom / processor_test.py test_interpolated_style_attribute   4 0 0   100%
tdom / processor_test.py test_override_static_style_str_str   3 0 0   100%
tdom / processor_test.py test_override_static_style_str_builder   3 0 0   100%
tdom / processor_test.py test_interpolated_style_attribute_multiple_placeholders   4 0 0   100%
tdom / processor_test.py test_style_attribute_str   4 0 0   100%
tdom / processor_test.py test_style_attribute_non_str_non_dict   3 0 0   100%
tdom / processor_test.py test_special_attrs_as_static   2 0 0   100%
tdom / processor_test.py FunctionComponent   5 0 0   100%
tdom / processor_test.py test_interpolated_template_component   3 0 0   100%
tdom / processor_test.py test_interpolated_template_component_no_children_provided   3 0 0   100%
tdom / processor_test.py test_invalid_component_invocation   2 0 0   100%
tdom / processor_test.py FunctionComponentNoChildren   5 0 0   100%
tdom / processor_test.py test_interpolated_template_component_ignore_children   3 0 0   100%
tdom / processor_test.py FunctionComponentKeywordArgs   5 0 0   100%
tdom / processor_test.py test_children_always_passed_via_kwargs   3 0 0   100%
tdom / processor_test.py test_children_always_passed_via_kwargs_even_when_empty   3 0 0   100%
tdom / processor_test.py ColumnsComponent   1 0 0   100%
tdom / processor_test.py test_fragment_from_component   3 0 0   100%
tdom / processor_test.py test_component_passed_as_attr_value   4 0 0   100%
tdom / processor_test.py test_component_passed_as_attr_value.Wrapper   1 0 0   100%
tdom / processor_test.py test_nested_component_gh23   4 0 0   100%
tdom / processor_test.py test_nested_component_gh23.Header   1 0 0   100%
tdom / processor_test.py test_component_returning_iterable   4 0 0   100%
tdom / processor_test.py test_component_returning_iterable.Items   3 0 0   100%
tdom / processor_test.py test_component_returning_fragment   4 0 0   100%
tdom / processor_test.py test_component_returning_fragment.Items   1 0 0   100%
tdom / processor_test.py ClassComponent.__call__   1 0 0   100%
tdom / processor_test.py test_class_component_implicit_invocation_with_children   3 0 0   100%
tdom / processor_test.py test_class_component_direct_invocation   4 0 0   100%
tdom / processor_test.py ClassComponentNoChildren.__call__   1 0 0   100%
tdom / processor_test.py test_class_component_implicit_invocation_ignore_children   3 0 0   100%
tdom / processor_test.py AttributeTypeComponent   11 0 0   100%
tdom / processor_test.py test_attribute_type_component   10 0 0   100%
tdom / processor_test.py test_component_non_callable_fails   2 0 0   100%
tdom / processor_test.py RequiresPositional   0 0 1   100%
tdom / processor_test.py test_component_requiring_positional_arg_fails   2 0 0   100%
tdom / processor_test.py test_mismatched_component_closing_tag_fails   2 0 0   100%
tdom / processor_test.py test_replace_static_attr_str_str   3 0 0   100%
tdom / processor_test.py test_replace_static_attr_str_true   3 0 0   100%
tdom / processor_test.py test_replace_static_attr_true_str   3 0 0   100%
tdom / processor_test.py test_remove_static_attr_str_none   3 0 0   100%
tdom / processor_test.py test_remove_static_attr_true_none   3 0 0   100%
tdom / processor_test.py test_other_static_attr_intact   3 0 0   100%
tdom / processor_test.py (no function)   114 0 1   100%
tdom / template_utils.py template_from_parts   3 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.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.__post_init__   2 0 0   100%
tdom / template_utils.py (no function)   21 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 (no function)   8 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     1751 39 51   98%

No items found using the specified filter.