3.6 KiB
3.6 KiB
Integration Tests for Vendor Bill Editable Totals
Overview
This document describes the integration tests implemented for the vendor_bill_editable_totals module.
Test Coverage
The integration tests verify the following workflows and requirements:
1. Full Workflow - Modify price_subtotal (Requirement 4.3)
- Creates a vendor bill with invoice lines
- Modifies the
price_subtotalfield - Verifies that
price_unitis automatically recalculated - Saves the bill and verifies persistence
- Validates that
price_totalis correctly computed with taxes
2. Full Workflow - Modify price_total (Requirement 4.3)
- Creates a vendor bill with invoice lines and taxes
- Modifies the
price_totalfield - Verifies that
price_unitis automatically recalculated - Ensures
price_subtotalis correctly derived fromprice_total - Saves the bill and verifies persistence
3. Multiple Lines Workflow (Requirement 4.3)
- Creates a vendor bill with multiple invoice lines
- Modifies different fields on different lines
- Verifies that each line is calculated independently
- Ensures no interference between lines
4. Compatibility with Standard Validations (Requirement 4.3)
- Verifies that standard Odoo validations still work
- Tests that standard compute methods function correctly
- Ensures the module doesn't break existing Odoo behavior
- Validates that bills can be saved after modifications
5. Refund Workflow (Requirement 4.3)
- Creates a vendor refund (credit note)
- Tests with negative values
- Verifies calculations work correctly with negative amounts
- Ensures refunds can be saved
6. No Interference with Other Move Types (Requirement 4.2)
- Creates a customer invoice (out_invoice)
- Attempts to modify totals
- Verifies that the module only affects vendor bills
- Ensures customer invoices are not affected
Running the Tests
Standalone Tests
The standalone integration tests can be run without a full Odoo database:
python3 customaddons/vendor_bill_editable_totals/tests/run_integration_tests.py
Full Odoo Integration Tests
For complete integration testing with Odoo's test framework:
python3 odoo/odoo-bin -c odoo.conf --test-enable --stop-after-init \
-d odoo17 -u vendor_bill_editable_totals --log-level=test
Or to run only the integration tests:
python3 odoo/odoo-bin -c odoo.conf --test-enable --stop-after-init \
-d odoo17 --test-tags vendor_bill_editable_totals.test_integration
Test Files
test_integration.py- Full Odoo integration tests using TransactionCaserun_integration_tests.py- Standalone test runner with mock objects
Test Results
All integration tests pass successfully:
- ✓ Full workflow - modify price_subtotal
- ✓ Full workflow - modify price_total
- ✓ Multiple lines workflow
- ✓ Compatibility with standard validations
- ✓ Refund workflow
- ✓ No interference with other move types
Requirements Validated
These integration tests validate the following requirements:
- Requirement 4.2: Module doesn't interfere with standard Odoo flows
- Requirement 4.3: Standard Odoo validations and computations work correctly
Notes
The integration tests complement the existing test suite:
- Unit tests (
test_edge_cases.py) - Test specific scenarios and edge cases - Property-based tests - Test universal properties across random inputs
- Integration tests - Test full workflows from creation to save
- View tests (
test_view_configuration.py) - Test UI configuration
Together, these tests provide comprehensive coverage of the module's functionality.