65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
# from json import dumps, loads
|
|
import asyncio
|
|
from os import environ
|
|
try:
|
|
from tiramisu_api import Config
|
|
class TestConfig(Config):
|
|
def __init__(self,
|
|
config):
|
|
self.test_option = config.option
|
|
json = self.test_option.dict()
|
|
# assert json == loads(dumps(json))
|
|
super().__init__(json)
|
|
|
|
def send_data(self,
|
|
updates):
|
|
return self.updates_data(self.test_option.updates(updates))
|
|
PARAMS = ['tiramisu', 'tiramisu-api']
|
|
except:
|
|
PARAMS = ['tiramisu']
|
|
|
|
import pytest
|
|
|
|
|
|
def get_config(config, type, error=False):
|
|
if type == 'tiramisu':
|
|
return config
|
|
if error:
|
|
config.property.add('demoting_error_warning')
|
|
return TestConfig(config)
|
|
|
|
|
|
def value_list(values):
|
|
if values[0] == '':
|
|
del values[0]
|
|
return tuple(values)
|
|
|
|
|
|
def global_owner(config, config_type):
|
|
return config.owner.get()
|
|
|
|
|
|
@pytest.fixture(params=PARAMS)
|
|
def config_type(request):
|
|
return request.param
|
|
|
|
|
|
def parse_od_get(dico):
|
|
ret = {}
|
|
for k, v in dico.items():
|
|
if k.isoptiondescription():
|
|
if k.isleadership():
|
|
leader_path = k.leader().path()
|
|
ret_leadership = []
|
|
for variable, value in v.items():
|
|
if variable.path() == leader_path:
|
|
for val in value:
|
|
ret_leadership.append({leader_path: val})
|
|
else:
|
|
ret_leadership[variable.index()][variable.path()] = value
|
|
ret[leader_path] = ret_leadership
|
|
else:
|
|
ret.update(parse_od_get(v))
|
|
else:
|
|
ret[k.path()] = v
|
|
return ret
|