graphrag/tests/integration/storage/test_file_pipeline_storage.py
Nathan Evans f5b4d2fea5
Ci streamline (#988)
* Remove excess vars from gh-pages build

* Delete redundant javascript ci

* Pull apart testing CI

* Clean up integration tests build

* Move storage tests to integration CI

* Take py 3.10 out of smoke tests matrix

* Use minimum supported python version for most tests

* Re-run main CI on any test change

* Add Josh and Kenny to author list

* Update auto-resolve perms
2024-08-21 15:16:15 -06:00

51 lines
1.5 KiB
Python

# Copyright (c) 2024 Microsoft Corporation.
# Licensed under the MIT License
"""Blob Storage Tests."""
import os
import re
from pathlib import Path
from graphrag.index.storage.file_pipeline_storage import FilePipelineStorage
__dirname__ = os.path.dirname(__file__)
async def test_find():
storage = FilePipelineStorage()
items = list(
storage.find(
base_dir="tests/fixtures/text/input",
file_pattern=re.compile(r".*\.txt$"),
progress=None,
file_filter=None,
)
)
assert items == [(str(Path("tests/fixtures/text/input/dulce.txt")), {})]
output = await storage.get("tests/fixtures/text/input/dulce.txt")
assert len(output) > 0
await storage.set("test.txt", "Hello, World!", encoding="utf-8")
output = await storage.get("test.txt")
assert output == "Hello, World!"
await storage.delete("test.txt")
output = await storage.get("test.txt")
assert output is None
async def test_child():
storage = FilePipelineStorage()
storage = storage.child("tests/fixtures/text/input")
items = list(storage.find(re.compile(r".*\.txt$")))
assert items == [(str(Path("dulce.txt")), {})]
output = await storage.get("dulce.txt")
assert len(output) > 0
await storage.set("test.txt", "Hello, World!", encoding="utf-8")
output = await storage.get("test.txt")
assert output == "Hello, World!"
await storage.delete("test.txt")
output = await storage.get("test.txt")
assert output is None