repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | import hashlib |
| #2 | |
| #3 | import pytest |
| #4 | |
| #5 | from embedchain.loaders.json import JSONLoader |
| #6 | |
| #7 | |
| #8 | def test_load_data(mocker): |
| #9 | content = "temp.json" |
| #10 | |
| #11 | mock_document = { |
| #12 | "doc_id": hashlib.sha256((content + ", ".join(["content1", "content2"])).encode()).hexdigest(), |
| #13 | "data": [ |
| #14 | {"content": "content1", "meta_data": {"url": content}}, |
| #15 | {"content": "content2", "meta_data": {"url": content}}, |
| #16 | ], |
| #17 | } |
| #18 | |
| #19 | mocker.patch("embedchain.loaders.json.JSONLoader.load_data", return_value=mock_document) |
| #20 | |
| #21 | json_loader = JSONLoader() |
| #22 | |
| #23 | result = json_loader.load_data(content) |
| #24 | |
| #25 | assert "doc_id" in result |
| #26 | assert "data" in result |
| #27 | |
| #28 | expected_data = [ |
| #29 | {"content": "content1", "meta_data": {"url": content}}, |
| #30 | {"content": "content2", "meta_data": {"url": content}}, |
| #31 | ] |
| #32 | |
| #33 | assert result["data"] == expected_data |
| #34 | |
| #35 | expected_doc_id = hashlib.sha256((content + ", ".join(["content1", "content2"])).encode()).hexdigest() |
| #36 | assert result["doc_id"] == expected_doc_id |
| #37 | |
| #38 | |
| #39 | def test_load_data_url(mocker): |
| #40 | content = "https://example.com/posts.json" |
| #41 | |
| #42 | mocker.patch("os.path.isfile", return_value=False) |
| #43 | mocker.patch( |
| #44 | "embedchain.loaders.json.JSONReader.load_data", |
| #45 | return_value=[ |
| #46 | { |
| #47 | "text": "content1", |
| #48 | }, |
| #49 | { |
| #50 | "text": "content2", |
| #51 | }, |
| #52 | ], |
| #53 | ) |
| #54 | |
| #55 | mock_response = mocker.Mock() |
| #56 | mock_response.status_code = 200 |
| #57 | mock_response.json.return_value = {"document1": "content1", "document2": "content2"} |
| #58 | |
| #59 | mocker.patch("requests.get", return_value=mock_response) |
| #60 | |
| #61 | result = JSONLoader.load_data(content) |
| #62 | |
| #63 | assert "doc_id" in result |
| #64 | assert "data" in result |
| #65 | |
| #66 | expected_data = [ |
| #67 | {"content": "content1", "meta_data": {"url": content}}, |
| #68 | {"content": "content2", "meta_data": {"url": content}}, |
| #69 | ] |
| #70 | |
| #71 | assert result["data"] == expected_data |
| #72 | |
| #73 | expected_doc_id = hashlib.sha256((content + ", ".join(["content1", "content2"])).encode()).hexdigest() |
| #74 | assert result["doc_id"] == expected_doc_id |
| #75 | |
| #76 | |
| #77 | def test_load_data_invalid_string_content(mocker): |
| #78 | mocker.patch("os.path.isfile", return_value=False) |
| #79 | mocker.patch("requests.get") |
| #80 | |
| #81 | content = "123: 345}" |
| #82 | |
| #83 | with pytest.raises(ValueError, match="Invalid content to load json data from"): |
| #84 | JSONLoader.load_data(content) |
| #85 | |
| #86 | |
| #87 | def test_load_data_invalid_url(mocker): |
| #88 | mocker.patch("os.path.isfile", return_value=False) |
| #89 | |
| #90 | mock_response = mocker.Mock() |
| #91 | mock_response.status_code = 404 |
| #92 | mocker.patch("requests.get", return_value=mock_response) |
| #93 | |
| #94 | content = "http://invalid-url.com/" |
| #95 | |
| #96 | with pytest.raises(ValueError, match=f"Invalid content to load json data from: {content}"): |
| #97 | JSONLoader.load_data(content) |
| #98 | |
| #99 | |
| #100 | def test_load_data_from_json_string(mocker): |
| #101 | content = '{"foo": "bar"}' |
| #102 | |
| #103 | content_url_str = hashlib.sha256((content).encode("utf-8")).hexdigest() |
| #104 | |
| #105 | mocker.patch("os.path.isfile", return_value=False) |
| #106 | mocker.patch( |
| #107 | "embedchain.loaders.json.JSONReader.load_data", |
| #108 | return_value=[ |
| #109 | { |
| #110 | "text": "content1", |
| #111 | }, |
| #112 | { |
| #113 | "text": "content2", |
| #114 | }, |
| #115 | ], |
| #116 | ) |
| #117 | |
| #118 | result = JSONLoader.load_data(content) |
| #119 | |
| #120 | assert "doc_id" in result |
| #121 | assert "data" in result |
| #122 | |
| #123 | expected_data = [ |
| #124 | {"content": "content1", "meta_data": {"url": content_url_str}}, |
| #125 | {"content": "content2", "meta_data": {"url": content_url_str}}, |
| #126 | ] |
| #127 | |
| #128 | assert result["data"] == expected_data |
| #129 | |
| #130 | expected_doc_id = hashlib.sha256((content_url_str + ", ".join(["content1", "content2"])).encode()).hexdigest() |
| #131 | assert result["doc_id"] == expected_doc_id |
| #132 |