-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconftest.py
More file actions
137 lines (111 loc) · 3.69 KB
/
conftest.py
File metadata and controls
137 lines (111 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
"""Fixtures and test data automatically loaded by pytest."""
from unittest.mock import MagicMock
import pytest
from kiota_abstractions.request_adapter import RequestAdapter
from kiota_serialization_json.json_serialization_writer_factory import (
JsonSerializationWriterFactory,
)
from src.models.gas_settings import GasSettings
from src.models.gateway_request import GatewayRequest
from src.models.gateway_response import GatewayResponse
from src.models.message import Message
from src.models.message_status import MessageStatus
from src.models.originator_settings import OriginatorSettings
from src.models.originator_type import OriginatorType
from src.models.parameter import Parameter
from src.models.send_window import SendWindow
from src.models.settings import Settings
from src.mt_http_client import MtHttpClient
BASE_URL = "https://smsgw.puzzel.com"
SERVICE_ID = 12345
USERNAME = "test_user"
PASSWORD = "test_password"
RECIPIENT = "+4799999999"
BATCH_REFERENCE = "test-batch-001"
@pytest.fixture
def mock_adapter() -> MagicMock:
"""Return a mock RequestAdapter."""
adapter = MagicMock(spec=RequestAdapter)
adapter.base_url = BASE_URL
adapter.get_serialization_writer_factory.return_value = (
JsonSerializationWriterFactory()
)
return adapter
@pytest.fixture
def client(mock_adapter: MagicMock) -> MtHttpClient:
"""Return a MtHttpClient with a mock adapter."""
return MtHttpClient(mock_adapter)
@pytest.fixture
def basic_message() -> Message:
"""Return a basic Message."""
return Message(recipient=RECIPIENT, content="Hello from tests!")
@pytest.fixture
def originator_settings() -> OriginatorSettings:
"""Return OriginatorSettings with international type."""
return OriginatorSettings(
originator=RECIPIENT,
originator_type=OriginatorType.International,
)
@pytest.fixture
def gas_settings() -> GasSettings:
"""Return a GasSettings instance."""
return GasSettings(service_code="01010", description="Test service")
@pytest.fixture
def send_window() -> SendWindow:
"""Return a SendWindow instance."""
return SendWindow(
start_date="2024-01-15",
start_time="08:00:00",
stop_date="2024-01-16",
stop_time="20:00:00",
)
@pytest.fixture
def parameter() -> Parameter:
"""Return a Parameter instance."""
return Parameter(key="someKey", value="someValue")
@pytest.fixture
def settings(
originator_settings: OriginatorSettings,
gas_settings: GasSettings,
send_window: SendWindow,
parameter: Parameter,
) -> Settings:
"""Return a fully populated Settings instance."""
return Settings(
originator_settings=originator_settings,
gas_settings=gas_settings,
send_window=send_window,
parameter=[parameter],
priority=1,
validity=120,
auto_detect_encoding=True,
)
@pytest.fixture
def gateway_request(basic_message: Message) -> GatewayRequest:
"""Return a GatewayRequest."""
return GatewayRequest(
service_id=SERVICE_ID,
username=USERNAME,
password=PASSWORD,
batch_reference=BATCH_REFERENCE,
message=[basic_message],
)
@pytest.fixture
def message_status() -> MessageStatus:
"""Return a MessageStatus."""
return MessageStatus(
message_id="msg-001",
recipient=RECIPIENT,
status_code=200,
status_message="OK",
sequence_index=1,
client_reference="ref-001",
session_id="session-001",
)
@pytest.fixture
def gateway_response(message_status: MessageStatus) -> GatewayResponse:
"""Return a GatewayResponse."""
return GatewayResponse(
batch_reference=BATCH_REFERENCE,
message_status=[message_status],
)