From 965975c22de0caef727d4c0ad15c5454c060af59 Mon Sep 17 00:00:00 2001
From: lukas leufen <l.leufen@fz-juelich.de>
Date: Tue, 4 Feb 2020 15:46:15 +0100
Subject: [PATCH] more tests for datastore

---
 test/test_datastore.py | 55 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/test/test_datastore.py b/test/test_datastore.py
index 3f61c227..e7510cff 100644
--- a/test/test_datastore.py
+++ b/test/test_datastore.py
@@ -16,6 +16,12 @@ class TestAbstractDataStore:
     def test_init(self, ds):
         assert ds._store == {}
 
+    def test_clear_data_store(self, ds):
+        ds._store["test"] = "test2"
+        assert len(ds._store.keys()) == 1
+        ds.clear_data_store()
+        assert len(ds._store.keys()) == 0
+
 
 class TestDataStoreByVariable:
 
@@ -49,6 +55,12 @@ class TestDataStoreByVariable:
             ds.get("number3", "general")
         assert "Couldn't find number3 in data store" in e.value.args[0]
 
+    def test_get_default(self, ds):
+        ds.set("number", 3, "general")
+        assert ds.get_default("number", "general", 45) == 3
+        assert ds.get_default("number", "general.sub", 45) == 3
+        assert ds.get_default("number", "other", 45) == 45
+
     def test_search(self, ds):
         ds.set("number", 22, "general")
         ds.set("number", 22, "general2")
@@ -118,6 +130,25 @@ class TestDataStoreByVariable:
         assert ds.search_scope("general.sub.sub", current_scope_only=False, return_all=True) == \
             [("number", "general.sub.sub", "ABC"), ("number1", "general.sub", 22), ("number2", "general.sub.sub", 3)]
 
+    def test_create_args_dict(self, ds):
+        ds.set("tester1", 1, "general")
+        ds.set("tester2", 11, "general")
+        ds.set("tester2", 10, "general.sub")
+        ds.set("tester3", 21, "general")
+        args = ["tester1", "tester2", "tester3", "tester4"]
+        assert ds.create_args_dict(args) == {"tester1": 1, "tester2": 11, "tester3": 21}
+        assert ds.create_args_dict(args, "general.sub") == {"tester1": 1, "tester2": 10, "tester3": 21}
+        assert ds.create_args_dict(["notAvail", "alsonot"]) == {}
+
+    def test_set_args_from_dict(self, ds):
+        ds.set_args_from_dict({"tester1": 1, "tester2": 10, "tester3": 21})
+        assert ds.get("tester1", "general") == 1
+        assert ds.get("tester2", "general") == 10
+        assert ds.get("tester3", "general") == 21
+        ds.set_args_from_dict({"tester1": 111}, "general.sub")
+        assert ds.get("tester1", "general.sub") == 111
+        assert ds.get("tester3", "general.sub") == 21
+
 
 class TestDataStoreByScope:
 
@@ -151,6 +182,12 @@ class TestDataStoreByScope:
             ds.get("number3", "general")
         assert "Couldn't find number3 in data store" in e.value.args[0]
 
+    def test_get_default(self, ds):
+        ds.set("number", 3, "general")
+        assert ds.get_default("number", "general", 45) == 3
+        assert ds.get_default("number", "general.sub", 45) == 3
+        assert ds.get_default("number", "other", 45) == 45
+
     def test_search(self, ds):
         ds.set("number", 22, "general")
         ds.set("number", 22, "general2")
@@ -220,3 +257,21 @@ class TestDataStoreByScope:
         assert ds.search_scope("general.sub.sub", current_scope_only=False, return_all=True) == \
             [("number", "general.sub.sub", "ABC"), ("number1", "general.sub", 22), ("number2", "general.sub.sub", 3)]
 
+    def test_create_args_dict(self, ds):
+        ds.set("tester1", 1, "general")
+        ds.set("tester2", 11, "general")
+        ds.set("tester2", 10, "general.sub")
+        ds.set("tester3", 21, "general")
+        args = ["tester1", "tester2", "tester3", "tester4"]
+        assert ds.create_args_dict(args) == {"tester1": 1, "tester2": 11, "tester3": 21}
+        assert ds.create_args_dict(args, "general.sub") == {"tester1": 1, "tester2": 10, "tester3": 21}
+        assert ds.create_args_dict(["notAvail", "alsonot"]) == {}
+
+    def test_set_args_from_dict(self, ds):
+        ds.set_args_from_dict({"tester1": 1, "tester2": 10, "tester3": 21})
+        assert ds.get("tester1", "general") == 1
+        assert ds.get("tester2", "general") == 10
+        assert ds.get("tester3", "general") == 21
+        ds.set_args_from_dict({"tester1": 111}, "general.sub")
+        assert ds.get("tester1", "general.sub") == 111
+        assert ds.get("tester3", "general.sub") == 21
\ No newline at end of file
-- 
GitLab