Files
dependency-freshness-checker/tests/conftest.py
7000pctAUTO 1556473336
Some checks failed
CI / test (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / type-check (push) Has been cancelled
fix: correct CI workflow paths for depcheck project
2026-02-04 15:14:46 +00:00

138 lines
2.9 KiB
Python

"""Test configuration and fixtures for depcheck tests."""
import json
import tempfile
from pathlib import Path
import pytest
from depcheck.models import Dependency, PackageManager, ScanResult, Severity, Vulnerability
@pytest.fixture
def temp_dir():
"""Create a temporary directory."""
with tempfile.TemporaryDirectory() as tmpdir:
yield tmpdir
@pytest.fixture
def sample_package_json():
"""Create a sample package.json file content."""
return """{
"name": "test-project",
"version": "1.0.0",
"dependencies": {
"express": "4.18.2",
"lodash": "4.17.20"
},
"devDependencies": {
"jest": "29.7.0"
}
}"""
@pytest.fixture
def sample_requirements_txt():
"""Create a sample requirements.txt file content."""
return """requests>=2.31.0
flask>=2.0.0
numpy==1.24.0
"""
@pytest.fixture
def sample_go_mod():
"""Create a sample go.mod file content."""
return """
module github.com/example/project
go 1.21
require (
github.com/stretchr/testify v1.8.4
golang.org/x/crypto v0.17.0
)
"""
@pytest.fixture
def sample_cargo_toml():
"""Create a sample Cargo.toml file content."""
return """
[package]
name = "my-project"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = "1.0"
tokio = "1.36"
"""
@pytest.fixture
def sample_vulnerable_dependencies():
"""Create scan result with vulnerable dependencies."""
dep1 = Dependency(
name="lodash",
current_version="4.17.20",
package_manager=PackageManager.NPM,
)
dep2 = Dependency(
name="requests",
current_version="2.28.0",
package_manager=PackageManager.PIP,
)
vuln1 = Vulnerability(
cve_id="CVE-2021-23337",
severity=Severity.HIGH,
description="Command Injection",
affected_versions="<4.17.21",
fixed_version="4.17.21",
)
vuln2 = Vulnerability(
cve_id="CVE-2024-35195",
severity=Severity.MEDIUM,
description="Auth bypass",
affected_versions="<2.32.0",
fixed_version="2.32.0",
)
result = ScanResult()
result.dependencies = [dep1, dep2]
result.vulnerabilities = [(dep1, vuln1), (dep2, vuln2)]
return result
@pytest.fixture
def sample_outdated_dependencies():
"""Create scan result with outdated dependencies."""
deps = [
Dependency(
name="express",
current_version="4.18.2",
latest_version="4.19.2",
package_manager=PackageManager.NPM,
is_outdated=True,
),
Dependency(
name="flask",
current_version="2.0.0",
latest_version="3.0.0",
package_manager=PackageManager.PIP,
is_outdated=True,
),
]
return ScanResult(dependencies=deps)
@pytest.fixture
def empty_scan_result():
"""Create an empty scan result."""
return ScanResult()