add tests for persistent mode
authorEmmanuel Garette <egarette@cadoles.com>
Tue, 27 Aug 2013 20:08:35 +0000 (22:08 +0200)
committerEmmanuel Garette <egarette@cadoles.com>
Tue, 27 Aug 2013 20:08:35 +0000 (22:08 +0200)
test/test_storage.py

index 9b9c430..6dbb721 100644 (file)
@@ -4,6 +4,8 @@ import autopath
 
 from tiramisu.config import Config
 from tiramisu.option import BoolOption, OptionDescription
+from tiramisu.setting import owners
+from tiramisu.setting import list_sessions, delete_session
 
 
 def test_non_persistent():
@@ -54,7 +56,6 @@ def test_delete_session_persistent():
         # storage is not persistent
         pass
     else:
-        from tiramisu.setting import list_sessions, delete_session
         assert 'test_persistent' in list_sessions()
         delete_session('test_persistent')
         assert 'test_persistent' not in list_sessions()
@@ -75,10 +76,51 @@ def test_create_persistent_retrieve():
         del(c)
         c = Config(o, session_id='test_persistent', persistent=True)
         assert c.b is True
-        from tiramisu.setting import list_sessions, delete_session
         assert 'test_persistent' in list_sessions()
         delete_session('test_persistent')
         c = Config(o, session_id='test_persistent', persistent=True)
         assert c.b is None
+        delete_session('test_persistent')
+
 
-#recup d'un coté de et l'autre
+def test_two_persistent():
+    b = BoolOption('b', '')
+    o = OptionDescription('od', '', [b])
+    try:
+        c = Config(o, session_id='test_persistent', persistent=True)
+    except ValueError:
+        # storage is not persistent
+        pass
+    else:
+        c2 = Config(o, session_id='test_persistent', persistent=True)
+        assert c.b is None
+        assert c2.b is None
+        c.b = False
+        assert c.b is False
+        assert c2.b is False
+        c.b = True
+        assert c.b is True
+        assert c2.b is True
+        delete_session('test_persistent')
+
+
+def test_two_persistent_owner():
+    b = BoolOption('b', '')
+    o = OptionDescription('od', '', [b])
+    try:
+        c = Config(o, session_id='test_persistent', persistent=True)
+    except ValueError:
+        # storage is not persistent
+        pass
+    else:
+        c2 = Config(o, session_id='test_persistent', persistent=True)
+        owners.addowner('persistent')
+        assert c.getowner(b) == owners.default
+        assert c2.getowner(b) == owners.default
+        c.b = False
+        assert c.getowner(b) == owners.user
+        assert c2.getowner(b) == owners.user
+        c.cfgimpl_get_values().setowner(b, owners.persistent)
+        assert c.getowner(b) == owners.persistent
+        assert c2.getowner(b) == owners.persistent
+        delete_session('test_persistent')