Add tests
This commit is contained in:
@@ -39,6 +39,7 @@ dependencies = [
|
||||
"youtube-transcript-api",
|
||||
"SpeechRecognition",
|
||||
"pathvalidate",
|
||||
"pygithub"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
|
||||
@@ -50,7 +50,7 @@ try:
|
||||
|
||||
IS_GITHUB_ISSUE_CAPABLE = True
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
IS_GITHUB_ISSUE_CAPABLE = False
|
||||
|
||||
|
||||
class _CustomMarkdownify(markdownify.MarkdownConverter):
|
||||
@@ -1111,6 +1111,33 @@ class MarkItDown:
|
||||
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."
|
||||
|
||||
@@ -87,6 +87,9 @@ SERP_TEST_EXCLUDES = [
|
||||
"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,
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user