From: Timo Tietavainen Date: Mon, 13 Jan 2020 16:32:29 +0000 (+0200) Subject: Fix fake SDL database backend to support multiple set calls X-Git-Tag: 2.0.2~2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=8d8b558fbc0f68bb5942849a5846d9ce1cbf444d;p=ric-plt%2Fsdlpy.git Fix fake SDL database backend to support multiple set calls Old fake SDL database backend implementation overwrote the whole fake database (dictionary) with new key-values what were given in set() API call. Fixed this to append received key-values in a set() API call to the old values in the dictionary. Signed-off-by: Timo Tietavainen Change-Id: I8000ed86a1976951270c40d4d2358077ecc3785b --- diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 8951370..c7b927d 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -33,7 +33,7 @@ This document provides the release notes of the ricsdl library. Version history --------------- -[2.0.1] - 2020-01-08 +[2.0.1] - 2020-01-13 * Add a fake database backend implementation to be used only for testing purposes when the real DBAAS database service is not available. diff --git a/ricsdl-package/ricsdl/backend/fake_dict_db.py b/ricsdl-package/ricsdl/backend/fake_dict_db.py index 76e4dd9..51e6c18 100644 --- a/ricsdl-package/ricsdl/backend/fake_dict_db.py +++ b/ricsdl-package/ricsdl/backend/fake_dict_db.py @@ -55,7 +55,7 @@ class FakeDictBackend(DbBackendAbc): pass def set(self, ns: str, data_map: Dict[str, bytes]) -> None: - self._db = data_map.copy() + self._db.update(data_map.copy()) def set_if(self, ns: str, key: str, old_data: bytes, new_data: bytes) -> bool: if key not in self._db: diff --git a/ricsdl-package/tests/backend/test_fake_dict_db.py b/ricsdl-package/tests/backend/test_fake_dict_db.py index 835514c..45b0f0f 100644 --- a/ricsdl-package/tests/backend/test_fake_dict_db.py +++ b/ricsdl-package/tests/backend/test_fake_dict_db.py @@ -31,9 +31,11 @@ def fake_dict_backend_fixture(request): request.cls.ns = 'some-ns' request.cls.dm = {'abc': b'1', 'bcd': b'2'} request.cls.new_dm = {'abc': b'3', 'bcd': b'2'} + request.cls.dm2 = {'cdf': b'4'} request.cls.remove_dm = {'bcd': b'2'} request.cls.key = 'abc' request.cls.keys = ['abc', 'bcd'] + request.cls.key2 = ['cdf'] request.cls.old_data = b'1' request.cls.new_data = b'3' request.cls.keypattern = r'*bc*' @@ -57,8 +59,11 @@ def fake_dict_backend_fixture(request): class TestFakeDictBackend: def test_set_function_success(self): self.db.set(self.ns, self.dm) + self.db.set(self.ns, self.dm2) ret = self.db.get(self.ns, self.keys) assert ret == self.dm + ret = self.db.get(self.ns, self.key2) + assert ret == self.dm2 def test_set_if_function_success(self): self.db.set(self.ns, self.dm)