Commit Graph

32 Commits

Author SHA1 Message Date
ca9f17fc37 refactor: split database model tests into organized modules
Split the monolithic test_database_models.py into focused test modules:

Database model tests (tests/unit/models/database/):
- test_customer.py: Customer model and authentication tests
- test_inventory.py: Inventory model tests
- test_marketplace_import_job.py: Import job model tests
- test_marketplace_product.py: Marketplace product model tests
- test_order.py: Order and OrderItem model tests
- test_product.py: Product model tests
- test_team.py: Team invitation and membership tests
- test_user.py: User model tests
- test_vendor.py: Vendor model tests

Schema validation tests (tests/unit/models/schema/):
- test_auth.py: Auth schema validation tests
- test_customer.py: Customer schema validation tests
- test_inventory.py: Inventory schema validation tests
- test_marketplace_import_job.py: Import job schema tests
- test_order.py: Order schema validation tests
- test_product.py: Product schema validation tests

This improves test organization and makes it easier to find
and maintain tests for specific models.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 21:42:26 +01:00
1bbbd5d4d7 test: add missing vendor context middleware tests and fix exception type
- Fix test_require_vendor_context_failure to expect VendorNotFoundException
  instead of HTTPException (aligning with actual implementation)
- Add tests for is_shop_api_request() method (5 tests)
- Add tests for extract_vendor_from_referer() method (10 tests)
  - Path-based extraction (/vendors/ and /vendor/)
  - Subdomain extraction from referer
  - Custom domain extraction
  - Missing referer/origin header handling
- Add middleware tests for shop API request handling (3 tests)
- Add middleware tests for system path skipping (5 parametrized tests)

Total: 23 new tests added, bringing test count from 61 to 84

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 21:39:33 +01:00
b8a46e1746 fix: protect critical re-export imports from linter removal
Problem:
- Ruff removed 'from app.core.database import Base' from models/database/base.py
- Import appeared "unused" (F401) but was actually a critical re-export
- Caused ImportError: cannot import name 'Base' at runtime
- Re-export pattern: import in one file to export from package

Solution:
1. Added F401 ignore for models/database/base.py in pyproject.toml
2. Created scripts/verify_critical_imports.py verification script
3. Integrated verification into make check and CI pipeline
4. Updated documentation with explanation

New Verification Script:
- Checks all critical re-export imports exist
- Detects import variations (parentheses, 'as' clauses)
- Handles SQLAlchemy declarative_base alternatives
- Runs as part of make check automatically

Protected Files:
- models/database/base.py - Re-exports Base for all models
- models/__init__.py - Exports Base for Alembic
- models/database/__init__.py - Exports Base from package
- All __init__.py files (already protected)

Makefile Changes:
- make verify-imports - Run import verification
- make check - Now includes verify-imports
- make ci - Includes verify-imports in pipeline

Documentation Updated:
- Code quality guide explains re-export protection
- Pre-commit workflow includes verification
- Examples of why re-exports matter

This prevents future issues where linters remove seemingly
"unused" imports that are actually critical for application structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:10:22 +01:00
238c1ec9b8 refactor: modernize code quality tooling with Ruff
- Replace black, isort, and flake8 with Ruff (all-in-one linter and formatter)
- Add comprehensive pyproject.toml configuration
- Simplify Makefile code quality targets
- Configure exclusions for venv/.venv in pyproject.toml
- Auto-fix 1,359 linting issues across codebase

Benefits:
- Much faster builds (Ruff is written in Rust)
- Single tool replaces multiple tools
- More comprehensive rule set (UP, B, C4, SIM, PIE, RET, Q)
- All configuration centralized in pyproject.toml
- Better import sorting and formatting consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:37:38 +01:00
21c13ca39b style: apply black and isort formatting across entire codebase
- Standardize quote style (single to double quotes)
- Reorder and group imports alphabetically
- Fix line breaks and indentation for consistency
- Apply PEP 8 formatting standards

Also updated Makefile to exclude both venv and .venv from code quality checks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:30:17 +01:00
23cf568c82 reaching 100% test coverage for the middleware unit tests 2025-11-19 22:26:45 +01:00
92a2610b70 renaming properly all middleware test cases and fixing bugs 2025-11-19 21:21:29 +01:00
21bd390685 unit test bug fixes 2025-11-19 20:21:11 +01:00
d947fa5ca0 removing legacy code on path_rewrite_middleware 2025-11-18 23:32:07 +01:00
b3009e3795 Fixed middleware authentication issues 2025-11-18 22:50:55 +01:00
807033be16 revamping documentation 2025-11-17 22:59:42 +01:00
5c80ba17c5 Main exception renamed to WizamartException 2025-10-27 21:55:05 +01:00
c88775134d Multitenant implementation with custom Domain, theme per vendor 2025-10-26 20:05:02 +01:00
c80e47134c Stats management revamping 2025-10-25 07:29:03 +02:00
1e2f211057 Renamed schemas to schema as per naming conventions 2025-10-11 12:14:11 +02:00
dd16198276 major refactoring adding vendor and customer features 2025-10-11 09:09:25 +02:00
f569995883 vendor refactoring 2025-10-05 19:49:03 +02:00
0114b6c46e shop product refactoring 2025-10-04 23:38:53 +02:00
4d2866af5e shop product refactoring 2025-10-04 21:27:48 +02:00
c971674ec2 marketplace refactoring 2025-10-04 13:38:10 +02:00
6b9817f179 test updates to take into account exception management 2025-09-27 13:47:36 +02:00
3e720212d9 Product tests update 2025-09-25 20:00:50 +02:00
cea88a46c5 Marketplace tests update 2025-09-24 22:28:44 +02:00
f9879126c8 Auth service tests update 2025-09-24 21:44:48 +02:00
8b86b3225a Admin service tests update 2025-09-24 21:02:17 +02:00
e348476b65 Moved utils folder to app/utils folder 2025-09-21 21:11:12 +02:00
2db03b20c5 Renaming models/api/ folder to models/schemas/ 2025-09-21 21:02:05 +02:00
c2a1056db7 QC check 2025-09-21 13:00:10 +02:00
5996cecc42 workflows testing 2025-09-20 21:29:02 +02:00
b7b98def35 Fixed test_download_csv_failure test 2025-09-20 20:21:25 +02:00
c494c5b5c6 API and database models refactoring 2025-09-20 20:17:16 +02:00
366093bbc6 Tests restructuring 2025-09-19 21:23:57 +02:00