|
41 | 41 | from app.clients.email.aws_ses_stub import AwsSesStubClient |
42 | 42 | from app.clients.letter.dvla import DVLAClient |
43 | 43 | from app.clients.sms.firetext import FiretextClient |
| 44 | +from app.clients.sms.firetext_stub import FiretextStubClient |
44 | 45 | from app.clients.sms.mmg import MMGClient |
| 46 | +from app.clients.sms.mmg_stub import MMGStubClient |
45 | 47 | from app.session import BindForcingSession |
46 | 48 |
|
47 | 49 | Base = declarative_base() |
|
90 | 92 | memo_resetters.append(lambda: get_mmg_client.clear()) |
91 | 93 | mmg_client = LocalProxy(get_mmg_client) |
92 | 94 |
|
| 95 | +_firetext_stub_client_context_var: ContextVar[FiretextStubClient] = ContextVar("firetext_stub_client") |
| 96 | +get_firetext_stub_client: LazyLocalGetter[FiretextStubClient] = LazyLocalGetter( |
| 97 | + _firetext_stub_client_context_var, |
| 98 | + lambda: FiretextStubClient( |
| 99 | + current_app, |
| 100 | + statsd_client=statsd_client, |
| 101 | + stub_url=current_app.config["FIRETEXT_STUB_URL"], |
| 102 | + ), |
| 103 | + expected_type=FiretextStubClient, |
| 104 | +) |
| 105 | +memo_resetters.append(lambda: get_firetext_stub_client.clear()) |
| 106 | +firetext_stub_client = LocalProxy(get_firetext_stub_client) |
| 107 | + |
| 108 | +_mmg_stub_client_context_var: ContextVar[MMGStubClient] = ContextVar("mmg_stub_client") |
| 109 | +get_mmg_stub_client: LazyLocalGetter[MMGStubClient] = LazyLocalGetter( |
| 110 | + _mmg_stub_client_context_var, |
| 111 | + lambda: MMGStubClient( |
| 112 | + current_app, |
| 113 | + statsd_client=statsd_client, |
| 114 | + stub_url=current_app.config["MMG_STUB_URL"], |
| 115 | + ), |
| 116 | + expected_type=MMGStubClient, |
| 117 | +) |
| 118 | +memo_resetters.append(lambda: get_mmg_stub_client.clear()) |
| 119 | +mmg_stub_client = LocalProxy(get_mmg_stub_client) |
| 120 | + |
93 | 121 | _aws_ses_client_context_var: ContextVar[AwsSesClient] = ContextVar("aws_ses_client") |
94 | 122 | get_aws_ses_client: LazyLocalGetter[AwsSesClient] = LazyLocalGetter( |
95 | 123 | _aws_ses_client_context_var, |
|
119 | 147 | _notification_provider_clients_context_var, |
120 | 148 | lambda: NotificationProviderClients( |
121 | 149 | sms_clients={ |
122 | | - getter.expected_type.name: LocalProxy(getter) |
123 | | - for getter in ( |
124 | | - get_firetext_client, |
125 | | - get_mmg_client, |
126 | | - ) |
127 | | - }, |
| 150 | + "firetext": LocalProxy(get_firetext_client), |
| 151 | + "mmg": LocalProxy(get_mmg_client), |
| 152 | + } |
| 153 | + | ( |
| 154 | + {"firetext-stub": LocalProxy(get_firetext_stub_client)} |
| 155 | + if current_app.config.get("FIRETEXT_STUB_URL") |
| 156 | + else {} |
| 157 | + ) |
| 158 | + | ({"mmg-stub": LocalProxy(get_mmg_stub_client)} if current_app.config.get("MMG_STUB_URL") else {}), |
128 | 159 | email_clients={ |
129 | | - getter.expected_type.name: LocalProxy(getter) |
130 | | - # If a stub url is provided for SES, then use the stub client rather |
131 | | - # than the real SES boto client |
132 | | - for getter in ((get_aws_ses_stub_client,) if current_app.config["SES_STUB_URL"] else (get_aws_ses_client,)) |
133 | | - }, |
| 160 | + "ses": LocalProxy(get_aws_ses_client), |
| 161 | + } |
| 162 | + | ({"ses-stub": LocalProxy(get_aws_ses_stub_client)} if current_app.config.get("SES_STUB_URL") else {}), |
134 | 163 | ), |
135 | 164 | ) |
136 | 165 | memo_resetters.append(lambda: get_notification_provider_clients.clear()) |
|
0 commit comments