Add tests
This commit is contained in:
@@ -39,6 +39,7 @@ dependencies = [
|
|||||||
"youtube-transcript-api",
|
"youtube-transcript-api",
|
||||||
"SpeechRecognition",
|
"SpeechRecognition",
|
||||||
"pathvalidate",
|
"pathvalidate",
|
||||||
|
"pygithub"
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ try:
|
|||||||
|
|
||||||
IS_GITHUB_ISSUE_CAPABLE = True
|
IS_GITHUB_ISSUE_CAPABLE = True
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
pass
|
IS_GITHUB_ISSUE_CAPABLE = False
|
||||||
|
|
||||||
|
|
||||||
class _CustomMarkdownify(markdownify.MarkdownConverter):
|
class _CustomMarkdownify(markdownify.MarkdownConverter):
|
||||||
@@ -1111,6 +1111,33 @@ class MarkItDown:
|
|||||||
def convert_github_issue(
|
def convert_github_issue(
|
||||||
self, issue_url: str, github_token: str
|
self, issue_url: str, github_token: str
|
||||||
) -> DocumentConverterResult:
|
) -> 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:
|
if not IS_GITHUB_ISSUE_CAPABLE:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"PyGithub is not installed. Please install it to use this feature."
|
"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",
|
"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(
|
@pytest.mark.skipif(
|
||||||
skip_remote,
|
skip_remote,
|
||||||
@@ -179,8 +182,22 @@ def test_markitdown_exiftool() -> None:
|
|||||||
assert target in result.text_content
|
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__":
|
if __name__ == "__main__":
|
||||||
"""Runs this file's tests from the command line."""
|
"""Runs this file's tests from the command line."""
|
||||||
test_markitdown_remote()
|
test_markitdown_remote()
|
||||||
test_markitdown_local()
|
test_markitdown_local()
|
||||||
test_markitdown_exiftool()
|
test_markitdown_exiftool()
|
||||||
|
test_markitdown_github_issue()
|
||||||
|
|||||||
Reference in New Issue
Block a user