diff --git a/beat/core/experiment.py b/beat/core/experiment.py index a901c9271178f53f6117cf8adf32480a3bb2e10f..65533af8f31554ca563186bb260f9412b5cf4be0 100644 --- a/beat/core/experiment.py +++ b/beat/core/experiment.py @@ -52,7 +52,6 @@ from . import algorithm from . import schema from . import database from . import toolchain -from . import prototypes from . import hash @@ -233,12 +232,10 @@ class Experiment(object): self.data = None self.errors = [] - if data is None: # loads prototype and validates it - - experiment_data, self.errors = prototypes.load("experiment") - assert not self.errors, "\n * %s" % "\n *".join(self.errors) # nosec - toolchain_data, self.errors = prototypes.load("toolchain") - assert not self.errors, "\n * %s" % "\n *".join(self.errors) # nosec + if data is None: # Invalid case + # There can't be a prototype for experiments they must be + # filled based on the toolchain and the content of the prefix + raise RuntimeError("Experiments can't have default implementation") elif isinstance(data, (tuple, list)): # the user has passed a tuple diff --git a/beat/core/test/test_experiment_loading.py b/beat/core/test/test_experiment_loading.py index 311ee32ff2af275954cc93c47498afab8ba51b47..e3c6fdd7969676a6b9aae2b36c091c23cb2d9049 100644 --- a/beat/core/test/test_experiment_loading.py +++ b/beat/core/test/test_experiment_loading.py @@ -42,6 +42,17 @@ from . import prefix, tmp_prefix from .utils import cleanup +# ---------------------------------------------------------- + + +@nose.tools.raises(RuntimeError) +def test_load_default_experiment_fails(): + Experiment(prefix, data=None) + + +# ---------------------------------------------------------- + + def test_load_valid_experiment(): experiment = Experiment(prefix, "user/integers_addition/1/integers_addition")