2023-04-18 03:23:45 +00:00
|
|
|
import pytest
|
|
|
|
|
2023-12-11 21:53:30 +00:00
|
|
|
from langchain_community.document_loaders.confluence import ConfluenceLoader
|
2023-04-18 03:23:45 +00:00
|
|
|
|
|
|
|
try:
|
|
|
|
from atlassian import Confluence # noqa: F401
|
|
|
|
|
|
|
|
confluence_installed = True
|
|
|
|
except ImportError:
|
|
|
|
confluence_installed = False
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(not confluence_installed, reason="Atlassian package not installed")
|
|
|
|
def test_load_single_confluence_page() -> None:
|
|
|
|
loader = ConfluenceLoader(url="https://templates.atlassian.net/wiki/")
|
|
|
|
docs = loader.load(page_ids=["33189"])
|
|
|
|
|
|
|
|
assert len(docs) == 1
|
|
|
|
assert docs[0].page_content is not None
|
|
|
|
assert docs[0].metadata["id"] == "33189"
|
|
|
|
assert docs[0].metadata["title"] == "An easy intro to using Confluence"
|
2023-04-23 22:06:10 +00:00
|
|
|
assert docs[0].metadata["source"] == (
|
|
|
|
"https://templates.atlassian.net/wiki/"
|
|
|
|
"spaces/RD/pages/33189/An+easy+intro+to+using+Confluence"
|
|
|
|
)
|
2023-04-18 03:23:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(not confluence_installed, reason="Atlassian package not installed")
|
|
|
|
def test_load_full_confluence_space() -> None:
|
|
|
|
loader = ConfluenceLoader(url="https://templates.atlassian.net/wiki/")
|
|
|
|
docs = loader.load(space_key="RD")
|
|
|
|
|
|
|
|
assert len(docs) == 14
|
|
|
|
assert docs[0].page_content is not None
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(not confluence_installed, reason="Atlassian package not installed")
|
|
|
|
def test_confluence_pagination() -> None:
|
|
|
|
loader = ConfluenceLoader(url="https://templates.atlassian.net/wiki/")
|
2023-04-23 22:06:10 +00:00
|
|
|
# this will issue 2 requests; each with a limit of 3 until the max_pages of 5 is met
|
|
|
|
docs = loader.load(space_key="RD", limit=3, max_pages=5)
|
2023-04-18 03:23:45 +00:00
|
|
|
|
|
|
|
assert len(docs) == 5
|
|
|
|
assert docs[0].page_content is not None
|
2023-04-23 22:06:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(not confluence_installed, reason="Atlassian package not installed")
|
|
|
|
def test_pass_confluence_kwargs() -> None:
|
|
|
|
loader = ConfluenceLoader(
|
|
|
|
url="https://templates.atlassian.net/wiki/",
|
|
|
|
confluence_kwargs={"verify_ssl": False},
|
|
|
|
)
|
|
|
|
|
|
|
|
assert loader.confluence.verify_ssl is False
|