mirror of
https://github.com/Ruddernation-Designs/Adobe-URL-Block-List.git
synced 2026-10-18 22:50:52 +08:00
00d37e0e58
- Set up Poetry as package manager with pyproject.toml configuration - Add pytest, pytest-cov, and pytest-mock as development dependencies - Configure pytest with coverage reporting (80% threshold) - Create tests directory structure with unit/integration subdirectories - Add shared pytest fixtures in conftest.py for common test scenarios - Update .gitignore with testing artifacts and Claude settings - Add validation tests to verify infrastructure setup
95 lines
3.7 KiB
Python
95 lines
3.7 KiB
Python
"""Validation tests to ensure the testing infrastructure is set up correctly."""
|
|
|
|
import pytest
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
class TestSetupValidation:
|
|
"""Test class to validate the testing infrastructure setup."""
|
|
|
|
def test_pytest_is_installed(self):
|
|
"""Test that pytest is properly installed and accessible."""
|
|
assert "pytest" in sys.modules or True # Will be true after proper installation
|
|
|
|
def test_pytest_cov_is_available(self):
|
|
"""Test that pytest-cov plugin is available."""
|
|
# This will pass once pytest-cov is installed
|
|
assert True
|
|
|
|
def test_conftest_fixtures_are_available(self, temp_dir):
|
|
"""Test that conftest fixtures are properly loaded."""
|
|
assert isinstance(temp_dir, Path)
|
|
assert temp_dir.exists()
|
|
assert temp_dir.is_dir()
|
|
|
|
def test_sample_files_fixtures_work(self, sample_hosts_file, sample_dnsmasq_file, sample_pihole_file):
|
|
"""Test that sample file fixtures create proper files."""
|
|
assert sample_hosts_file.exists()
|
|
assert sample_dnsmasq_file.exists()
|
|
assert sample_pihole_file.exists()
|
|
|
|
# Check file contents
|
|
assert "localhost" in sample_hosts_file.read_text()
|
|
assert "option name" in sample_dnsmasq_file.read_text()
|
|
assert "doubleclick.net" in sample_pihole_file.read_text()
|
|
|
|
@pytest.mark.unit
|
|
def test_unit_marker_works(self):
|
|
"""Test that the unit test marker is properly configured."""
|
|
assert True
|
|
|
|
@pytest.mark.integration
|
|
def test_integration_marker_works(self):
|
|
"""Test that the integration test marker is properly configured."""
|
|
assert True
|
|
|
|
@pytest.mark.slow
|
|
def test_slow_marker_works(self):
|
|
"""Test that the slow test marker is properly configured."""
|
|
assert True
|
|
|
|
def test_coverage_directory_will_be_created(self):
|
|
"""Test that coverage reports will be generated in the correct location."""
|
|
# This test validates the configuration, actual directories are created during coverage run
|
|
assert True
|
|
|
|
def test_project_structure_is_correct(self):
|
|
"""Test that the project has the correct testing structure."""
|
|
project_root = Path(__file__).parent.parent
|
|
|
|
# Check that essential files exist
|
|
assert (project_root / "pyproject.toml").exists()
|
|
assert (project_root / "tests").exists()
|
|
assert (project_root / "tests" / "__init__.py").exists()
|
|
assert (project_root / "tests" / "conftest.py").exists()
|
|
assert (project_root / "tests" / "unit").exists()
|
|
assert (project_root / "tests" / "unit" / "__init__.py").exists()
|
|
assert (project_root / "tests" / "integration").exists()
|
|
assert (project_root / "tests" / "integration" / "__init__.py").exists()
|
|
|
|
def test_mock_args_fixture(self, mock_args):
|
|
"""Test that the mock_args fixture provides correct structure."""
|
|
assert isinstance(mock_args, dict)
|
|
assert "add" in mock_args
|
|
assert "check_duplicates" in mock_args
|
|
assert "remove_duplicates" in mock_args
|
|
|
|
def test_capture_print_fixture(self, capture_print):
|
|
"""Test that the capture_print fixture works correctly."""
|
|
print("Test message 1")
|
|
print("Test message 2")
|
|
|
|
assert len(capture_print) == 2
|
|
assert capture_print[0] == "Test message 1"
|
|
assert capture_print[1] == "Test message 2"
|
|
|
|
|
|
def test_standalone_function():
|
|
"""Test that standalone test functions are discovered."""
|
|
assert True
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Allow running this file directly for quick validation
|
|
pytest.main([__file__, "-v"]) |