diff --git a/app/clients/__init__.py b/app/clients/__init__.py index 7ab453318..1946f70e6 100644 --- a/app/clients/__init__.py +++ b/app/clients/__init__.py @@ -1,3 +1,4 @@ +from abc import abstractmethod from typing import Protocol from botocore.config import Config @@ -29,7 +30,9 @@ class Client(Protocol): Base client for sending notifications. """ - pass + @abstractmethod + def init_app(self, current_app, *args, **kwargs): + raise NotImplementedError("TODO: Need to implement.") class NotificationProviderClients(object): diff --git a/app/clients/performance_platform/performance_platform_client.py b/app/clients/performance_platform/performance_platform_client.py index 7e3d8c5be..ec0f6b999 100644 --- a/app/clients/performance_platform/performance_platform_client.py +++ b/app/clients/performance_platform/performance_platform_client.py @@ -10,7 +10,7 @@ class PerformancePlatformClient: def active(self): return self._active - def init_app(self, app): + def init_app(self, app, *args, **kwargs): self._active = app.config.get("PERFORMANCE_PLATFORM_ENABLED") if self.active: self.performance_platform_url = app.config.get("PERFORMANCE_PLATFORM_URL") diff --git a/app/clients/sms/__init__.py b/app/clients/sms/__init__.py index cd4ca57a7..97639e970 100644 --- a/app/clients/sms/__init__.py +++ b/app/clients/sms/__init__.py @@ -1,4 +1,5 @@ -from abc import abstractmethod +from abc import abstractmethod, abstractproperty +from typing import final from app.clients import Client, ClientException @@ -20,14 +21,14 @@ class SmsClient(Client): Base Sms client for sending smss. """ - @abstractmethod - def init_app(self, *args, **kwargs): - raise NotImplementedError("TODO Need to implement.") - @abstractmethod def send_sms(self, *args, **kwargs): raise NotImplementedError("TODO Need to implement.") - @abstractmethod - def get_name(self): + @abstractproperty + def name(self): raise NotImplementedError("TODO Need to implement.") + + @final + def get_name(self): + return self.name diff --git a/app/clients/sms/aws_sns.py b/app/clients/sms/aws_sns.py index 1061ec9ce..d75122a7e 100644 --- a/app/clients/sms/aws_sns.py +++ b/app/clients/sms/aws_sns.py @@ -43,9 +43,6 @@ class AwsSnsClient(SmsClient): def name(self): return "sns" - def get_name(self): - return self.name - def _valid_sender_number(self, sender): return sender and re.match(self._valid_sender_regex, sender) diff --git a/tests/app/clients/test_sms.py b/tests/app/clients/test_sms.py index 5718cbc81..f2a5abfed 100644 --- a/tests/app/clients/test_sms.py +++ b/tests/app/clients/test_sms.py @@ -10,6 +10,12 @@ def fake_client(notify_api): def name(self): return "fake" + def init_app(self, current_app, *args, **kwargs): + pass + + def send_sms(self, *args, **kwargs): + pass + fake_client = FakeSmsClient() # fake_client.init_app(notify_api) return fake_client