deftest_extract_invoice_code(self, service): """Test invoice code extraction""" text = "Invoice Code: 123456789012" result = service._extract_pattern(text, r'Invoice Code[::]\s*(\d{12})') assert result == '123456789012'
deftest_extract_invoice_code_not_found(self, service): """Test invoice code not found""" text = "This is plain text" result = service._extract_pattern(text, r'Invoice Code[::]\s*(\d{12})') assert result isNone
# tests/test_with_mock.py from unittest.mock import Mock, patch, MagicMock
classTestWithMock: """Mock Testing Examples"""
deftest_mock_function(self): """Mock function""" mock_func = Mock(return_value=42) result = mock_func()
assert result == 42 mock_func.assert_called_once()
deftest_patch_decorator(self): """Using patch decorator""" with patch('services.invoice_service.OCRService') as mock_ocr: mock_instance = MagicMock() mock_instance.recognize.return_value = "Recognition result" mock_ocr.return_value = mock_instance
# Execute test from services.invoice_service import InvoiceService service = InvoiceService(mock_instance, Mock()) result = service.ocr.recognize("test.jpg")
assert result == "Recognition result"
@patch('services.invoice_service.requests.get') deftest_api_call(self, mock_get): """Test API call""" mock_get.return_value.json.return_value = {'status': 'ok'}
# Execute API call import requests response = requests.get('http://api.example.com')