Skip to content

Feat/qa harness and fixtures#2

Merged
Obayne merged 12 commits intomainfrom
feat/qa-harness-and-fixtures
Sep 23, 2025
Merged

Feat/qa harness and fixtures#2
Obayne merged 12 commits intomainfrom
feat/qa-harness-and-fixtures

Conversation

@Obayne
Copy link
Owner

@Obayne Obayne commented Sep 12, 2025

No description provided.

…pp/tools/* new tools (cad_core, trim, fillet, etc.)\n- Update main, layout, device, catalog, dxf_import, draw\n- Add db/loader.py\n- Leave sample Project assets untracked\n\nSource: stash@{0} (excluding .venv/__pycache__)
…commit config\n- Add requirements-dev.txt and setup_dev.ps1\n- Remove tracked build artifacts, caches, and backup files\n- Update README with exact workflow
…asic tests for app.units\n- Add GitHub Actions CI for lint + tests
…chitecture and contribution docs\n- Seed frontend/backend/cad_core packages and READMEs\n- Add PR and issue templates, CODEOWNERS
Adds more tests for the intersection_line_line function to cover more edge cases, including:
@Obayne Obayne merged commit 61c643f into main Sep 23, 2025
0 of 3 checks passed
Obayne added a commit that referenced this pull request Dec 1, 2025
✅ Fixed CI/CD Issues:
- Created conftest.py to fix pytest module import failures
- Added missing is_parallel() function to cad_core/lines.py
- Fixed SegmentDTO attribute references (.a/.b instead of .start/.end)
- Fixed type hints (list[] instead of List[])

✅ Backend Test Coverage (24 new tests, 100% passing):
- test_models.py: 11 tests for PointDTO and SegmentDTO
- test_geom_repo.py: 6 tests for InMemoryGeomRepo
- test_ops_service.py: 7 tests for OpsService operations

✅ Test Results:
- Backend: 24/24 passing (100%)
- CAD Core: 27/29 passing (93%) - 2 pre-existing failures
- Total: 51/53 passing (96% pass rate)

Fixes #1 (CI pipeline) and #2 (backend coverage) from DevOps roadmap.
All backend modules now have comprehensive test coverage.
Obayne added a commit that referenced this pull request Dec 1, 2025
✅ Fixed Linting Configuration:
- Moved ruff 'select' to [tool.ruff.lint] section (fixes deprecation warning)
- Updated all workflows to use new config

✅ Added Test Coverage Reporting:
- Integrated pytest-cov with coverage.xml export
- Added Codecov integration to CI (free for open-source)
- Configured coverage settings in pyproject.toml
- Source coverage for backend, cad_core, frontend, app modules

✅ Security Hardening (100% Free Tools):
- Created .env.example template with comprehensive documentation
- Added detect-secrets to pre-commit hooks
- Created .secrets.baseline for secret scanning
- Prevents accidental secret commits going forward

✅ Test Configuration:
- Added pytest.ini_options to pyproject.toml
- Configured test discovery and execution settings

📊 DevOps Progress:
- Task #1: ✅ CI pipeline fixed (tests now collect properly)
- Task #2: ✅ Backend coverage (24 tests, 100% passing)
- Task #3: ✅ Linting config modernized
- Task #4: ✅ Coverage reporting integrated
- Task #5: ✅ Security template created
- Task #6: ✅ Secret scanning enabled

All changes use free, open-source tools only. No subscription costs.
Obayne added a commit that referenced this pull request Dec 3, 2025
Issue: User reported 'database items missing'
Root Cause: Two separate database connections - catalog wasn't using shared DB

Changes:
- db/connection.py: Call loader.seed_demo() during initialization
- db/connection.py: Set row_factory for dict-like row access
- app/catalog.py: Use shared db/connection first, fall back to separate
- Add regression tests: tests/regression/test_database_connection.py

Verification:
- Database now has 6 devices, 3 types, 1 manufacturer
- Catalog successfully loads from shared database
- Coverage tables properly populated
- 5 regression tests passing

Resolves: Database connectivity issue #2 from REGRESSION_TRACKING.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant