|
7 | 7 | import os
|
8 | 8 | import sys
|
9 | 9 | from pprint import pprint
|
10 |
| -from motapi import MOTDataClient |
| 10 | +from typing import Optional |
| 11 | +from unittest.mock import Mock |
11 | 12 |
|
12 |
| -# Retrieve credentials from environment variables |
13 |
| -CLIENT_ID = os.environ.get("MOT_CLIENT_ID") |
14 |
| -CLIENT_SECRET = os.environ.get("MOT_CLIENT_SECRET") |
15 |
| -API_KEY = os.environ.get("MOT_API_KEY") |
| 13 | +# It attempts to import MOTDataClient |
| 14 | +# but falls back to a mock if it is present. |
| 15 | +try: |
| 16 | + from motapi import MOTDataClient |
| 17 | +except ImportError: |
| 18 | + MOTDataClient = Mock() |
16 | 19 |
|
17 |
| -# Please set credentials |
18 |
| -if not CLIENT_ID or not CLIENT_SECRET or not API_KEY: |
19 |
| - print("Error: Please set MOT_CLIENT_ID, MOT_CLIENT_SECRET, and MOT_API_KEY environment variables.") |
20 |
| - sys.exit(1) |
| 20 | +# Retrieve credentials from environment variables |
| 21 | +CLIENT_ID: Optional[str] = os.environ.get("MOT_CLIENT_ID") |
| 22 | +CLIENT_SECRET: Optional[str] = os.environ.get("MOT_CLIENT_SECRET") |
| 23 | +API_KEY: Optional[str] = os.environ.get("MOT_API_KEY") |
21 | 24 |
|
22 | 25 | # Initialize the client
|
23 |
| -client = MOTDataClient(CLIENT_ID, CLIENT_SECRET, API_KEY) |
| 26 | +if all([CLIENT_ID, CLIENT_SECRET, API_KEY]): |
| 27 | + client = MOTDataClient( |
| 28 | + client_id=CLIENT_ID, |
| 29 | + client_secret=CLIENT_SECRET, |
| 30 | + api_key=API_KEY |
| 31 | + ) |
| 32 | +else: |
| 33 | + print("Warning: Using mock client as credentials are not set.") |
| 34 | + client = Mock() |
| 35 | + # Setup mock responses |
| 36 | + client.get_vehicle_data.return_value = {"mock": "vehicle data"} |
| 37 | + client.get_bulk_download_info.return_value = {"mock": "bulk download info"} |
| 38 | + client.renew_client_secret.return_value = "mock_new_secret" |
24 | 39 |
|
25 | 40 | def test_get_vehicle_data_by_registration():
|
26 | 41 | """Test retrieving vehicle data by registration number."""
|
|
0 commit comments