stringify test params
This commit is contained in:
parent
86a4d6f607
commit
6f12d797d2
@ -4,7 +4,7 @@ import toml
|
|||||||
from .util import get_manifest, print_err
|
from .util import get_manifest, print_err
|
||||||
|
|
||||||
|
|
||||||
def value_dict(parameterized, renames=None):
|
def value_dict(parameterized, renames=None, stringify=False):
|
||||||
d = dict()
|
d = dict()
|
||||||
if renames is None:
|
if renames is None:
|
||||||
renames = dict()
|
renames = dict()
|
||||||
@ -19,6 +19,8 @@ def value_dict(parameterized, renames=None):
|
|||||||
val = val.to_dict()
|
val = val.to_dict()
|
||||||
except:
|
except:
|
||||||
val = value_dict(val, renames=renames)
|
val = value_dict(val, renames=renames)
|
||||||
|
if stringify:
|
||||||
|
val = str(val)
|
||||||
d[name] = val
|
d[name] = val
|
||||||
return d
|
return d
|
||||||
|
|
||||||
@ -30,7 +32,8 @@ def make_group_params_class(testcase):
|
|||||||
for name, p in testcase.get('params', {}).items():
|
for name, p in testcase.get('params', {}).items():
|
||||||
tc_params[name] = make_param(p)
|
tc_params[name] = make_param(p)
|
||||||
|
|
||||||
cls = param.parameterized_class('Test Params for testcase {}'.format(testcase.get('name', '')), tc_params, Base)
|
name = 'Test Params for testcase {}'.format(testcase.get('name', ''))
|
||||||
|
cls = param.parameterized_class(name, tc_params, GroupParamsBase)
|
||||||
return cls
|
return cls
|
||||||
|
|
||||||
|
|
||||||
@ -91,6 +94,11 @@ class Base(param.Parameterized):
|
|||||||
return value_dict(self)
|
return value_dict(self)
|
||||||
|
|
||||||
|
|
||||||
|
class GroupParamsBase(Base):
|
||||||
|
def to_dict(self):
|
||||||
|
return value_dict(self, stringify=True)
|
||||||
|
|
||||||
|
|
||||||
class Metadata(Base):
|
class Metadata(Base):
|
||||||
composition_name = param.String()
|
composition_name = param.String()
|
||||||
author = param.String()
|
author = param.String()
|
||||||
@ -156,17 +164,37 @@ class Build(Base):
|
|||||||
dependencies = param.List(allow_None=True)
|
dependencies = param.List(allow_None=True)
|
||||||
|
|
||||||
|
|
||||||
|
class Run(Base):
|
||||||
|
artifact = param.String(allow_None=True)
|
||||||
|
test_params = param.Parameter()
|
||||||
|
|
||||||
|
def __init__(self, params_class=None, **params):
|
||||||
|
super().__init__(**params)
|
||||||
|
if params_class is not None:
|
||||||
|
self.test_params = params_class()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_dict(cls, d, params_class=None):
|
||||||
|
return Run(artifact=d.get('artifact', None), params_class=params_class)
|
||||||
|
|
||||||
|
def panel(self):
|
||||||
|
return pn.Column(
|
||||||
|
self.param['artifact'],
|
||||||
|
pn.Param(self.test_params)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Group(Base):
|
class Group(Base):
|
||||||
id = param.String()
|
id = param.String()
|
||||||
instances = param.Parameter(Instances(), precedence=-1)
|
instances = param.Parameter(Instances(), precedence=-1)
|
||||||
resources = param.Parameter(Resources(), allow_None=True, precedence=-1)
|
resources = param.Parameter(Resources(), allow_None=True, precedence=-1)
|
||||||
build = param.Parameter(Build(), precedence=-1)
|
build = param.Parameter(Build(), precedence=-1)
|
||||||
params = param.Parameter(precedence=-1)
|
run = param.Parameter(Run(), precedence=-1)
|
||||||
|
|
||||||
def __init__(self, params_class=None, **params):
|
def __init__(self, params_class=None, **params):
|
||||||
super().__init__(**params)
|
super().__init__(**params)
|
||||||
if params_class is not None:
|
if params_class is not None:
|
||||||
self.params = params_class()
|
self.run = Run(params_class=params_class)
|
||||||
self._set_name(self.id)
|
self._set_name(self.id)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -176,7 +204,7 @@ class Group(Base):
|
|||||||
resources=Resources.from_dict(d.get('resources', {})),
|
resources=Resources.from_dict(d.get('resources', {})),
|
||||||
instances=Instances.from_dict(d.get('instances', {})),
|
instances=Instances.from_dict(d.get('instances', {})),
|
||||||
build=Build.from_dict(d.get('build', {})),
|
build=Build.from_dict(d.get('build', {})),
|
||||||
params=params_class.from_dict(d.get('params', {})),
|
run=Run.from_dict(d.get('params', {}), params_class=params_class),
|
||||||
)
|
)
|
||||||
|
|
||||||
def panel(self):
|
def panel(self):
|
||||||
@ -187,7 +215,7 @@ class Group(Base):
|
|||||||
self.instances,
|
self.instances,
|
||||||
self.resources,
|
self.resources,
|
||||||
self.build,
|
self.build,
|
||||||
self.params
|
self.run.panel(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -280,7 +308,7 @@ class Composition(param.Parameterized):
|
|||||||
print('test case changed', self.global_config.case)
|
print('test case changed', self.global_config.case)
|
||||||
cls = self._params_class_for_current_testcase()
|
cls = self._params_class_for_current_testcase()
|
||||||
for g in self.groups:
|
for g in self.groups:
|
||||||
g.params = cls()
|
g.run.test_params = cls()
|
||||||
self._refresh_tabs()
|
self._refresh_tabs()
|
||||||
|
|
||||||
def _refresh_tabs(self, *args):
|
def _refresh_tabs(self, *args):
|
||||||
|
Loading…
Reference in New Issue
Block a user