refactor(drivers): organize backup modules into drivers subfolder
lint / docker (push) Has been cancelled
lint / docker (push) Has been cancelled
- Move all backup_*.py files to libtisbackup/drivers/ subdirectory - Move XenAPI.py and copy_vm_xcp.py to drivers/ (driver-specific) - Create drivers/__init__.py with automatic driver imports - Update tisbackup.py imports to use new structure - Add pyvmomi>=8.0.0 as mandatory dependency - Sync requirements.txt with pyproject.toml dependencies - Add pylint>=3.0.0 and pytest-cov>=6.0.0 to dev dependencies - Configure pylint and coverage tools in pyproject.toml - Add conventional commits guidelines to CLAUDE.md - Enhance .gitignore with comprehensive patterns for Python, IDEs, testing, and secrets - Update CLAUDE.md documentation with new structure and tooling Breaking Changes: - Drivers must now be imported from libtisbackup.drivers instead of libtisbackup - All backup driver files relocated to drivers/ subdirectory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+98
-1
@@ -10,9 +10,10 @@ dependencies = [
|
||||
"flask-login>=0.6.0",
|
||||
"huey==2.5.3",
|
||||
"iniparse==0.5",
|
||||
"paramiko==3.5.1",
|
||||
"paramiko==4.0.0",
|
||||
"peewee==3.17.9",
|
||||
"pexpect==4.9.0",
|
||||
"pyvmomi>=8.0.0",
|
||||
"redis==5.2.1",
|
||||
"requests==2.32.3",
|
||||
"ruff>=0.13.3",
|
||||
@@ -43,3 +44,99 @@ indent-width = 4
|
||||
|
||||
[tool.ruff.lint]
|
||||
ignore = ["F401", "F403", "F405", "E402", "E701", "E722", "E741"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
# Pytest configuration for TISBackup
|
||||
|
||||
# Test discovery patterns
|
||||
python_files = ["test_*.py"]
|
||||
python_classes = ["Test*"]
|
||||
python_functions = ["test_*"]
|
||||
|
||||
# Test paths
|
||||
testpaths = ["tests"]
|
||||
|
||||
# Output options
|
||||
addopts = [
|
||||
"-v",
|
||||
"--strict-markers",
|
||||
"--tb=short",
|
||||
"--color=yes",
|
||||
]
|
||||
|
||||
# Markers for categorizing tests
|
||||
markers = [
|
||||
"unit: Unit tests for individual functions/methods",
|
||||
"integration: Integration tests that test multiple components together",
|
||||
"ssh: Tests related to SSH functionality",
|
||||
"slow: Tests that take a long time to run",
|
||||
]
|
||||
|
||||
# Minimum Python version
|
||||
minversion = "3.13"
|
||||
|
||||
# Coverage options (optional - uncomment when pytest-cov is installed)
|
||||
# addopts = ["--cov=libtisbackup", "--cov-report=html", "--cov-report=term-missing"]
|
||||
|
||||
[tool.pylint.main]
|
||||
# Maximum line length
|
||||
max-line-length = 140
|
||||
|
||||
# Files or directories to skip
|
||||
ignore = ["tests", ".venv", "__pycache__", ".pytest_cache", "build", "dist"]
|
||||
|
||||
[tool.pylint."messages control"]
|
||||
# Disable specific warnings to align with ruff configuration
|
||||
disable = [
|
||||
"C0103", # invalid-name (similar to ruff E741)
|
||||
"C0114", # missing-module-docstring
|
||||
"C0115", # missing-class-docstring
|
||||
"C0116", # missing-function-docstring
|
||||
"R0902", # too-many-instance-attributes
|
||||
"R0903", # too-few-public-methods
|
||||
"R0913", # too-many-arguments
|
||||
"R0914", # too-many-locals
|
||||
"W0703", # broad-except (similar to ruff E722)
|
||||
"W0719", # broad-exception-raised
|
||||
]
|
||||
|
||||
[tool.pylint.format]
|
||||
# Indentation settings
|
||||
indent-string = " "
|
||||
|
||||
[tool.coverage.run]
|
||||
# Source code to measure coverage for
|
||||
source = ["libtisbackup"]
|
||||
|
||||
# Omit certain files
|
||||
omit = [
|
||||
"*/tests/*",
|
||||
"*/__pycache__/*",
|
||||
"*/site-packages/*",
|
||||
"*/.venv/*",
|
||||
]
|
||||
|
||||
[tool.coverage.report]
|
||||
# Precision for coverage percentage
|
||||
precision = 2
|
||||
|
||||
# Show lines that weren't covered
|
||||
show_missing = true
|
||||
|
||||
# Skip files with no executable code
|
||||
skip_empty = true
|
||||
|
||||
# Fail if coverage is below this percentage
|
||||
# fail_under = 80
|
||||
|
||||
[tool.coverage.html]
|
||||
# Directory for HTML coverage report
|
||||
directory = "htmlcov"
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"pylint>=3.0.0",
|
||||
"pytest>=8.4.2",
|
||||
"pytest-cov>=6.0.0",
|
||||
"pytest-mock>=3.15.1",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user