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.
swarms/tests/artifacts/test_artifact_main.py

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()