From 109f50bec972dfa5a45919e74a3d599af496865c Mon Sep 17 00:00:00 2001 From: Sangat Das Date: Tue, 12 Jul 2022 01:08:22 -0700 Subject: [PATCH] 1 Test case fails: tests/backend/tarantool/test_schema.py::test_drop - AssertionError: assert [] == ['abci_chains...ta_data', ...] --- planetmint/backend/connection.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/planetmint/backend/connection.py b/planetmint/backend/connection.py index e9da39b..41f91af 100644 --- a/planetmint/backend/connection.py +++ b/planetmint/backend/connection.py @@ -20,6 +20,13 @@ BACKENDS = { logger = logging.getLogger(__name__) +class DBSingleton(type): + _instances = {} + + def __call__(cls, *args, **kwargs): + if cls not in cls._instances: + cls._instances[cls] = super(DBSingleton, cls).__call__(*args, **kwargs) + return cls._instances[cls] def connect(host: str = None, port: int = None, login: str = None, password: str = None, backend: str = None, **kwargs): @@ -81,7 +88,7 @@ def _kwargs_parser(key, kwargs): return kwargs[key] return None -class Connection: +class Connection(metaclass=DBSingleton): """Connection class interface. All backend implementations should provide a connection class that inherits from and implements this class.