You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.1 KiB
102 lines
3.1 KiB
5 months ago
|
import pytest
|
||
|
from datetime import datetime
|
||
|
from swarms.artifacts.main_artifact import Artifact, FileVersion
|
||
|
|
||
|
|
||
|
def test_file_version():
|
||
|
version = FileVersion(
|
||
|
version_number=1,
|
||
|
content="Initial content",
|
||
|
timestamp=datetime.now(),
|
||
|
)
|
||
|
assert version.version_number == 1
|
||
|
assert version.content == "Initial content"
|
||
|
|
||
|
|
||
|
def test_artifact_creation():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
assert artifact.file_path == "test.txt"
|
||
|
assert artifact.file_type == ".txt"
|
||
|
assert artifact.contents == ""
|
||
|
assert artifact.versions == []
|
||
|
assert artifact.edit_count == 0
|
||
|
|
||
|
|
||
|
def test_artifact_create():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
assert artifact.contents == "Initial content"
|
||
|
assert len(artifact.versions) == 1
|
||
|
assert artifact.versions[0].content == "Initial content"
|
||
|
assert artifact.edit_count == 0
|
||
|
|
||
|
|
||
|
def test_artifact_edit():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
artifact.edit("First edit")
|
||
|
assert artifact.contents == "First edit"
|
||
|
assert len(artifact.versions) == 2
|
||
|
assert artifact.versions[1].content == "First edit"
|
||
|
assert artifact.edit_count == 1
|
||
|
|
||
|
|
||
|
def test_artifact_get_version():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
artifact.edit("First edit")
|
||
|
version = artifact.get_version(1)
|
||
|
assert version.content == "Initial content"
|
||
|
|
||
|
|
||
|
def test_artifact_get_contents():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
assert artifact.get_contents() == "Initial content"
|
||
|
|
||
|
|
||
|
def test_artifact_get_version_history():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
artifact.edit("First edit")
|
||
|
history = artifact.get_version_history()
|
||
|
assert "Version 1" in history
|
||
|
assert "Version 2" in history
|
||
|
|
||
|
|
||
|
def test_artifact_to_dict():
|
||
|
artifact = Artifact(file_path="test.txt", file_type=".txt")
|
||
|
artifact.create("Initial content")
|
||
|
artifact_dict = artifact.to_dict()
|
||
|
assert artifact_dict["file_path"] == "test.txt"
|
||
|
assert artifact_dict["file_type"] == ".txt"
|
||
|
assert artifact_dict["contents"] == "Initial content"
|
||
|
assert artifact_dict["edit_count"] == 0
|
||
|
|
||
|
|
||
|
def test_artifact_from_dict():
|
||
|
artifact_dict = {
|
||
|
"file_path": "test.txt",
|
||
|
"file_type": ".txt",
|
||
|
"contents": "Initial content",
|
||
|
"versions": [
|
||
|
{
|
||
|
"version_number": 1,
|
||
|
"content": "Initial content",
|
||
|
"timestamp": datetime.now().isoformat(),
|
||
|
}
|
||
|
],
|
||
|
"edit_count": 0,
|
||
|
}
|
||
|
artifact = Artifact.from_dict(artifact_dict)
|
||
|
assert artifact.file_path == "test.txt"
|
||
|
assert artifact.file_type == ".txt"
|
||
|
assert artifact.contents == "Initial content"
|
||
|
assert artifact.versions[0].content == "Initial content"
|
||
|
assert artifact.edit_count == 0
|
||
|
|
||
|
|
||
|
# Run the tests
|
||
|
if __name__ == "__main__":
|
||
|
pytest.main()
|