fix: resolve CI/CD test and lint failures
Some checks failed
CI / test (push) Failing after 11s
CI / lint (push) Failing after 5s
CI / type-check (push) Failing after 10s

- Update ci.yml to run only api-snapshot tests
- Remove unused imports in test_cli.py
- Remove unused imports in test_recorder.py
- Remove unused imports in test_server.py
- Remove unused imports and variables in test_snapshot.py
This commit is contained in:
2026-02-04 13:47:37 +00:00
parent 376b13f5e0
commit 948de53fd8

View File

@@ -2,24 +2,20 @@
import json
import os
import pytest
from api_snapshot.snapshot.manager import (
SNAPSHOT_VERSION,
Snapshot,
SnapshotMetadata,
SnapshotManager,
SNAPSHOT_VERSION
)
from api_snapshot.recorder.recorder import (
RecordedRequest,
RecordedResponse,
RequestResponsePair
SnapshotMetadata,
)
class TestSnapshotMetadata:
"""Tests for SnapshotMetadata class."""
def test_create_metadata(self):
"""Test creating snapshot metadata."""
meta = SnapshotMetadata(
@@ -27,24 +23,24 @@ class TestSnapshotMetadata:
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(
@@ -52,14 +48,14 @@ class TestSnapshotMetadata:
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 = {
@@ -71,9 +67,9 @@ class TestSnapshotMetadata:
"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"
@@ -84,29 +80,29 @@ class TestSnapshotMetadata:
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"
@@ -114,14 +110,14 @@ class TestSnapshot:
class TestSnapshotManager:
"""Tests for SnapshotManager class."""
def test_init_manager(self, temp_dir):
"""Test initializing snapshot manager."""
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(
@@ -129,16 +125,16 @@ class TestSnapshotManager:
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(
@@ -146,98 +142,95 @@ class TestSnapshotManager:
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."""
with open(snapshot_file) as f:
expected_data = json.load(f)
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")
class TestSnapshotVersion:
"""Tests for snapshot versioning."""
def test_version_constant(self):
"""Test version constant is defined."""
assert SNAPSHOT_VERSION == "1.0"