-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathtest_repository.py
50 lines (36 loc) · 1.63 KB
/
test_repository.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import tempfile
from moatless.repository.file import FileRepository
from moatless.repository.repository import InMemRepository
def test_inmem_repository_dump_and_validate():
# Create an InMemRepository with some files
files = {"file1.txt": "Content of file 1", "file2.py": "print('Hello, World!')"}
repo = InMemRepository(files=files)
# Dump the repository
dumped = repo.model_dump()
# Validate the dumped data
loaded_repo = InMemRepository.model_validate(dumped)
# Check if the loaded repository has the same files
assert loaded_repo.files == repo.files
def test_file_repository_dump_and_validate():
with tempfile.TemporaryDirectory() as temp_dir:
# Create some test files
file1_path = os.path.join(temp_dir, "file1.txt")
file2_path = os.path.join(temp_dir, "file2.py")
with open(file1_path, "w") as f:
f.write("Content of file 1")
with open(file2_path, "w") as f:
f.write("print('Hello, World!')")
# Create a FileRepository
repo = FileRepository(repo_path=temp_dir)
# Access the files to populate the _files dictionary
repo.get_file("file1.txt")
repo.get_file("file2.py")
# Dump the repository
dumped = repo.model_dump()
# Validate the dumped data
loaded_repo = FileRepository.model_validate(dumped)
# Check if the loaded repository has the same files
assert loaded_repo.path == repo.path
assert loaded_repo.get_file_content("file1.txt") == "Content of file 1"
assert loaded_repo.get_file_content("file2.py") == "print('Hello, World!')"