update sqlite storage
This commit is contained in:
@ -2,8 +2,9 @@
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu import setting
|
||||
from tiramisu import setting, value
|
||||
setting.expires_time = 1
|
||||
value.expires_time = 1
|
||||
from tiramisu.option import IntOption, StrOption, OptionDescription
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.error import ConfigError
|
||||
|
@ -644,7 +644,7 @@ def test_consistency_master_and_slaves_master_mandatory_non_transitive():
|
||||
maconfig = OptionDescription('rootconfig', '', [interface1, interface2])
|
||||
cfg = Config(maconfig)
|
||||
cfg.read_write()
|
||||
assert list(cfg.cfgimpl_get_values().mandatory_warnings()) == ["val1.val1"]
|
||||
assert list(cfg.cfgimpl_get_values().mandatory_warnings()) == ["val1.val1", "val1.val2"]
|
||||
|
||||
|
||||
def test_callback_master_and_slaves_master_list():
|
||||
|
@ -692,3 +692,6 @@ def test_groups_with_master_get_modified_value():
|
||||
assert cfg.cfgimpl_get_values().get_modified_values() == {'ip_admin_eth0.ip_admin_eth0': ('user', ('192.168.1.1',))}
|
||||
cfg.ip_admin_eth0.netmask_admin_eth0 = ['255.255.255.255']
|
||||
assert cfg.cfgimpl_get_values().get_modified_values() == {'ip_admin_eth0.ip_admin_eth0': ('user', ('192.168.1.1',)), 'ip_admin_eth0.netmask_admin_eth0': ({'0': 'user'}, {'0': '255.255.255.255'})}
|
||||
cfg.ip_admin_eth0.ip_admin_eth0.append('192.168.1.1')
|
||||
cfg.ip_admin_eth0.netmask_admin_eth0[-1] = '255.255.255.255'
|
||||
assert cfg.cfgimpl_get_values().get_modified_values() == {'ip_admin_eth0.ip_admin_eth0': ('user', ('192.168.1.1', '192.168.1.1')), 'ip_admin_eth0.netmask_admin_eth0': ({'0': 'user', '1': 'user'}, {'0': '255.255.255.255', '1': '255.255.255.255'})}
|
||||
|
@ -6,7 +6,7 @@ do_autopath()
|
||||
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import BoolOption, OptionDescription
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.storage import list_sessions, delete_session
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ def test_list():
|
||||
o = OptionDescription('od', '', [b])
|
||||
c = Config(o, session_id='test_non_persistent')
|
||||
c.cfgimpl_get_settings().remove('cache')
|
||||
c.b = True
|
||||
assert 'test_non_persistent' in list_sessions('config')
|
||||
del(c)
|
||||
assert 'test_non_persistent' not in list_sessions('config')
|
||||
@ -40,7 +41,8 @@ def test_list_sessions_persistent():
|
||||
b = BoolOption('b', '')
|
||||
o = OptionDescription('od', '', [b])
|
||||
try:
|
||||
Config(o, session_id='test_persistent', persistent=True)
|
||||
c = Config(o, session_id='test_persistent', persistent=True)
|
||||
c.b = True
|
||||
except ValueError:
|
||||
# storage is not persistent
|
||||
pass
|
||||
@ -139,6 +141,46 @@ def test_create_persistent_retrieve_owner():
|
||||
del(c)
|
||||
|
||||
|
||||
def test_create_persistent_retrieve_owner_masterslaves():
|
||||
a = BoolOption('a', '', multi=True)
|
||||
b = BoolOption('b', '', multi=True)
|
||||
o = OptionDescription('a', '', [a, b])
|
||||
o.impl_set_group_type(groups.master)
|
||||
o1 = OptionDescription('a', '', [o])
|
||||
try:
|
||||
c = Config(o1, session_id='test_persistent', persistent=True)
|
||||
except ValueError:
|
||||
# storage is not persistent
|
||||
pass
|
||||
else:
|
||||
assert c.getowner(a) == owners.default
|
||||
assert c.getowner(b) == owners.default
|
||||
c.a.a = [True]
|
||||
c.a.a.append(False)
|
||||
c.a.b[1] = True
|
||||
assert c.getowner(a) == owners.user
|
||||
assert c.getowner(b, 0) == owners.default
|
||||
assert c.getowner(b, 1) == owners.user
|
||||
owners.addowner('persistentowner2')
|
||||
c.cfgimpl_get_values().setowner(b, owners.persistentowner2, 1)
|
||||
c.a.b[0] = True
|
||||
assert c.getowner(b, 0) == owners.user
|
||||
assert c.getowner(b, 1) == owners.persistentowner2
|
||||
del(c)
|
||||
#
|
||||
c = Config(o1, session_id='test_persistent', persistent=True)
|
||||
assert c.getowner(b, 0) == owners.user
|
||||
assert c.getowner(b, 1) == owners.persistentowner2
|
||||
delete_session('config', c.impl_getsessionid())
|
||||
del(c)
|
||||
#
|
||||
c = Config(o1, session_id='test_persistent', persistent=True)
|
||||
assert c.a.b == []
|
||||
assert c.getowner(b) == owners.default
|
||||
delete_session('config', c.impl_getsessionid())
|
||||
del(c)
|
||||
|
||||
|
||||
def test_two_persistent_owner():
|
||||
b = BoolOption('b', '')
|
||||
o = OptionDescription('od', '', [b])
|
||||
@ -204,3 +246,28 @@ def test_two_persistent_information():
|
||||
c2.cfgimpl_get_settings().remove('cache')
|
||||
assert c2.impl_get_information('info') == 'string'
|
||||
delete_session('config', 'test_persistent')
|
||||
|
||||
|
||||
def test_two_different_persistents():
|
||||
b = BoolOption('b', '')
|
||||
o = OptionDescription('od', '', [b])
|
||||
try:
|
||||
c = Config(o, session_id='test_persistent', persistent=True)
|
||||
c.cfgimpl_get_settings().remove('cache')
|
||||
d = Config(o, session_id='test_persistent2', persistent=True)
|
||||
d.cfgimpl_get_settings().remove('cache')
|
||||
except ValueError:
|
||||
# storage is not persistent
|
||||
pass
|
||||
else:
|
||||
c.cfgimpl_get_settings()[b].append('test')
|
||||
assert str(c.cfgimpl_get_settings()[b]) in ["['test']", "[u'test']"]
|
||||
assert str(d.cfgimpl_get_settings()[b]) == "[]"
|
||||
assert c.b is None
|
||||
assert d.b is None
|
||||
c.b = True
|
||||
assert c.b == True
|
||||
assert d.b is None
|
||||
|
||||
delete_session('config', 'test_persistent')
|
||||
delete_session('config', 'test_persistent2')
|
||||
|
Reference in New Issue
Block a user