diff --git a/corres2math/lists.py b/corres2math/lists.py index 187f4e2..9804ac6 100644 --- a/corres2math/lists.py +++ b/corres2math/lists.py @@ -8,6 +8,17 @@ _client = None def get_sympa_client() -> Client: global _client if _client is None: - _client = Client("https://" + os.getenv("SYMPA_URL")) - _client.login(os.getenv("SYMPA_EMAIL"), os.getenv("SYMPA_PASSWORD")) + if os.getenv("SYMPA_PASSWORD", None) is not None: + _client = Client("https://" + os.getenv("SYMPA_URL")) + _client.login(os.getenv("SYMPA_EMAIL"), os.getenv("SYMPA_PASSWORD")) + else: + _client = FakeSympaSoapClient() return _client + + +class FakeSympaSoapClient: + """ + Simulate a Sympa Soap client to run tests, if no Sympa instance is connected. + """ + def __getattribute__(self, item): + return lambda *args, **kwargs: None