Coverage report: 74%

Files Functions Classes

coverage.py v7.6.12, created at 2025-03-10 03:26 +0900

File function statements missing excluded coverage
src/mcp_atlassian/__init__.py main 5 5 0 0%
src/mcp_atlassian/__init__.py _setup_logging 6 6 0 0%
src/mcp_atlassian/__init__.py _load_environment_variables 5 5 0 0%
src/mcp_atlassian/__init__.py _set_environment_from_args 15 15 0 0%
src/mcp_atlassian/__init__.py (no function) 26 1 0 96%
src/mcp_atlassian/config.py ConfluenceConfig.is_cloud 1 1 0 0%
src/mcp_atlassian/config.py JiraConfig.is_cloud 1 1 0 0%
src/mcp_atlassian/config.py (no function) 17 17 0 0%
src/mcp_atlassian/confluence/__init__.py (no function) 9 0 0 100%
src/mcp_atlassian/confluence/client.py ConfluenceClient.__init__ 4 0 0 100%
src/mcp_atlassian/confluence/client.py ConfluenceClient._process_html_content 1 0 0 100%
src/mcp_atlassian/confluence/client.py (no function) 7 0 0 100%
src/mcp_atlassian/confluence/comments.py CommentsMixin.get_page_comments 26 4 0 85%
src/mcp_atlassian/confluence/comments.py (no function) 7 0 0 100%
src/mcp_atlassian/confluence/config.py ConfluenceConfig.is_cloud 1 0 0 100%
src/mcp_atlassian/confluence/config.py ConfluenceConfig.from_env 10 0 0 100%
src/mcp_atlassian/confluence/config.py (no function) 11 0 0 100%
src/mcp_atlassian/confluence/formatters.py (no function) 0 0 0 100%
src/mcp_atlassian/confluence/pages.py PagesMixin.get_page_content 6 0 0 100%
src/mcp_atlassian/confluence/pages.py PagesMixin.get_page_by_title 29 5 0 83%
src/mcp_atlassian/confluence/pages.py PagesMixin.get_space_pages 8 0 0 100%
src/mcp_atlassian/confluence/pages.py PagesMixin.create_page 6 0 0 100%
src/mcp_atlassian/confluence/pages.py PagesMixin.update_page 7 0 0 100%
src/mcp_atlassian/confluence/pages.py (no function) 11 0 0 100%
src/mcp_atlassian/confluence/search.py SearchMixin.search 22 2 0 91%
src/mcp_atlassian/confluence/search.py (no function) 7 0 0 100%
src/mcp_atlassian/confluence/spaces.py SpacesMixin.get_spaces 2 0 0 100%
src/mcp_atlassian/confluence/spaces.py SpacesMixin.get_user_contributed_spaces 42 6 0 86%
src/mcp_atlassian/confluence/spaces.py (no function) 8 0 0 100%
src/mcp_atlassian/document_types.py (no function) 6 0 0 100%
src/mcp_atlassian/jira/__init__.py (no function) 16 0 0 100%
src/mcp_atlassian/jira/client.py JiraClient.__init__ 8 0 0 100%
src/mcp_atlassian/jira/client.py JiraClient._clean_text 4 0 0 100%
src/mcp_atlassian/jira/client.py JiraClient._markdown_to_jira 6 3 0 50%
src/mcp_atlassian/jira/client.py (no function) 10 0 0 100%
src/mcp_atlassian/jira/comments.py CommentsMixin.get_issue_comments 10 0 0 100%
src/mcp_atlassian/jira/comments.py CommentsMixin.add_comment 7 0 0 100%
src/mcp_atlassian/jira/comments.py CommentsMixin._markdown_to_jira 7 3 0 57%
src/mcp_atlassian/jira/comments.py CommentsMixin._parse_date 10 1 0 90%
src/mcp_atlassian/jira/comments.py (no function) 11 0 0 100%
src/mcp_atlassian/jira/config.py JiraConfig.is_cloud 1 0 0 100%
src/mcp_atlassian/jira/config.py JiraConfig.verify_ssl 1 0 0 100%
src/mcp_atlassian/jira/config.py JiraConfig.from_env 22 1 0 95%
src/mcp_atlassian/jira/config.py (no function) 17 0 0 100%
src/mcp_atlassian/jira/epics.py EpicsMixin.get_jira_field_ids 3 0 0 100%
src/mcp_atlassian/jira/epics.py EpicsMixin._get_cached_field_ids 18 6 0 67%
src/mcp_atlassian/jira/epics.py EpicsMixin._log_available_fields 3 0 0 100%
src/mcp_atlassian/jira/epics.py EpicsMixin._process_field_for_epic_data 32 5 0 84%
src/mcp_atlassian/jira/epics.py EpicsMixin._try_discover_fields_from_existing_epic 38 21 0 45%
src/mcp_atlassian/jira/epics.py EpicsMixin.prepare_epic_fields 21 5 0 76%
src/mcp_atlassian/jira/epics.py EpicsMixin.link_issue_to_epic 22 2 0 91%
src/mcp_atlassian/jira/epics.py EpicsMixin.get_epic_issues 44 3 0 93%
src/mcp_atlassian/jira/epics.py (no function) 15 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_fields 10 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_field_id 17 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_field_by_id 10 3 0 70%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_custom_fields 7 3 0 57%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_required_fields 19 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.get_jira_field_ids 17 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin._log_available_fields 6 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.is_custom_field 1 0 0 100%
src/mcp_atlassian/jira/fields.py FieldsMixin.format_field_value 28 8 0 71%
src/mcp_atlassian/jira/fields.py (no function) 14 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.markdown_to_jira 7 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.format_issue_content 10 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.create_issue_metadata 17 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.format_date 6 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.format_jira_date 8 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.parse_date_for_api 6 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.extract_epic_information 22 2 0 91%
src/mcp_atlassian/jira/formatting.py FormattingMixin.sanitize_html 10 0 0 100%
src/mcp_atlassian/jira/formatting.py FormattingMixin.sanitize_transition_fields 16 2 0 88%
src/mcp_atlassian/jira/formatting.py FormattingMixin.add_comment_to_transition_data 5 0 0 100%
src/mcp_atlassian/jira/formatting.py (no function) 19 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin.get_issue 17 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin._normalize_comment_limit 10 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin._get_issue_comments_if_needed 12 4 0 67%
src/mcp_atlassian/jira/issues.py IssuesMixin._extract_epic_information 17 4 0 76%
src/mcp_atlassian/jira/issues.py IssuesMixin._parse_date 5 2 0 60%
src/mcp_atlassian/jira/issues.py IssuesMixin._format_issue_content 37 2 0 95%
src/mcp_atlassian/jira/issues.py IssuesMixin._create_issue_metadata 14 2 0 86%
src/mcp_atlassian/jira/issues.py IssuesMixin.create_issue 22 7 0 68%
src/mcp_atlassian/jira/issues.py IssuesMixin._prepare_epic_fields 6 1 0 83%
src/mcp_atlassian/jira/issues.py IssuesMixin._add_assignee_to_fields 3 1 0 67%
src/mcp_atlassian/jira/issues.py IssuesMixin._add_custom_fields 8 6 0 25%
src/mcp_atlassian/jira/issues.py IssuesMixin._handle_create_issue_error 6 6 0 0%
src/mcp_atlassian/jira/issues.py IssuesMixin.update_issue 23 15 0 35%
src/mcp_atlassian/jira/issues.py IssuesMixin._update_issue_with_status 15 3 0 80%
src/mcp_atlassian/jira/issues.py IssuesMixin.delete_issue 6 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin.get_jira_field_ids 3 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin._get_cached_field_ids 21 4 0 81%
src/mcp_atlassian/jira/issues.py IssuesMixin._log_available_fields 3 0 0 100%
src/mcp_atlassian/jira/issues.py IssuesMixin._process_field_for_epic_data 7 4 0 43%
src/mcp_atlassian/jira/issues.py IssuesMixin._try_discover_fields_from_existing_epic 26 14 0 46%
src/mcp_atlassian/jira/issues.py IssuesMixin.link_issue_to_epic 19 2 0 89%
src/mcp_atlassian/jira/issues.py IssuesMixin.get_available_transitions 8 8 0 0%
src/mcp_atlassian/jira/issues.py IssuesMixin.transition_issue 6 6 0 0%
src/mcp_atlassian/jira/issues.py (no function) 32 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_all_projects 9 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.project_exists 5 2 0 60%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_components 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_versions 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_roles 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_role_members 9 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_permission_scheme 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_notification_scheme 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_issue_types 11 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_issues_count 10 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_issues 18 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_keys 6 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_project_leads 18 0 0 100%
src/mcp_atlassian/jira/projects.py ProjectsMixin.get_user_accessible_projects 23 1 0 96%
src/mcp_atlassian/jira/projects.py (no function) 21 0 0 100%
src/mcp_atlassian/jira/search.py SearchMixin.search_issues 32 0 0 100%
src/mcp_atlassian/jira/search.py SearchMixin.get_project_issues 2 0 0 100%
src/mcp_atlassian/jira/search.py SearchMixin.get_epic_issues 39 4 0 90%
src/mcp_atlassian/jira/search.py SearchMixin._parse_date 8 1 0 88%
src/mcp_atlassian/jira/search.py (no function) 12 0 0 100%
src/mcp_atlassian/jira/transitions.py TransitionsMixin.get_available_transitions 27 0 0 100%
src/mcp_atlassian/jira/transitions.py TransitionsMixin.transition_issue 20 0 0 100%
src/mcp_atlassian/jira/transitions.py TransitionsMixin._normalize_transition_id 1 0 0 100%
src/mcp_atlassian/jira/transitions.py TransitionsMixin._sanitize_transition_fields 17 0 0 100%
src/mcp_atlassian/jira/transitions.py TransitionsMixin._add_comment_to_transition_data 8 0 0 100%
src/mcp_atlassian/jira/transitions.py (no function) 11 0 0 100%
src/mcp_atlassian/jira/users.py UsersMixin.get_current_user_account_id 13 2 0 85%
src/mcp_atlassian/jira/users.py UsersMixin._get_account_id 10 0 0 100%
src/mcp_atlassian/jira/users.py UsersMixin._lookup_user_directly 11 1 0 91%
src/mcp_atlassian/jira/users.py UsersMixin._lookup_user_by_permissions 18 1 0 94%
src/mcp_atlassian/jira/users.py (no function) 11 0 0 100%
src/mcp_atlassian/jira/utils.py (no function) 0 0 0 100%
src/mcp_atlassian/jira/worklog.py WorklogMixin._parse_time_spent 19 2 0 89%
src/mcp_atlassian/jira/worklog.py WorklogMixin.add_worklog 32 0 0 100%
src/mcp_atlassian/jira/worklog.py WorklogMixin.get_worklogs 9 0 0 100%
src/mcp_atlassian/jira/worklog.py WorklogMixin._parse_date 10 1 0 90%
src/mcp_atlassian/jira/worklog.py (no function) 11 0 0 100%
src/mcp_atlassian/preprocessing.py ConfluenceClient.get_user_details_by_accountid 1 1 0 0%
src/mcp_atlassian/preprocessing.py TextPreprocessor.__init__ 2 0 0 100%
src/mcp_atlassian/preprocessing.py TextPreprocessor.process_html_content 9 0 0 100%
src/mcp_atlassian/preprocessing.py TextPreprocessor._process_user_mentions_in_soup 15 7 0 53%
src/mcp_atlassian/preprocessing.py TextPreprocessor._replace_user_mention 22 14 0 36%
src/mcp_atlassian/preprocessing.py TextPreprocessor._use_fallback_user_mention 2 2 0 0%
src/mcp_atlassian/preprocessing.py TextPreprocessor.clean_jira_text 8 0 0 100%
src/mcp_atlassian/preprocessing.py TextPreprocessor._process_mentions 13 7 0 46%
src/mcp_atlassian/preprocessing.py TextPreprocessor._process_smart_links 20 2 0 90%
src/mcp_atlassian/preprocessing.py TextPreprocessor._convert_html_to_markdown 17 9 0 47%
src/mcp_atlassian/preprocessing.py TextPreprocessor.jira_to_markdown 35 1 0 97%
src/mcp_atlassian/preprocessing.py TextPreprocessor.markdown_to_jira 31 3 0 90%
src/mcp_atlassian/preprocessing.py TextPreprocessor.markdown_to_jira.save_code_block 8 0 0 100%
src/mcp_atlassian/preprocessing.py TextPreprocessor.markdown_to_jira.save_inline_code 4 0 0 100%
src/mcp_atlassian/preprocessing.py TextPreprocessor._convert_jira_list_to_markdown 7 0 0 100%
src/mcp_atlassian/preprocessing.py markdown_to_confluence_storage 18 18 0 0%
src/mcp_atlassian/preprocessing.py (no function) 27 0 0 100%
src/mcp_atlassian/server.py get_available_services 11 3 0 73%
src/mcp_atlassian/server.py list_resources 36 18 0 50%
src/mcp_atlassian/server.py read_resource 7 7 0 0%
src/mcp_atlassian/server.py _handle_confluence_resource 10 10 0 0%
src/mcp_atlassian/server.py _handle_confluence_space 10 10 0 0%
src/mcp_atlassian/server.py _handle_confluence_page 5 5 0 0%
src/mcp_atlassian/server.py _handle_jira_resource 10 10 0 0%
src/mcp_atlassian/server.py _handle_jira_project 13 13 0 0%
src/mcp_atlassian/server.py _handle_jira_issue 2 2 0 0%
src/mcp_atlassian/server.py list_tools 6 6 0 0%
src/mcp_atlassian/server.py call_tool 27 27 0 0%
src/mcp_atlassian/server.py call_tool.format_comment 1 1 0 0%
src/mcp_atlassian/server.py call_tool.format_issue 1 1 0 0%
src/mcp_atlassian/server.py call_tool.format_transition 1 1 0 0%
src/mcp_atlassian/server.py handle_confluence_search 20 20 0 0%
src/mcp_atlassian/server.py handle_confluence_get_page 6 6 0 0%
src/mcp_atlassian/server.py handle_confluence_get_comments 3 3 0 0%
src/mcp_atlassian/server.py handle_confluence_create_page 9 9 0 0%
src/mcp_atlassian/server.py handle_confluence_update_page 9 9 0 0%
src/mcp_atlassian/server.py handle_jira_get_issue 21 21 0 0%
src/mcp_atlassian/server.py handle_jira_search 6 6 0 0%
src/mcp_atlassian/server.py handle_jira_get_project_issues 6 6 0 0%
src/mcp_atlassian/server.py handle_jira_create_issue 12 12 0 0%
src/mcp_atlassian/server.py handle_jira_update_issue 7 7 0 0%
src/mcp_atlassian/server.py handle_jira_delete_issue 5 5 0 0%
src/mcp_atlassian/server.py handle_jira_add_comment 5 5 0 0%
src/mcp_atlassian/server.py handle_jira_add_worklog 32 32 0 0%
src/mcp_atlassian/server.py handle_jira_get_worklog 3 3 0 0%
src/mcp_atlassian/server.py handle_jira_get_transitions 4 4 0 0%
src/mcp_atlassian/server.py handle_jira_transition_issue 8 8 0 0%
src/mcp_atlassian/server.py handle_jira_link_to_epic 7 7 0 0%
src/mcp_atlassian/server.py handle_jira_get_epic_issues 5 5 0 0%
src/mcp_atlassian/server.py main 13 13 0 0%
src/mcp_atlassian/server.py (no function) 59 2 0 97%
Total   2319 603 0 74%

No items found using the specified filter.