Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
gagb committed Dec 12, 2024
1 parent 28af7ad commit 8f16f32
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ dependencies = [
"youtube-transcript-api",
"SpeechRecognition",
"pathvalidate",
"pygithub"
]

[project.urls]
Expand Down
29 changes: 28 additions & 1 deletion src/markitdown/_markitdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

IS_GITHUB_ISSUE_CAPABLE = True
except ModuleNotFoundError:
pass
IS_GITHUB_ISSUE_CAPABLE = False


class _CustomMarkdownify(markdownify.MarkdownConverter):
Expand Down Expand Up @@ -1111,6 +1111,33 @@ def register_page_converter(self, converter: DocumentConverter) -> None:
def convert_github_issue(
self, issue_url: str, github_token: str
) -> DocumentConverterResult:
"""
Convert a GitHub issue to a markdown document.
Args:
issue_url (str): The URL of the GitHub issue to convert.
github_token (str): A GitHub token with access to the repository.
Returns:
DocumentConverterResult: The result containing the issue title and markdown content.
Raises:
ImportError: If the PyGithub library is not installed.
ValueError: If the provided URL is not a valid GitHub issue URL.
Example:
# Example markdown format
# Issue Title
Issue body content...
**State:** open
**Created at:** 2023-10-01 12:34:56
**Updated at:** 2023-10-02 12:34:56
**Comments:**
- user1 (2023-10-01 13:00:00): Comment content...
- user2 (2023-10-01 14:00:00): Another comment...
"""
if not IS_GITHUB_ISSUE_CAPABLE:
raise ImportError(
"PyGithub is not installed. Please install it to use this feature."
Expand Down
17 changes: 17 additions & 0 deletions tests/test_markitdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@
"data:image/svg+xml,%3Csvg%20width%3D",
]

GITHUB_ISSUE_URL = "https://github.com/microsoft/autogen/issues/1421"
GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN", "")


@pytest.mark.skipif(
skip_remote,
Expand Down Expand Up @@ -179,8 +182,22 @@ def test_markitdown_exiftool() -> None:
assert target in result.text_content


@pytest.mark.skipif(
not GITHUB_TOKEN,
reason="GitHub token not provided",
)
def test_markitdown_github_issue() -> None:
markitdown = MarkItDown()
result = markitdown.convert_github_issue(GITHUB_ISSUE_URL, GITHUB_TOKEN)
print(result.text_content)
assert "User-Defined Functions" in result.text_content
assert "closed" in result.text_content
assert "Comments:" in result.text_content


if __name__ == "__main__":
"""Runs this file's tests from the command line."""
test_markitdown_remote()
test_markitdown_local()
test_markitdown_exiftool()
test_markitdown_github_issue()

0 comments on commit 8f16f32

Please sign in to comment.