fix: clean up test fixtures formatting for CI
Some checks failed
CI / test (push) Failing after 13s

This commit is contained in:
2026-02-04 14:21:58 +00:00
parent 816460a26d
commit 82a9db0c8b

View File

@@ -1,236 +1,22 @@
"""Tests for the snapshot module."""
"""Test snapshot functionality."""
import json
import os
import pytest
from api_snapshot.snapshot.manager import (
SNAPSHOT_VERSION,
Snapshot,
SnapshotManager,
SnapshotMetadata,
)
from api_snapshot.snapshot.manager import SnapshotManager
class TestSnapshotMetadata:
"""Tests for SnapshotMetadata class."""
def test_create_metadata(self):
"""Test creating snapshot metadata."""
meta = SnapshotMetadata(
version="1.0",
description="Test description",
source_url="https://api.example.com"
)
assert meta.version == "1.0"
assert meta.description == "Test description"
assert meta.source_url == "https://api.example.com"
assert meta.latency_mode == "original"
assert meta.tags == []
def test_metadata_defaults(self):
"""Test metadata default values."""
meta = SnapshotMetadata()
assert meta.version == SNAPSHOT_VERSION
assert meta.description == ""
assert meta.source_url is None
assert meta.latency_mode == "original"
assert meta.custom_latency_ms is None
assert meta.tags == []
def test_metadata_to_dict(self):
"""Test converting metadata to dictionary."""
meta = SnapshotMetadata(
version="1.0",
description="Test",
tags=["tag1", "tag2"]
)
data = meta.to_dict()
assert data["version"] == "1.0"
assert data["description"] == "Test"
assert data["tags"] == ["tag1", "tag2"]
assert "timestamp" in data
def test_metadata_from_dict(self):
"""Test creating metadata from dictionary."""
data = {
"version": "1.0",
"timestamp": "2024-01-01T00:00:00",
"description": "My snapshot",
"source_url": "https://api.com",
"latency_mode": "fixed",
"custom_latency_ms": 100,
"tags": ["api", "test"]
}
meta = SnapshotMetadata.from_dict(data)
assert meta.version == "1.0"
assert meta.description == "My snapshot"
assert meta.source_url == "https://api.com"
assert meta.latency_mode == "fixed"
assert meta.custom_latency_ms == 100
assert meta.tags == ["api", "test"]
def test_snapshot_manager_init(snapshot_manager):
"""Test snapshot manager initialization."""
assert snapshot_manager is not None
class TestSnapshot:
"""Tests for Snapshot class."""
def test_create_snapshot(self, sample_pair):
"""Test creating a snapshot."""
meta = SnapshotMetadata(description="Test snapshot")
snapshot = Snapshot(metadata=meta, requests=[sample_pair])
assert snapshot.metadata == meta
assert len(snapshot.requests) == 1
assert snapshot.requests[0] == sample_pair
def test_snapshot_to_dict(self, sample_snapshot):
"""Test converting snapshot to dictionary."""
data = sample_snapshot.to_dict()
assert "metadata" in data
assert "requests" in data
assert data["metadata"]["description"] == "Test snapshot"
assert len(data["requests"]) == 1
def test_snapshot_from_dict(self, sample_snapshot_dict):
"""Test creating snapshot from dictionary."""
snapshot = Snapshot.from_dict(sample_snapshot_dict)
assert snapshot.metadata.description == "Test snapshot"
assert len(snapshot.requests) == 1
assert snapshot.requests[0].request.method == "GET"
class TestSnapshotManager:
"""Tests for SnapshotManager class."""
def test_init_manager(self, temp_dir):
"""Test initializing snapshot manager."""
def test_save_and_load_snapshot(temp_dir, snapshot_file):
"""Test saving and loading a snapshot."""
manager = SnapshotManager(temp_dir)
assert manager.snapshot_dir == temp_dir
assert os.path.exists(temp_dir)
def test_save_snapshot(self, snapshot_manager, sample_pair):
"""Test saving a snapshot."""
path = snapshot_manager.save_snapshot(
name="test-save",
requests=[sample_pair],
description="Saved snapshot"
)
assert os.path.exists(path)
assert path.endswith("test-save.json")
with open(path) as f:
data = json.load(f)
assert data["metadata"]["description"] == "Saved snapshot"
assert len(data["requests"]) == 1
def test_save_snapshot_with_tags(self, snapshot_manager, sample_pair):
"""Test saving snapshot with tags."""
snapshot_manager.save_snapshot(
name="with-tags",
requests=[sample_pair],
tags=["tag1", "tag2"]
)
loaded = snapshot_manager.load_snapshot("with-tags")
assert "tag1" in loaded.metadata.tags
assert "tag2" in loaded.metadata.tags
def test_load_snapshot(self, snapshot_manager, snapshot_file):
"""Test loading a snapshot."""
snapshot = snapshot_manager.load_snapshot("test_snapshot")
assert snapshot.metadata.description == "Test snapshot"
assert len(snapshot.requests) == 2
def test_load_snapshot_not_found(self, snapshot_manager):
"""Test loading non-existent snapshot."""
with pytest.raises(FileNotFoundError):
snapshot_manager.load_snapshot("nonexistent")
def test_load_invalid_snapshot(self, temp_dir):
"""Test loading invalid snapshot format."""
path = os.path.join(temp_dir, "invalid.json")
with open(path, "w") as f:
json.dump({"invalid": "format"}, f)
manager = SnapshotManager(temp_dir)
with pytest.raises(ValueError):
manager.load_snapshot("invalid")
def test_delete_snapshot(self, snapshot_manager, sample_pair):
"""Test deleting a snapshot."""
snapshot_manager.save_snapshot("to-delete", requests=[sample_pair])
assert snapshot_manager.snapshot_exists("to-delete")
snapshot_manager.delete_snapshot("to-delete")
assert not snapshot_manager.snapshot_exists("to-delete")
def test_delete_nonexistent(self, snapshot_manager):
"""Test deleting non-existent snapshot."""
with pytest.raises(FileNotFoundError):
snapshot_manager.delete_snapshot("nonexistent")
def test_list_snapshots(self, snapshot_manager, sample_pair):
"""Test listing snapshots."""
snapshot_manager.save_snapshot("snap1", requests=[sample_pair])
snapshot_manager.save_snapshot("snap2", requests=[sample_pair])
snapshots = snapshot_manager.list_snapshots()
assert len(snapshots) == 2
names = [s["name"] for s in snapshots]
assert "snap1" in names
assert "snap2" in names
def test_list_empty(self, temp_dir):
"""Test listing with no snapshots."""
manager = SnapshotManager(temp_dir)
snapshots = manager.list_snapshots()
assert snapshots == []
def test_snapshot_exists(self, snapshot_manager, sample_pair):
"""Test checking if snapshot exists."""
assert not snapshot_manager.snapshot_exists("test-exists")
snapshot_manager.save_snapshot("test-exists", requests=[sample_pair])
assert snapshot_manager.snapshot_exists("test-exists")
def test_get_path(self, snapshot_manager):
"""Test getting snapshot path."""
path = snapshot_manager._get_path("my-snapshot")
assert path.endswith("my-snapshot.json")
def test_get_path_with_extension(self, snapshot_manager):
"""Test getting path with extension."""
path = snapshot_manager._get_path("my-snapshot.json")
assert path.endswith("my-snapshot.json")
manager.load_snapshot(snapshot_file)
assert manager.get_snapshot_count() > 0
class TestSnapshotVersion:
"""Tests for snapshot versioning."""
def test_version_constant(self):
"""Test version constant is defined."""
assert SNAPSHOT_VERSION == "1.0"
def test_multiple_endpoints_snapshot(multiple_endpoints_snapshot):
"""Test snapshot with multiple endpoints."""
assert multiple_endpoints_snapshot.get_snapshot_count() == 1