From 2ae03228148fb206c97f2a3ab78e8552748eb522 Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Thu, 24 Aug 2017 17:34:04 +0100
Subject: [PATCH] Removed core plugin

---
 force_bdss/cli/tests/test_execution.py        | 54 ----------------
 force_bdss/core_plugins/__init__.py           |  0
 force_bdss/core_plugins/dummy/__init__.py     |  0
 .../dummy/csv_extractor/__init__.py           |  0
 .../csv_extractor_data_source.py              | 31 ----------
 .../csv_extractor/csv_extractor_factory.py    | 21 -------
 .../csv_extractor/csv_extractor_model.py      | 14 -----
 .../dummy/csv_extractor/tests/__init__.py     |  0
 .../tests/test_csv_extractor_data_source.py   | 62 -------------------
 .../tests/test_csv_extractor_factory.py       | 24 -------
 .../dummy/dummy_dakota/__init__.py            |  0
 .../dummy/dummy_dakota/dakota_communicator.py | 22 -------
 .../dummy/dummy_dakota/dakota_factory.py      | 30 ---------
 .../dummy/dummy_dakota/dakota_model.py        |  5 --
 .../dummy/dummy_dakota/dakota_optimizer.py    | 50 ---------------
 .../dummy/dummy_dakota/parameters.py          | 22 -------
 .../dummy/dummy_dakota/tests/__init__.py      |  0
 .../tests/test_dakota_communicator.py         | 51 ---------------
 .../dummy_dakota/tests/test_dakota_factory.py | 47 --------------
 .../tests/test_dakota_optimizer.py            | 50 ---------------
 .../dummy/dummy_data_source/__init__.py       |  0
 .../dummy_data_source/dummy_data_source.py    |  9 ---
 .../dummy_data_source_factory.py              | 16 -----
 .../dummy_data_source_model.py                |  5 --
 .../dummy/dummy_data_source/tests/__init__.py |  0
 .../tests/test_dummy_data_source.py           | 29 ---------
 .../tests/test_dummy_data_source_factory.py   | 25 --------
 .../dummy/dummy_kpi_calculator/__init__.py    |  0
 .../dummy_kpi_calculator.py                   |  9 ---
 .../dummy_kpi_calculator_factory.py           | 19 ------
 .../dummy_kpi_calculator_model.py             |  5 --
 .../dummy_kpi_calculator/tests/__init__.py    |  0
 .../tests/test_dummy_kpi_calculator.py        | 29 ---------
 .../test_dummy_kpi_calculator_factory.py      | 30 ---------
 .../dummy_notification_listener/__init__.py   |  0
 .../dummy_notification_listener.py            | 24 -------
 .../dummy_notification_listener_factory.py    | 23 -------
 .../dummy_notification_listener_model.py      |  5 --
 .../tests/__init__.py                         |  0
 .../tests/test_dummy_notification_listener.py | 37 -----------
 ...est_dummy_notification_listener_factory.py | 26 --------
 .../test_dummy_notification_listener_model.py | 20 ------
 force_bdss/core_plugins/dummy/dummy_plugin.py | 32 ----------
 .../core_plugins/dummy/kpi_adder/__init__.py  |  0
 .../dummy/kpi_adder/kpi_adder_calculator.py   | 31 ----------
 .../dummy/kpi_adder/kpi_adder_factory.py      | 21 -------
 .../dummy/kpi_adder/kpi_adder_model.py        | 12 ----
 .../dummy/kpi_adder/tests/__init__.py         |  0
 .../tests/test_kpi_adder_calculator.py        | 35 -----------
 .../kpi_adder/tests/test_kpi_adder_factory.py | 27 --------
 .../dummy/power_evaluator/__init__.py         |  0
 .../power_evaluator_data_source.py            | 24 -------
 .../power_evaluator_factory.py                | 21 -------
 .../power_evaluator/power_evaluator_model.py  | 13 ----
 .../dummy/power_evaluator/tests/__init__.py   |  0
 .../tests/test_power_evaluator_data_source.py | 57 -----------------
 .../tests/test_power_evaluator_factory.py     | 22 -------
 .../core_plugins/dummy/tests/__init__.py      |  0
 .../tests/data_source_factory_test_mixin.py   | 44 -------------
 .../kpi_calculator_factory_test_mixin.py      | 42 -------------
 .../dummy/tests/test_direct_execution.py      | 61 ------------------
 force_bdss/tests/probe_classes/mco.py         |  6 +-
 setup.py                                      |  3 -
 63 files changed, 4 insertions(+), 1241 deletions(-)
 delete mode 100644 force_bdss/cli/tests/test_execution.py
 delete mode 100644 force_bdss/core_plugins/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/dakota_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/dakota_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/dakota_optimizer.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/parameters.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/dummy_plugin.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_calculator.py
 delete mode 100644 force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_model.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_data_source.py
 delete mode 100644 force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_factory.py
 delete mode 100644 force_bdss/core_plugins/dummy/tests/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy/tests/data_source_factory_test_mixin.py
 delete mode 100644 force_bdss/core_plugins/dummy/tests/kpi_calculator_factory_test_mixin.py
 delete mode 100644 force_bdss/core_plugins/dummy/tests/test_direct_execution.py

diff --git a/force_bdss/cli/tests/test_execution.py b/force_bdss/cli/tests/test_execution.py
deleted file mode 100644
index 24bf92b..0000000
--- a/force_bdss/cli/tests/test_execution.py
+++ /dev/null
@@ -1,54 +0,0 @@
-import unittest
-import subprocess
-import os
-from contextlib import contextmanager
-
-from force_bdss.tests import fixtures
-
-
-@contextmanager
-def cd(dir):
-    cwd = os.getcwd()
-    os.chdir(dir)
-    try:
-        yield
-    finally:
-        os.chdir(cwd)
-
-
-def fixture_dir():
-    return os.path.join(
-        os.path.dirname(os.path.abspath(__file__)),
-        "fixtures")
-
-
-class TestExecution(unittest.TestCase):
-    def test_plain_invocation_mco(self):
-        with cd(fixtures.dirpath()):
-            out = subprocess.check_call(["force_bdss", "test_csv.json"])
-            self.assertEqual(out, 0)
-
-    def test_plain_invocation_evaluate(self):
-        with cd(fixtures.dirpath()):
-            proc = subprocess.Popen([
-                "force_bdss", "--evaluate", "test_csv.json"],
-                stdin=subprocess.PIPE,
-                stdout=subprocess.PIPE)
-            proc.communicate(b"1")
-            retcode = proc.wait()
-            self.assertEqual(retcode, 0)
-
-    def test_unsupported_file_input(self):
-        with cd(fixtures.dirpath()):
-            with self.assertRaises(subprocess.CalledProcessError):
-                subprocess.check_call(["force_bdss", "test_csv_v2.json"])
-
-    def test_corrupted_file_input(self):
-        with cd(fixtures.dirpath()):
-            with self.assertRaises(subprocess.CalledProcessError):
-                subprocess.check_call(["force_bdss",
-                                       "test_csv_corrupted.json"])
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/force_bdss/core_plugins/__init__.py b/force_bdss/core_plugins/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/__init__.py b/force_bdss/core_plugins/dummy/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/__init__.py b/force_bdss/core_plugins/dummy/csv_extractor/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
deleted file mode 100644
index 36f7297..0000000
--- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import csv
-from force_bdss.api import BaseDataSource, DataValue
-from force_bdss.core.slot import Slot
-
-
-class CSVExtractorDataSource(BaseDataSource):
-    def run(self, model, parameters):
-        with open(model.filename) as csvfile:
-            reader = csv.reader(csvfile)
-            for rowindex, row in enumerate(reader):
-                if rowindex < model.row:
-                    continue
-                elif rowindex == model.row:
-                    return [
-                        DataValue(
-                            type=model.cuba_type,
-                            value=float(row[model.column])
-                        )
-                    ]
-                else:
-                    break
-
-            raise IndexError("Could not find specified data.")
-
-    def slots(self, model):
-        return (
-            (),
-            (
-                Slot(type=model.cuba_type),
-            )
-        )
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_factory.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_factory.py
deleted file mode 100644
index db28075..0000000
--- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_factory.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from traits.api import String
-
-from force_bdss.api import factory_id, BaseDataSourceFactory
-
-from .csv_extractor_model import CSVExtractorModel
-from .csv_extractor_data_source import CSVExtractorDataSource
-
-
-class CSVExtractorFactory(BaseDataSourceFactory):
-    id = String(factory_id("enthought", "csv_extractor"))
-
-    name = String("CSV Extractor")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return CSVExtractorModel(self, **model_data)
-
-    def create_data_source(self):
-        return CSVExtractorDataSource(self)
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_model.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_model.py
deleted file mode 100644
index a8c4a0a..0000000
--- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_model.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from traits.api import Int, String, on_trait_change, File
-
-from force_bdss.api import BaseDataSourceModel
-
-
-class CSVExtractorModel(BaseDataSourceModel):
-    filename = File()
-    row = Int()
-    column = Int()
-    cuba_type = String()
-
-    @on_trait_change("cuba_type")
-    def _notify_changes_slots(self):
-        self.changes_slots = True
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
deleted file mode 100644
index 89f8f80..0000000
--- a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py
+++ /dev/null
@@ -1,62 +0,0 @@
-import unittest
-
-from force_bdss.core.data_value import DataValue
-from force_bdss.core.slot import Slot
-from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_data_source \
-    import CSVExtractorDataSource
-from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_model import \
-    CSVExtractorModel
-from force_bdss.data_sources.base_data_source_factory import \
-    BaseDataSourceFactory
-from force_bdss.tests import fixtures
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestCSVExtractorDataSource(unittest.TestCase):
-    def setUp(self):
-        self.factory = mock.Mock(spec=BaseDataSourceFactory)
-
-    def test_initialization(self):
-        ds = CSVExtractorDataSource(self.factory)
-        self.assertEqual(ds.factory, self.factory)
-
-    def test_run(self):
-        ds = CSVExtractorDataSource(self.factory)
-        model = CSVExtractorModel(self.factory)
-        model.filename = fixtures.get("foo.csv")
-        model.row = 3
-        model.column = 5
-        mock_params = []
-        result = ds.run(model, mock_params)
-        self.assertIsInstance(result, list)
-        self.assertEqual(len(result), 1)
-        self.assertIsInstance(result[0], DataValue)
-        self.assertEqual(result[0].value, 42)
-
-    def test_run_with_exception(self):
-        ds = CSVExtractorDataSource(self.factory)
-        model = CSVExtractorModel(self.factory)
-        model.filename = fixtures.get("foo.csv")
-        mock_params = []
-        model.row = 30
-        model.column = 5
-        with self.assertRaises(IndexError):
-            ds.run(model, mock_params)
-
-        model.row = 3
-        model.column = 50
-        with self.assertRaises(IndexError):
-            ds.run(model, mock_params)
-
-    def test_slots(self):
-        ds = CSVExtractorDataSource(self.factory)
-        model = CSVExtractorModel(self.factory)
-        slots = ds.slots(model)
-        self.assertEqual(len(slots), 2)
-        self.assertEqual(len(slots[0]), 0)
-        self.assertEqual(len(slots[1]), 1)
-        self.assertIsInstance(slots[1][0], Slot)
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_factory.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_factory.py
deleted file mode 100644
index 54f72f8..0000000
--- a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_factory.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.tests.data_source_factory_test_mixin \
-    import DataSourceFactoryTestMixin
-from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_factory import \
-    CSVExtractorFactory
-from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_data_source \
-    import CSVExtractorDataSource
-from force_bdss.core_plugins.dummy.csv_extractor.csv_extractor_model import \
-    CSVExtractorModel
-
-
-class TestCSVExtractorFactory(DataSourceFactoryTestMixin, unittest.TestCase):
-    @property
-    def factory_class(self):
-        return CSVExtractorFactory
-
-    @property
-    def model_class(self):
-        return CSVExtractorModel
-
-    @property
-    def data_source_class(self):
-        return CSVExtractorDataSource
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/__init__.py b/force_bdss/core_plugins/dummy/dummy_dakota/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py
deleted file mode 100644
index fbcb6f9..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_communicator.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import sys
-
-from force_bdss.api import (
-    BaseMCOCommunicator,
-    DataValue)
-
-
-class DummyDakotaCommunicator(BaseMCOCommunicator):
-    def receive_from_mco(self, model):
-        data = sys.stdin.read()
-        values = list(map(float, data.split()))
-        value_names = [p.name for p in model.parameters]
-        value_types = [p.type for p in model.parameters]
-
-        return [
-            DataValue(type=type_, name=name, value=value)
-            for type_, name, value in zip(
-                value_types, value_names, values)]
-
-    def send_to_mco(self, model, data_values):
-        data = " ".join([str(dv.value) for dv in data_values])
-        sys.stdout.write(data)
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_factory.py b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_factory.py
deleted file mode 100644
index 6e6c5cc..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_factory.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from traits.api import String
-from force_bdss.api import factory_id, BaseMCOFactory
-from force_bdss.core_plugins.dummy.dummy_dakota.parameters import \
-    RangedMCOParameterFactory
-
-from .dakota_communicator import DummyDakotaCommunicator
-from .dakota_model import DummyDakotaModel
-from .dakota_optimizer import DummyDakotaOptimizer
-
-
-class DummyDakotaFactory(BaseMCOFactory):
-    id = String(factory_id("enthought", "dummy_dakota"))
-
-    name = "Dummy Dakota"
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-        return DummyDakotaModel(self, **model_data)
-
-    def create_optimizer(self):
-        return DummyDakotaOptimizer(self)
-
-    def create_communicator(self):
-        return DummyDakotaCommunicator(self)
-
-    def parameter_factories(self):
-        return [
-            RangedMCOParameterFactory(self)
-        ]
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_model.py b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_model.py
deleted file mode 100644
index 6515097..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_model.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from force_bdss.api import BaseMCOModel
-
-
-class DummyDakotaModel(BaseMCOModel):
-    pass
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_optimizer.py b/force_bdss/core_plugins/dummy/dummy_dakota/dakota_optimizer.py
deleted file mode 100644
index 96d5fe7..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/dakota_optimizer.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import subprocess
-import sys
-import itertools
-import collections
-
-from force_bdss.api import BaseMCO
-
-
-def rotated_range(start, stop, starting_value):
-    r = list(range(start, stop))
-    start_idx = r.index(starting_value)
-    d = collections.deque(r)
-    d.rotate(-start_idx)
-    return list(d)
-
-
-class DummyDakotaOptimizer(BaseMCO):
-    def run(self, model):
-        parameters = model.parameters
-
-        values = []
-        for p in parameters:
-            values.append(
-                rotated_range(int(p.lower_bound),
-                              int(p.upper_bound),
-                              int(p.initial_value))
-            )
-
-        value_iterator = itertools.product(*values)
-
-        application = self.factory.plugin.application
-
-        self.started = True
-        for value in value_iterator:
-            ps = subprocess.Popen(
-                [sys.argv[0],
-                 "--evaluate",
-                 application.workflow_filepath],
-                stdout=subprocess.PIPE,
-                stdin=subprocess.PIPE)
-
-            out = ps.communicate(
-                " ".join([str(v) for v in value]).encode("utf-8"))
-            out_data = out[0].decode("utf-8").split()
-            self.new_data = {
-                'input': tuple(value),
-                'output': tuple(out_data)
-            }
-
-        self.finished = True
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/parameters.py b/force_bdss/core_plugins/dummy/dummy_dakota/parameters.py
deleted file mode 100644
index d15c6c6..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/parameters.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from traits.api import Float
-
-from force_bdss.ids import mco_parameter_id
-from force_bdss.mco.parameters.base_mco_parameter import BaseMCOParameter
-from force_bdss.mco.parameters.base_mco_parameter_factory import \
-    BaseMCOParameterFactory
-
-
-class RangedMCOParameter(BaseMCOParameter):
-    """Expresses a MCO parameter that has a range between two floating
-    point values."""
-    initial_value = Float(0.0)
-    lower_bound = Float(0.0)
-    upper_bound = Float(1.0)
-
-
-class RangedMCOParameterFactory(BaseMCOParameterFactory):
-    """The factory of the above model"""
-    id = mco_parameter_id("enthought", "dummy_dakota", "ranged")
-    model_class = RangedMCOParameter
-    name = "Range"
-    description = "A ranged parameter in floating point values."
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
deleted file mode 100644
index 361e4f5..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import unittest
-
-from force_bdss.core.data_value import DataValue
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from envisage.plugin import Plugin
-
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_factory import (
-    DummyDakotaFactory)
-
-from force_bdss.mco.parameters.base_mco_parameter_factory import \
-    BaseMCOParameterFactory
-from force_bdss.core_plugins.dummy.dummy_dakota.parameters import \
-    RangedMCOParameter
-
-
-class TestDakotaCommunicator(unittest.TestCase):
-    def test_receive_from_mco(self):
-        factory = DummyDakotaFactory(mock.Mock(spec=Plugin))
-        mock_parameter_factory = mock.Mock(spec=BaseMCOParameterFactory)
-        model = factory.create_model()
-        model.parameters = [
-            RangedMCOParameter(mock_parameter_factory)
-        ]
-        comm = factory.create_communicator()
-
-        with mock.patch("sys.stdin") as stdin:
-            stdin.read.return_value = "1"
-
-            data = comm.receive_from_mco(model)
-            self.assertIsInstance(data, list)
-            self.assertEqual(len(data), 1)
-            self.assertEqual(data[0].value, 1)
-            self.assertEqual(data[0].type, "")
-
-    def test_send_to_mco(self):
-        factory = DummyDakotaFactory(mock.Mock(spec=Plugin))
-        model = factory.create_model()
-        comm = factory.create_communicator()
-
-        with mock.patch("sys.stdout") as stdout:
-            dv = DataValue(value=100)
-            comm.send_to_mco(model, [dv, dv])
-            self.assertEqual(stdout.write.call_args[0][0], '100 100')
-
-            comm.send_to_mco(model, [])
-            self.assertEqual(stdout.write.call_args[0][0], '')
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_factory.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_factory.py
deleted file mode 100644
index e9d515a..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_factory.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import unittest
-
-from envisage.plugin import Plugin
-
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_factory import \
-    DummyDakotaFactory
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_model import \
-    DummyDakotaModel
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_optimizer import \
-    DummyDakotaOptimizer
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestDakotaFactory(unittest.TestCase):
-    def setUp(self):
-        self.plugin = mock.Mock(spec=Plugin)
-
-    def test_initialization(self):
-        factory = DummyDakotaFactory(self.plugin)
-        self.assertIn("dummy_dakota", factory.id)
-        self.assertEqual(factory.plugin, self.plugin)
-
-    def test_create_model(self):
-        factory = DummyDakotaFactory(self.plugin)
-        model = factory.create_model({})
-        self.assertIsInstance(model, DummyDakotaModel)
-
-        model = factory.create_model()
-        self.assertIsInstance(model, DummyDakotaModel)
-
-    def test_create_mco(self):
-        factory = DummyDakotaFactory(self.plugin)
-        ds = factory.create_optimizer()
-        self.assertIsInstance(ds, DummyDakotaOptimizer)
-
-    def test_create_communicator(self):
-        factory = DummyDakotaFactory(self.plugin)
-        ds = factory.create_optimizer()
-        self.assertIsInstance(ds, DummyDakotaOptimizer)
-
-    def test_parameter_factories(self):
-        factory = DummyDakotaFactory(self.plugin)
-        self.assertNotEqual(len(factory.parameter_factories()), 0)
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py
deleted file mode 100644
index 34e5c18..0000000
--- a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_optimizer.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.dummy_dakota.parameters import (
-    RangedMCOParameter,
-    RangedMCOParameterFactory
-)
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_model import (
-    DummyDakotaModel
-)
-from force_bdss.mco.base_mco_factory import BaseMCOFactory
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from force_bdss.core_plugins.dummy.dummy_dakota.dakota_optimizer import \
-    DummyDakotaOptimizer
-
-
-class TestDakotaOptimizer(unittest.TestCase):
-    def setUp(self):
-        self.factory = mock.Mock(spec=BaseMCOFactory)
-        self.factory.plugin = mock.Mock()
-        self.factory.plugin.application = mock.Mock()
-        self.factory.plugin.application.workflow_filepath = "whatever"
-
-    def test_initialization(self):
-        opt = DummyDakotaOptimizer(self.factory)
-        self.assertEqual(opt.factory, self.factory)
-
-    def test_run(self):
-        opt = DummyDakotaOptimizer(self.factory)
-        model = DummyDakotaModel(self.factory)
-        model.parameters = [
-            RangedMCOParameter(
-                mock.Mock(spec=RangedMCOParameterFactory),
-                lower_bound=1,
-                upper_bound=3,
-                initial_value=2)
-        ]
-
-        mock_process = mock.Mock()
-        mock_process.communicate = mock.Mock(return_value=(b"1 2 3", b""))
-
-        with mock.patch("subprocess.Popen") as mock_popen:
-            mock_popen.return_value = mock_process
-            opt.run(model)
-
-        self.assertEqual(mock_popen.call_count, 2)
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/__init__.py b/force_bdss/core_plugins/dummy/dummy_data_source/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
deleted file mode 100644
index ac4dc61..0000000
--- a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from force_bdss.api import BaseDataSource
-
-
-class DummyDataSource(BaseDataSource):
-    def run(self, model, parameters):
-        return parameters
-
-    def slots(self, model):
-        return (), ()
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_factory.py b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_factory.py
deleted file mode 100644
index 9743e72..0000000
--- a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_factory.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from force_bdss.api import BaseDataSourceFactory, factory_id
-from .dummy_data_source_model import DummyDataSourceModel
-from .dummy_data_source import DummyDataSource
-
-
-class DummyDataSourceFactory(BaseDataSourceFactory):
-    id = factory_id("enthought", "dummy_data_source")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return DummyDataSourceModel(self, **model_data)
-
-    def create_data_source(self):
-        return DummyDataSource(self)
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_model.py b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_model.py
deleted file mode 100644
index a79145f..0000000
--- a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_model.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from force_bdss.api import BaseDataSourceModel
-
-
-class DummyDataSourceModel(BaseDataSourceModel):
-    pass
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
deleted file mode 100644
index db0b6e4..0000000
--- a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source import \
-    DummyDataSource
-from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source_model\
-    import \
-    DummyDataSourceModel
-from force_bdss.data_sources.base_data_source_factory import \
-    BaseDataSourceFactory
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestDummyDataSource(unittest.TestCase):
-    def setUp(self):
-        self.factory = mock.Mock(spec=BaseDataSourceFactory)
-
-    def test_initialization(self):
-        ds = DummyDataSource(self.factory)
-        self.assertEqual(ds.factory, self.factory)
-
-    def test_slots(self):
-        ds = DummyDataSource(self.factory)
-        model = DummyDataSourceModel(self.factory)
-        slots = ds.slots(model)
-        self.assertEqual(slots, ((), ()))
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_factory.py b/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_factory.py
deleted file mode 100644
index 84e2a9c..0000000
--- a/force_bdss/core_plugins/dummy/dummy_data_source/tests/test_dummy_data_source_factory.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source import \
-    DummyDataSource
-from force_bdss.core_plugins.dummy.dummy_data_source\
-    .dummy_data_source_factory import DummyDataSourceFactory
-from force_bdss.core_plugins.dummy.dummy_data_source.dummy_data_source_model\
-    import DummyDataSourceModel
-from force_bdss.core_plugins.dummy.tests.data_source_factory_test_mixin \
-    import DataSourceFactoryTestMixin
-
-
-class TestDummyDataSourceFactory(
-        DataSourceFactoryTestMixin, unittest.TestCase):
-    @property
-    def factory_class(self):
-        return DummyDataSourceFactory
-
-    @property
-    def model_class(self):
-        return DummyDataSourceModel
-
-    @property
-    def data_source_class(self):
-        return DummyDataSource
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/__init__.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
deleted file mode 100644
index 3e035cb..0000000
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from force_bdss.api import BaseKPICalculator
-
-
-class DummyKPICalculator(BaseKPICalculator):
-    def run(self, model, data_source_results):
-        return data_source_results
-
-    def slots(self, model):
-        return (), ()
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_factory.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_factory.py
deleted file mode 100644
index 18176e3..0000000
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_factory.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from traits.api import String
-from force_bdss.api import factory_id, BaseKPICalculatorFactory
-from .dummy_kpi_calculator import DummyKPICalculator
-from .dummy_kpi_calculator_model import DummyKPICalculatorModel
-
-
-class DummyKPICalculatorFactory(BaseKPICalculatorFactory):
-    id = String(factory_id("enthought", "dummy_kpi_calculator"))
-
-    name = String("Dummy KPI")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return DummyKPICalculatorModel(self, **model_data)
-
-    def create_kpi_calculator(self):
-        return DummyKPICalculator(self)
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_model.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_model.py
deleted file mode 100644
index d72ee3f..0000000
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_model.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from force_bdss.api import BaseKPICalculatorModel
-
-
-class DummyKPICalculatorModel(BaseKPICalculatorModel):
-    pass
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator.py
deleted file mode 100644
index 08aedc3..0000000
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import unittest
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator.dummy_kpi_calculator \
-    import DummyKPICalculator
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator \
-    .dummy_kpi_calculator_factory import DummyKPICalculatorFactory
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator \
-    .dummy_kpi_calculator_model import DummyKPICalculatorModel
-
-
-class TestDummyKPICalculator(unittest.TestCase):
-    def test_run(self):
-        factory = mock.Mock(spec=DummyKPICalculatorFactory)
-        kpic = DummyKPICalculator(factory)
-        model = DummyKPICalculatorModel(factory)
-        input_ = []
-        output = kpic.run(model, [])
-        self.assertEqual(input_, output)
-
-    def test_slots(self):
-        factory = mock.Mock(spec=DummyKPICalculatorFactory)
-        kpic = DummyKPICalculator(factory)
-        model = DummyKPICalculatorModel(factory)
-        self.assertEqual(kpic.slots(model), ((), ()))
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator_factory.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator_factory.py
deleted file mode 100644
index 263611a..0000000
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/tests/test_dummy_kpi_calculator_factory.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator.dummy_kpi_calculator\
-    import \
-    DummyKPICalculator
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator\
-    .dummy_kpi_calculator_factory import \
-    DummyKPICalculatorFactory
-from force_bdss.core_plugins.dummy.dummy_kpi_calculator\
-    .dummy_kpi_calculator_model import \
-    DummyKPICalculatorModel
-from force_bdss.core_plugins.dummy.tests.kpi_calculator_factory_test_mixin \
-    import \
-    KPICalculatorFactoryTestMixin
-
-
-class TestDummyKPICalculatorFactory(
-        KPICalculatorFactoryTestMixin, unittest.TestCase):
-
-    @property
-    def factory_class(self):
-        return DummyKPICalculatorFactory
-
-    @property
-    def kpi_calculator_class(self):
-        return DummyKPICalculator
-
-    @property
-    def model_class(self):
-        return DummyKPICalculatorModel
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/__init__.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener.py
deleted file mode 100644
index d8d7241..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from __future__ import print_function
-
-from force_bdss.api import (
-    BaseNotificationListener,
-    MCOStartEvent,
-    MCOFinishEvent,
-    MCOProgressEvent
-)
-
-
-class DummyNotificationListener(BaseNotificationListener):
-    def deliver(self, event):
-        if isinstance(event, (MCOStartEvent, MCOFinishEvent)):
-            print(event.__class__.__name__)
-        elif isinstance(event, MCOProgressEvent):
-            print(event.__class__.__name__, event.input, event.output)
-        else:
-            print(event.__class__.__name__)
-
-    def initialize(self, model):
-        print("Initializing")
-
-    def finalize(self):
-        print("Finalizing")
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_factory.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_factory.py
deleted file mode 100644
index e8e7c37..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_factory.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from traits.api import String
-
-from force_bdss.api import (
-    factory_id,
-    BaseNotificationListenerFactory)
-
-from .dummy_notification_listener import DummyNotificationListener
-from .dummy_notification_listener_model import DummyNotificationListenerModel
-
-
-class DummyNotificationListenerFactory(BaseNotificationListenerFactory):
-    id = String(factory_id("enthought", "dummy_notification_listener"))
-
-    name = String("Dummy Notification Listener")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return DummyNotificationListenerModel(self, **model_data)
-
-    def create_listener(self):
-        return DummyNotificationListener(self)
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_model.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_model.py
deleted file mode 100644
index 0e2c5ba..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/dummy_notification_listener_model.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from force_bdss.api import BaseNotificationListenerModel
-
-
-class DummyNotificationListenerModel(BaseNotificationListenerModel):
-    pass
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/__init__.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener.py
deleted file mode 100644
index 82741a4..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import unittest
-
-from force_bdss.api import MCOStartEvent, MCOProgressEvent, MCOFinishEvent
-from force_bdss.notification_listeners.base_notification_listener_factory \
-    import \
-    BaseNotificationListenerFactory
-from force_bdss.notification_listeners.base_notification_listener_model \
-    import \
-    BaseNotificationListenerModel
-from force_bdss.tests.utils import captured_output
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from force_bdss.core_plugins.dummy.dummy_notification_listener \
-    .dummy_notification_listener import \
-    DummyNotificationListener
-
-
-class TestDummyNotificationListener(unittest.TestCase):
-    def test_initialization(self):
-        listener = DummyNotificationListener(
-            mock.Mock(spec=BaseNotificationListenerFactory))
-        model = mock.Mock(spec=BaseNotificationListenerModel)
-        with captured_output() as (out, err):
-            listener.initialize(model)
-            listener.deliver(MCOStartEvent())
-            listener.deliver(MCOProgressEvent())
-            listener.deliver(MCOFinishEvent())
-            listener.finalize()
-
-        self.assertEqual(
-            out.getvalue(),
-            "Initializing\nMCOStartEvent\nMCOProgressEvent () ()\n"
-            "MCOFinishEvent\nFinalizing\n")
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_factory.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_factory.py
deleted file mode 100644
index 10af546..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_factory.py
+++ /dev/null
@@ -1,26 +0,0 @@
-
-import unittest
-
-from envisage.plugin import Plugin
-
-from force_bdss.core_plugins.dummy.dummy_notification_listener\
-    .dummy_notification_listener_factory import \
-    DummyNotificationListenerFactory
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestDummyNotificationListenerFactory(unittest.TestCase):
-    def test_create_methods(self):
-        factory = DummyNotificationListenerFactory(mock.Mock(spec=Plugin))
-        model = factory.create_model()
-        self.assertEqual(model.factory, factory)
-
-        model = factory.create_model({})
-        self.assertEqual(model.factory, factory)
-
-        listener = factory.create_listener()
-        self.assertEqual(listener.factory, factory)
diff --git a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_model.py b/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_model.py
deleted file mode 100644
index 94f3294..0000000
--- a/force_bdss/core_plugins/dummy/dummy_notification_listener/tests/test_dummy_notification_listener_model.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.dummy_notification_listener\
-    .dummy_notification_listener_factory import \
-    DummyNotificationListenerFactory
-from force_bdss.core_plugins.dummy.dummy_notification_listener\
-    .dummy_notification_listener_model import \
-    DummyNotificationListenerModel
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestDummyNotificationListenerModel(unittest.TestCase):
-    def test_initialization(self):
-        factory = mock.Mock(spec=DummyNotificationListenerFactory)
-        model = DummyNotificationListenerModel(factory)
-        self.assertEqual(model.factory, factory)
diff --git a/force_bdss/core_plugins/dummy/dummy_plugin.py b/force_bdss/core_plugins/dummy/dummy_plugin.py
deleted file mode 100644
index 766186f..0000000
--- a/force_bdss/core_plugins/dummy/dummy_plugin.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from force_bdss.api import BaseExtensionPlugin, plugin_id
-from .dummy_notification_listener.dummy_notification_listener_factory import (
-    DummyNotificationListenerFactory
-)
-from .csv_extractor.csv_extractor_factory import CSVExtractorFactory
-from .power_evaluator.power_evaluator_factory import PowerEvaluatorFactory
-from .kpi_adder.kpi_adder_factory import KPIAdderFactory
-from .dummy_dakota.dakota_factory import DummyDakotaFactory
-from .dummy_data_source.dummy_data_source_factory import DummyDataSourceFactory
-from .dummy_kpi_calculator.dummy_kpi_calculator_factory import (
-    DummyKPICalculatorFactory
-)
-
-
-class DummyPlugin(BaseExtensionPlugin):
-    id = plugin_id("enthought", "DummyPlugin")
-
-    def _data_source_factories_default(self):
-        return [DummyDataSourceFactory(self),
-                CSVExtractorFactory(self),
-                PowerEvaluatorFactory(self)]
-
-    def _mco_factories_default(self):
-        return [DummyDakotaFactory(self)]
-
-    def _kpi_calculator_factories_default(self):
-        return [DummyKPICalculatorFactory(self),
-                KPIAdderFactory(self)]
-
-    def _notification_listener_factories_default(self):
-        return [DummyNotificationListenerFactory(self),
-                ]
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/__init__.py b/force_bdss/core_plugins/dummy/kpi_adder/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
deleted file mode 100644
index 793810e..0000000
--- a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from force_bdss.api import BaseKPICalculator, DataValue
-from force_bdss.core.slot import Slot
-
-
-class KPIAdderCalculator(BaseKPICalculator):
-    def run(self, model, data_source_results):
-        sum = 0.0
-
-        for res in data_source_results:
-            if res.type != model.cuba_type_in:
-                continue
-
-            sum += res.value
-
-        return [
-            DataValue(
-                type=model.cuba_type_out,
-                value=sum
-            )]
-
-    def slots(self, model):
-        return (
-            (
-                Slot(type=model.cuba_type_in),
-                Slot(type=model.cuba_type_in),
-                Slot(type=model.cuba_type_in),
-            ),
-            (
-                Slot(type=model.cuba_type_out),
-            )
-        )
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_factory.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_factory.py
deleted file mode 100644
index f001ff5..0000000
--- a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_factory.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from traits.api import String
-
-from force_bdss.api import factory_id, BaseKPICalculatorFactory
-
-from .kpi_adder_model import KPIAdderModel
-from .kpi_adder_calculator import KPIAdderCalculator
-
-
-class KPIAdderFactory(BaseKPICalculatorFactory):
-    id = String(factory_id("enthought", "kpi_adder"))
-
-    name = String("KPI Adder")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return KPIAdderModel(self, **model_data)
-
-    def create_kpi_calculator(self):
-        return KPIAdderCalculator(self)
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py
deleted file mode 100644
index cf8d0e3..0000000
--- a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from traits.api import String, on_trait_change
-
-from force_bdss.api import BaseKPICalculatorModel
-
-
-class KPIAdderModel(BaseKPICalculatorModel):
-    cuba_type_in = String()
-    cuba_type_out = String()
-
-    @on_trait_change("cuba_type_in,cuba_type_out")
-    def _notify_slots_changed(self):
-        self.changes_slots = True
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py b/force_bdss/core_plugins/dummy/kpi_adder/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_calculator.py b/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_calculator.py
deleted file mode 100644
index d12f689..0000000
--- a/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_calculator.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import unittest
-
-from force_bdss.core.data_value import DataValue
-from force_bdss.core_plugins.dummy.kpi_adder.kpi_adder_model import \
-    KPIAdderModel
-from force_bdss.kpi.base_kpi_calculator_factory import BaseKPICalculatorFactory
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from force_bdss.core_plugins.dummy.kpi_adder.kpi_adder_calculator import \
-    KPIAdderCalculator
-
-
-class TestKPIAdderCalculator(unittest.TestCase):
-    def test_basic_functionality(self):
-        kpic = KPIAdderCalculator(mock.Mock(spec=BaseKPICalculatorFactory))
-        model = KPIAdderModel(mock.Mock(spec=BaseKPICalculatorFactory))
-        model.cuba_type_in = "PRESSURE"
-        model.cuba_type_out = "TOTAL_PRESSURE"
-        dv1 = DataValue(type="PRESSURE", value=10)
-        dv2 = DataValue(type="PRESSURE", value=30)
-        dv3 = DataValue(type="VOLUME", value=100)
-        res = kpic.run(model, [dv1, dv2, dv3])
-        self.assertEqual(res[0].type, "TOTAL_PRESSURE")
-        self.assertEqual(res[0].value, 40)
-
-    def test_slots(self):
-        kpic = KPIAdderCalculator(mock.Mock(spec=BaseKPICalculatorFactory))
-        model = KPIAdderModel(mock.Mock(spec=BaseKPICalculatorFactory))
-        in_slot, out_slot = kpic.slots(model)
-        self.assertEqual(len(in_slot), 3)
-        self.assertEqual(len(out_slot), 1)
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_factory.py b/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_factory.py
deleted file mode 100644
index ee5d964..0000000
--- a/force_bdss/core_plugins/dummy/kpi_adder/tests/test_kpi_adder_factory.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.kpi_adder.kpi_adder_factory import \
-    KPIAdderFactory
-from force_bdss.core_plugins.dummy.kpi_adder.kpi_adder_calculator import \
-    KPIAdderCalculator
-from force_bdss.core_plugins.dummy.kpi_adder.kpi_adder_model import \
-    KPIAdderModel
-from force_bdss.core_plugins.dummy.tests.kpi_calculator_factory_test_mixin \
-    import \
-    KPICalculatorFactoryTestMixin
-
-
-class TestDummyKPICalculatorFactory(
-        KPICalculatorFactoryTestMixin, unittest.TestCase):
-
-    @property
-    def factory_class(self):
-        return KPIAdderFactory
-
-    @property
-    def kpi_calculator_class(self):
-        return KPIAdderCalculator
-
-    @property
-    def model_class(self):
-        return KPIAdderModel
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/__init__.py b/force_bdss/core_plugins/dummy/power_evaluator/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_data_source.py b/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_data_source.py
deleted file mode 100644
index d8eb722..0000000
--- a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_data_source.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import math
-
-from force_bdss.api import BaseDataSource, DataValue
-from force_bdss.core.slot import Slot
-
-
-class PowerEvaluatorDataSource(BaseDataSource):
-    def run(self, model, parameters):
-        x = parameters[0].value
-        return [
-            DataValue(
-                type=model.cuba_type_out,
-                value=math.pow(x, model.power)
-            )]
-
-    def slots(self, model):
-        return (
-            (
-                Slot(type=model.cuba_type_in),
-            ),
-            (
-                Slot(type=model.cuba_type_out),
-            )
-        )
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_factory.py b/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_factory.py
deleted file mode 100644
index ebd3aac..0000000
--- a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_factory.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from traits.api import String
-
-from force_bdss.api import factory_id, BaseDataSourceFactory
-
-from .power_evaluator_model import PowerEvaluatorModel
-from .power_evaluator_data_source import PowerEvaluatorDataSource
-
-
-class PowerEvaluatorFactory(BaseDataSourceFactory):
-    id = String(factory_id("enthought", "power_evaluator"))
-
-    name = String("Power Evaluator")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return PowerEvaluatorModel(self, **model_data)
-
-    def create_data_source(self):
-        return PowerEvaluatorDataSource(self)
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_model.py b/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_model.py
deleted file mode 100644
index 14a2efc..0000000
--- a/force_bdss/core_plugins/dummy/power_evaluator/power_evaluator_model.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from traits.api import Float, String, on_trait_change
-
-from force_bdss.api import BaseDataSourceModel
-
-
-class PowerEvaluatorModel(BaseDataSourceModel):
-    power = Float(1.0)
-    cuba_type_in = String()
-    cuba_type_out = String()
-
-    @on_trait_change("cuba_type_in,cuba_type_out")
-    def _notify_changes_slots(self):
-        self.changes_slots = True
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/tests/__init__.py b/force_bdss/core_plugins/dummy/power_evaluator/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_data_source.py b/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_data_source.py
deleted file mode 100644
index f4d35ac..0000000
--- a/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_data_source.py
+++ /dev/null
@@ -1,57 +0,0 @@
-import unittest
-
-from force_bdss.core.data_value import DataValue
-from force_bdss.core.slot import Slot
-from force_bdss.core_plugins.dummy.power_evaluator.power_evaluator_data_source import PowerEvaluatorDataSource  # noqa
-from force_bdss.core_plugins.dummy.power_evaluator.power_evaluator_model import PowerEvaluatorModel  # noqa
-from force_bdss.data_sources.base_data_source_factory import \
-    BaseDataSourceFactory
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class TestPowerEvaluatorDataSource(unittest.TestCase):
-    def setUp(self):
-        self.factory = mock.Mock(spec=BaseDataSourceFactory)
-
-    def test_initialization(self):
-        ds = PowerEvaluatorDataSource(self.factory)
-        self.assertEqual(ds.factory, self.factory)
-
-    def test_run(self):
-        ds = PowerEvaluatorDataSource(self.factory)
-        model = PowerEvaluatorModel(self.factory)
-        model.power = 2
-        mock_params = [DataValue(value=5, type="METER")]
-        result = ds.run(model, mock_params)
-        self.assertIsInstance(result, list)
-        self.assertEqual(len(result), 1)
-        self.assertIsInstance(result[0], DataValue)
-        self.assertEqual(result[0].value, 25)
-
-    def test_run_with_exception(self):
-        ds = PowerEvaluatorDataSource(self.factory)
-        model = PowerEvaluatorModel(self.factory)
-        mock_params = []
-        model.power = 3
-        with self.assertRaises(IndexError):
-            ds.run(model, mock_params)
-
-    def test_slots(self):
-        ds = PowerEvaluatorDataSource(self.factory)
-        model = PowerEvaluatorModel(self.factory)
-        slots = ds.slots(model)
-        self.assertEqual(len(slots), 2)
-        self.assertEqual(len(slots[0]), 1)
-        self.assertEqual(len(slots[1]), 1)
-        self.assertIsInstance(slots[0][0], Slot)
-        self.assertIsInstance(slots[1][0], Slot)
-
-        model.cuba_type_in = 'METER'
-        model.cuba_type_out = 'METER'
-        slots = ds.slots(model)
-        self.assertEqual(slots[0][0].type, 'METER')
-        self.assertEqual(slots[1][0].type, 'METER')
diff --git a/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_factory.py b/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_factory.py
deleted file mode 100644
index 5df8c8f..0000000
--- a/force_bdss/core_plugins/dummy/power_evaluator/tests/test_power_evaluator_factory.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import unittest
-
-from force_bdss.core_plugins.dummy.tests.data_source_factory_test_mixin \
-    import DataSourceFactoryTestMixin
-from force_bdss.core_plugins.dummy.power_evaluator.power_evaluator_factory import PowerEvaluatorFactory  # noqa
-from force_bdss.core_plugins.dummy.power_evaluator.power_evaluator_data_source import PowerEvaluatorDataSource  # noqa
-from force_bdss.core_plugins.dummy.power_evaluator.power_evaluator_model import PowerEvaluatorModel  # noqa
-
-
-class TestPowerEvaluatorFactory(DataSourceFactoryTestMixin,
-                                unittest.TestCase):
-    @property
-    def factory_class(self):
-        return PowerEvaluatorFactory
-
-    @property
-    def model_class(self):
-        return PowerEvaluatorModel
-
-    @property
-    def data_source_class(self):
-        return PowerEvaluatorDataSource
diff --git a/force_bdss/core_plugins/dummy/tests/__init__.py b/force_bdss/core_plugins/dummy/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy/tests/data_source_factory_test_mixin.py b/force_bdss/core_plugins/dummy/tests/data_source_factory_test_mixin.py
deleted file mode 100644
index 21aeb4a..0000000
--- a/force_bdss/core_plugins/dummy/tests/data_source_factory_test_mixin.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from envisage.plugin import Plugin
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-
-class DataSourceFactoryTestMixin(object):
-    def setUp(self):
-        self.plugin = mock.Mock(spec=Plugin)
-        super(DataSourceFactoryTestMixin, self).setUp()
-
-    # Note: we can't use metaclasses. Apparently using six.with_metaclass
-    # breaks the unittest TestCase mechanism. py3 metaclassing works.
-    @property
-    def factory_class(self):
-        raise NotImplementedError()
-
-    @property
-    def model_class(self):
-        raise NotImplementedError()
-
-    @property
-    def data_source_class(self):
-        raise NotImplementedError()
-
-    def test_initialization(self):
-        factory = self.factory_class(self.plugin)
-        self.assertNotEqual(factory.id, "")
-        self.assertEqual(factory.plugin, self.plugin)
-
-    def test_create_model(self):
-        factory = self.factory_class(self.plugin)
-        model = factory.create_model({})
-        self.assertIsInstance(model, self.model_class)
-
-        model = factory.create_model()
-        self.assertIsInstance(model, self.model_class)
-
-    def test_create_data_source(self):
-        factory = self.factory_class(self.plugin)
-        ds = factory.create_data_source()
-        self.assertIsInstance(ds, self.data_source_class)
diff --git a/force_bdss/core_plugins/dummy/tests/kpi_calculator_factory_test_mixin.py b/force_bdss/core_plugins/dummy/tests/kpi_calculator_factory_test_mixin.py
deleted file mode 100644
index 9cc4827..0000000
--- a/force_bdss/core_plugins/dummy/tests/kpi_calculator_factory_test_mixin.py
+++ /dev/null
@@ -1,42 +0,0 @@
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from envisage.api import Plugin
-
-
-class KPICalculatorFactoryTestMixin(object):
-    def setUp(self):
-        self.plugin = mock.Mock(spec=Plugin)
-        super(KPICalculatorFactoryTestMixin, self).setUp()
-
-    @property
-    def factory_class(self):
-        raise NotImplementedError()
-
-    @property
-    def model_class(self):
-        raise NotImplementedError()
-
-    @property
-    def kpi_calculator_class(self):
-        raise NotImplementedError()
-
-    def test_initialization(self):
-        factory = self.factory_class(self.plugin)
-        self.assertNotEqual(factory.id, "")
-        self.assertEqual(factory.plugin, self.plugin)
-
-    def test_create_model(self):
-        factory = self.factory_class(self.plugin)
-        model = factory.create_model({})
-        self.assertIsInstance(model, self.model_class)
-
-        model = factory.create_model()
-        self.assertIsInstance(model, self.model_class)
-
-    def test_create_kpi_calculator(self):
-        factory = self.factory_class(self.plugin)
-        ds = factory.create_kpi_calculator()
-        self.assertIsInstance(ds, self.kpi_calculator_class)
diff --git a/force_bdss/core_plugins/dummy/tests/test_direct_execution.py b/force_bdss/core_plugins/dummy/tests/test_direct_execution.py
deleted file mode 100644
index b0f34b6..0000000
--- a/force_bdss/core_plugins/dummy/tests/test_direct_execution.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import unittest
-from traits.api import List
-
-from envisage.application import Application
-
-from force_bdss.factory_registry_plugin import FactoryRegistryPlugin
-from force_bdss.cli.tests.test_execution import cd
-
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
-from force_bdss.core_evaluation_driver import CoreEvaluationDriver
-from force_bdss.core_plugins.dummy.dummy_plugin import DummyPlugin
-from force_bdss.tests import fixtures
-
-
-class DummyFactoryRegistryPlugin(FactoryRegistryPlugin):
-    mco_factories = List()
-    kpi_calculator_factories = List()
-    data_source_factories = List()
-    notification_listener_factories = List()
-
-
-def mock_factory_registry_plugin():
-    plugin = DummyPlugin()
-    factory_registry_plugin = DummyFactoryRegistryPlugin()
-    factory_registry_plugin.mco_factories = plugin.mco_factories
-    factory_registry_plugin.kpi_calculator_factories = \
-        plugin.kpi_calculator_factories
-    factory_registry_plugin.data_source_factories = \
-        plugin.data_source_factories
-    factory_registry_plugin.notification_listener_factories = \
-        plugin.notification_listener_factories
-    return factory_registry_plugin
-
-
-class TestDirectExecution(unittest.TestCase):
-    def setUp(self):
-        self.mock_factory_registry_plugin = mock_factory_registry_plugin()
-        application = mock.Mock(spec=Application)
-        application.get_plugin = mock.Mock(
-            return_value=self.mock_factory_registry_plugin
-        )
-        application.workflow_filepath = fixtures.get("test_csv.json")
-        self.mock_application = application
-
-    def test_initialization(self):
-        driver = CoreEvaluationDriver(
-            application=self.mock_application,
-        )
-        with cd(fixtures.dirpath()), \
-                mock.patch("sys.stdin") as stdin, \
-                mock.patch("sys.stdout") as stdout:
-
-            stdin.read.return_value = "1"
-            driver.application_started()
-            write_args = stdout.write.call_args
-
-        self.assertEqual(write_args[0][0], "85.0")
diff --git a/force_bdss/tests/probe_classes/mco.py b/force_bdss/tests/probe_classes/mco.py
index 89c2c2f..3690484 100644
--- a/force_bdss/tests/probe_classes/mco.py
+++ b/force_bdss/tests/probe_classes/mco.py
@@ -1,4 +1,4 @@
-from traits.api import Str, Type, Bool, Int, Function
+from traits.api import Str, Type, Bool, Int, Function, List
 
 from force_bdss.ids import mco_parameter_id, factory_id
 from force_bdss.core.data_value import DataValue
@@ -31,7 +31,7 @@ class ProbeParameter(BaseMCOParameter):
     pass
 
 
-class RangedParameterFactory(BaseMCOParameterFactory):
+class ProbeParameterFactory(BaseMCOParameterFactory):
     id = Str(mco_parameter_id("enthought", "test_mco", "test"))
 
     model_class = Type(ProbeParameter)
@@ -62,6 +62,8 @@ class ProbeMCOFactory(BaseMCOFactory):
 
     mco_class = Type(ProbeMCO)
 
+    probe_parameter_factories = List(Type(ProbeParameterFactory))
+
     nb_output_data_values = Int(0)
 
     def create_model(self, model_data=None):
diff --git a/setup.py b/setup.py
index 98309fe..398cc33 100644
--- a/setup.py
+++ b/setup.py
@@ -28,9 +28,6 @@ setup(
         'console_scripts': [
             'force_bdss = force_bdss.cli.force_bdss:run',
         ],
-        "force.bdss.extensions": [
-            "dummy = force_bdss.core_plugins.dummy.dummy_plugin:DummyPlugin",
-        ]
     },
     packages=find_packages(),
     install_requires=[
-- 
GitLab