diff --git a/beat/backend/python/test/__init__.py b/beat/backend/python/test/__init__.py
index 335045c65c50b1e4f0953c0139c4de8285c89a6c..9b5a7da2dc82c7c3e1875918d424eec68611b4c4 100644
--- a/beat/backend/python/test/__init__.py
+++ b/beat/backend/python/test/__init__.py
@@ -34,4 +34,5 @@
 ###################################################################################
 
 import pkg_resources
-prefix = pkg_resources.resource_filename(__name__, 'prefix')
+
+prefix = pkg_resources.resource_filename(__name__, "prefix")
diff --git a/beat/backend/python/test/mocks.py b/beat/backend/python/test/mocks.py
index 038d2e4ee1d31bd115395d33bf4fc0ab094303bd..65f64c5581cb906522bc0f44f0d5aba1bae69fb8 100644
--- a/beat/backend/python/test/mocks.py
+++ b/beat/backend/python/test/mocks.py
@@ -38,42 +38,39 @@ import logging
 
 from collections import namedtuple
 
-from ..data import DataSource
 from ..data import DataSink
+from ..data import DataSource
 
 
 class MockDataSource(DataSource):
-
     def __init__(self, data_and_indices):
         super(MockDataSource, self).__init__()
-        self.infos = [ (x[1], x[2]) for x in data_and_indices ]
-        self.data = [ x[0] for x in data_and_indices ]
+        self.infos = [(x[1], x[2]) for x in data_and_indices]
+        self.data = [x[0] for x in data_and_indices]
 
     def __getitem__(self, index):
         return (self.data[index], self.infos[index][0], self.infos[index][1])
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class CrashingDataSource(DataSource):
-
     def __init__(self):
         super(CrashingDataSource, self).__init__()
 
-        Infos = namedtuple('Infos', ['start_index', 'end_index'])
+        Infos = namedtuple("Infos", ["start_index", "end_index"])
         self.infos = [Infos(0, 0)]
 
     def __getitem__(self, index):
-        a = b
+        a = b  # noqa
         return (None, None, None)
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class MockDataSink(DataSink):
-
     class WrittenData:
         def __init__(self, data, start, end):
             self.data = data
@@ -86,7 +83,8 @@ class MockDataSink(DataSink):
         self.dataformat = dataformat
 
     def write(self, data, start_data_index, end_data_index):
-        if not(self.can_write): raise IOError
+        if not (self.can_write):
+            raise IOError
         self.written.append(
             MockDataSink.WrittenData(data, start_data_index, end_data_index)
         )
@@ -94,6 +92,7 @@ class MockDataSink(DataSink):
     def isConnected(self):
         return True
 
+
 # Based on https://stackoverflow.com/a/20553331/5843716
 class MockLoggingHandler(logging.Handler):
     """Mock logging handler to check for expected logs.
@@ -104,9 +103,12 @@ class MockLoggingHandler(logging.Handler):
 
     def __init__(self, *args, **kwargs):
         self.messages = {
-            'debug': [], 'info': [],
-            'warning': [], 'error': [],
-            'critical': [], 'extra': []
+            "debug": [],
+            "info": [],
+            "warning": [],
+            "error": [],
+            "critical": [],
+            "extra": [],
         }
         super(MockLoggingHandler, self).__init__(*args, **kwargs)
 
diff --git a/beat/backend/python/test/test_algorithm.py b/beat/backend/python/test/test_algorithm.py
index 8b90e6fe19dfad498c875f87a4789accb29227df..6a9e694c69c6bd28b7cf3515d46861a7627d0502 100644
--- a/beat/backend/python/test/test_algorithm.py
+++ b/beat/backend/python/test/test_algorithm.py
@@ -34,34 +34,31 @@
 ###################################################################################
 
 
-import unittest
-import six
-import os
 import glob
-import tempfile
 import logging
+import os
+import tempfile
+import unittest
 
 import numpy as np
+import six
 
 from ..algorithm import Algorithm
-from ..data_loaders import DataLoaderList
-from ..data_loaders import DataLoader
-from ..dataformat import DataFormat
 from ..data import CachedDataSink
 from ..data import CachedDataSource
+from ..data_loaders import DataLoader
+from ..data_loaders import DataLoaderList
+from ..dataformat import DataFormat
 from ..inputs import Input
 from ..inputs import InputGroup
 from ..inputs import InputList
 from ..outputs import Output
 from ..outputs import OutputList
 from ..outputs import SynchronizationListener
-
+from . import prefix
 from .mocks import MockDataSink
 from .mocks import MockLoggingHandler
 
-from . import prefix
-
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_data.py b/beat/backend/python/test/test_data.py
index 4bd14bf49e0900c92e17afdeba1e52fed026a237..bedfaa5ec4a7eecf7b0484ad0d8ab8d5313db47a 100644
--- a/beat/backend/python/test/test_data.py
+++ b/beat/backend/python/test/test_data.py
@@ -34,24 +34,22 @@
 ###################################################################################
 
 
-import unittest
-import os
 import glob
+import os
 import pickle  # nosec
-import tempfile
 import shutil
+import tempfile
+import unittest
 
-from ..data import mixDataIndices
-from ..data import CachedDataSource
 from ..data import CachedDataSink
-from ..data import getAllFilenames
+from ..data import CachedDataSource
 from ..data import foundSplitRanges
-from ..dataformat import DataFormat
+from ..data import getAllFilenames
+from ..data import mixDataIndices
 from ..database import Database
-
+from ..dataformat import DataFormat
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_data_loaders.py b/beat/backend/python/test/test_data_loaders.py
index 5c7ad1ec81aad5ddb3b188e6401adc6be8a8ed33..a5d7795fefe238a573ff01156688caba5480f273 100644
--- a/beat/backend/python/test/test_data_loaders.py
+++ b/beat/backend/python/test/test_data_loaders.py
@@ -34,21 +34,20 @@
 ###################################################################################
 
 
-import unittest
-import os
 import glob
+import os
 import tempfile
+import unittest
+
 import numpy as np
 
+from ..data import CachedDataSink
+from ..data import CachedDataSource
 from ..data_loaders import DataLoader
 from ..data_loaders import DataLoaderList
 from ..dataformat import DataFormat
-from ..data import CachedDataSink
-from ..data import CachedDataSource
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_database.py b/beat/backend/python/test/test_database.py
index 7720fce7a68b4c60d91cb5e13c1d5c72a8744df2..146176862d591680c107fd4a963cbed3ce61b184 100644
--- a/beat/backend/python/test/test_database.py
+++ b/beat/backend/python/test/test_database.py
@@ -35,11 +35,10 @@
 
 
 import nose.tools
-from ..database import Database
 
+from ..database import Database
 from . import prefix
 
-
 INTEGERS_DBS = ["integers_db/{}".format(i) for i in range(1, 3)]
 
 
diff --git a/beat/backend/python/test/test_database_view.py b/beat/backend/python/test/test_database_view.py
index 77c1df7b5b1d4017d428b9ce0fae0b7d43fa30e6..18d2a73fc1afc36703dc4f81cf56e1e22294a9a3 100644
--- a/beat/backend/python/test/test_database_view.py
+++ b/beat/backend/python/test/test_database_view.py
@@ -34,20 +34,17 @@
 ###################################################################################
 
 
-import unittest
-import tempfile
-import shutil
 import os
+import shutil
+import tempfile
+import unittest
 
 from ddt import ddt
 from ddt import idata
 
 from ..database import Database
-
-from .test_database import INTEGERS_DBS
-
 from . import prefix
-
+from .test_database import INTEGERS_DBS
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_databases_index.py b/beat/backend/python/test/test_databases_index.py
index 1cbaafb7961adfff9f08dbf88d532a8caeea0559..c652fe003f39d07c596038a58e2dd6fee7cb34b8 100644
--- a/beat/backend/python/test/test_databases_index.py
+++ b/beat/backend/python/test/test_databases_index.py
@@ -36,24 +36,20 @@
 
 # Tests for experiment execution
 
-import os
-
-import unittest
 import multiprocessing
-import tempfile
+import os
 import shutil
+import tempfile
+import unittest
 
 from ddt import ddt
 from ddt import idata
 
-from ..scripts import index
 from ..hash import hashDataset
 from ..hash import toPath
-
-from .test_database import INTEGERS_DBS
-
+from ..scripts import index
 from . import prefix
-
+from .test_database import INTEGERS_DBS
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_databases_provider.py b/beat/backend/python/test/test_databases_provider.py
index bf707cae3e79f3f68331a60366a7475ac63f33c2..53755890182d5e74644ba4fe4d0c5604cf500af4 100644
--- a/beat/backend/python/test/test_databases_provider.py
+++ b/beat/backend/python/test/test_databases_provider.py
@@ -36,30 +36,27 @@
 
 # Tests for experiment execution
 
-import os
-import socket
-
-import unittest
 import json
 import multiprocessing
-import tempfile
+import os
 import shutil
+import socket
+import tempfile
+import unittest
+
+from contextlib import closing
+
 import zmq
 
 from ddt import ddt
 from ddt import idata
 
-from contextlib import closing
-
-from ..scripts import databases_provider
-from ..database import Database
 from ..data import RemoteDataSource
 from ..data import RemoteException
-
-from .test_database import INTEGERS_DBS
-
+from ..database import Database
+from ..scripts import databases_provider
 from . import prefix
-
+from .test_database import INTEGERS_DBS
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_dbexecutor.py b/beat/backend/python/test/test_dbexecutor.py
index cc5db3b569a46a8dec3eaf4fcdeb01ef77e08d5f..62543d72bfb3cea7005a2cb53dc232d27833e4a1 100644
--- a/beat/backend/python/test/test_dbexecutor.py
+++ b/beat/backend/python/test/test_dbexecutor.py
@@ -37,26 +37,24 @@
 # Tests for experiment execution
 
 import os
+import shutil
+import tempfile
 import unittest
+
 import zmq
-import tempfile
-import shutil
 
 from ddt import ddt
 from ddt import idata
 
+from ..data import RemoteDataSource
+from ..data_loaders import DataLoader
+from ..database import Database
 from ..execution import DBExecutor
 from ..execution import MessageHandler
-from ..database import Database
-from ..data_loaders import DataLoader
-from ..data import RemoteDataSource
 from ..hash import hashDataset
 from ..hash import toPath
-
-from .test_database import INTEGERS_DBS
-
 from . import prefix
-
+from .test_database import INTEGERS_DBS
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_executor.py b/beat/backend/python/test/test_executor.py
index 4a8e36612f9cff5134bf8229330398c98ca4ab8a..3ff2d070c4269d27201a5fe01531cc9d6497bab1 100644
--- a/beat/backend/python/test/test_executor.py
+++ b/beat/backend/python/test/test_executor.py
@@ -34,55 +34,41 @@
 ###################################################################################
 
 
-import unittest
 import logging
-import tempfile
-import simplejson
 import os
-import zmq
 import shutil
-import numpy as np
+import tempfile
+import unittest
+
 from copy import deepcopy
 
-from ..execution import AlgorithmExecutor
-from ..execution import MessageHandler
-from ..inputs import InputList
+import numpy as np
+import simplejson
+import zmq
+
 from ..algorithm import Algorithm
-from ..dataformat import DataFormat
 from ..data import CachedDataSink
 from ..data import CachedDataSource
+from ..dataformat import DataFormat
+from ..execution import AlgorithmExecutor
+from ..execution import MessageHandler
 from ..helpers import convert_experiment_configuration_to_container
-from ..helpers import AccessMode
-
 from . import prefix
 from .mocks import MockLoggingHandler
 
-
 CONFIGURATION = {
-    'algorithm': '',
-    'channel': 'main',
-    'parameters': {
-    },
-    'inputs': {
-        'in': {
-            'path': 'INPUT',
-            'channel': 'main',
-        }
-    },
-    'outputs': {
-        'out': {
-            'path': 'OUTPUT',
-            'channel': 'main'
-        }
-    },
+    "algorithm": "",
+    "channel": "main",
+    "parameters": {},
+    "inputs": {"in": {"path": "INPUT", "channel": "main"}},
+    "outputs": {"out": {"path": "OUTPUT", "channel": "main"}},
 }
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class TestAlgorithmExecutor(unittest.TestCase):
-
     def setUp(self):
         self.cache_root = tempfile.mkdtemp(prefix=__name__)
         self.working_dir = tempfile.mkdtemp(prefix=__name__)
@@ -90,7 +76,6 @@ class TestAlgorithmExecutor(unittest.TestCase):
         self.executor_socket = None
         self.zmq_context = None
 
-
     def tearDown(self):
         shutil.rmtree(self.cache_root)
         shutil.rmtree(self.working_dir)
@@ -108,15 +93,18 @@ class TestAlgorithmExecutor(unittest.TestCase):
             self.executor_socket = None
             self.zmq_context = None
 
-
     def writeData(self, input_name, indices, start_value):
-        filename = os.path.join(self.cache_root, CONFIGURATION['inputs'][input_name]['path'] + '.data')
+        filename = os.path.join(
+            self.cache_root, CONFIGURATION["inputs"][input_name]["path"] + ".data"
+        )
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
         self.assertTrue(dataformat.valid)
 
         data_sink = CachedDataSink()
-        self.assertTrue(data_sink.setup(filename, dataformat, indices[0][0], indices[-1][1]))
+        self.assertTrue(
+            data_sink.setup(filename, dataformat, indices[0][0], indices[-1][1])
+        )
 
         for i in indices:
             data = dataformat.type()
@@ -130,26 +118,25 @@ class TestAlgorithmExecutor(unittest.TestCase):
         data_sink.close()
         del data_sink
 
-
     def process(self, algorithm_name):
-        self.writeData('in', [(0, 0), (1, 1), (2, 2), (3, 3)], 1000)
+        self.writeData("in", [(0, 0), (1, 1), (2, 2), (3, 3)], 1000)
 
         config = deepcopy(CONFIGURATION)
-        config['algorithm'] = algorithm_name
+        config["algorithm"] = algorithm_name
         config = convert_experiment_configuration_to_container(config)
 
-        with open(os.path.join(self.working_dir, 'configuration.json'), 'wb') as f:
-            data = simplejson.dumps(config, indent=4).encode('utf-8')
+        with open(os.path.join(self.working_dir, "configuration.json"), "wb") as f:
+            data = simplejson.dumps(config, indent=4).encode("utf-8")
             f.write(data)
 
-        working_prefix = os.path.join(self.working_dir, 'prefix')
+        working_prefix = os.path.join(self.working_dir, "prefix")
         if not os.path.exists(working_prefix):
             os.makedirs(working_prefix)
 
         algorithm = Algorithm(prefix, algorithm_name)
         algorithm.export(working_prefix)
 
-        self.message_handler = MessageHandler('127.0.0.1')
+        self.message_handler = MessageHandler("127.0.0.1")
 
         self.message_handler.start()
 
@@ -157,14 +144,23 @@ class TestAlgorithmExecutor(unittest.TestCase):
         self.executor_socket = self.zmq_context.socket(zmq.PAIR)
         self.executor_socket.connect(self.message_handler.address)
 
-        executor = AlgorithmExecutor(self.executor_socket, self.working_dir, cache_root=self.cache_root)
+        executor = AlgorithmExecutor(
+            self.executor_socket, self.working_dir, cache_root=self.cache_root
+        )
 
         self.assertTrue(executor.setup())
         self.assertTrue(executor.prepare())
         self.assertTrue(executor.process())
 
         cached_file = CachedDataSource()
-        self.assertTrue(cached_file.setup(os.path.join(self.cache_root, CONFIGURATION['outputs']['out']['path'] + '.data'), prefix))
+        self.assertTrue(
+            cached_file.setup(
+                os.path.join(
+                    self.cache_root, CONFIGURATION["outputs"]["out"]["path"] + ".data"
+                ),
+                prefix,
+            )
+        )
 
         for i in range(len(cached_file)):
             data, start, end = cached_file[i]
@@ -172,22 +168,22 @@ class TestAlgorithmExecutor(unittest.TestCase):
             self.assertEqual(start, i)
             self.assertEqual(end, i)
 
-
     def test_legacy_echo_1(self):
-        log_handler = MockLoggingHandler(level='DEBUG')
+        log_handler = MockLoggingHandler(level="DEBUG")
         logging.getLogger().addHandler(log_handler)
         log_messages = log_handler.messages
 
-        self.process('legacy/echo/1')
+        self.process("legacy/echo/1")
 
-        info_len = len(log_messages['warning'])
+        info_len = len(log_messages["warning"])
         self.assertEqual(info_len, 1)
-        self.assertEqual(log_messages['warning'][info_len - 1], 'legacy/echo/1 is using LEGACY I/O API, please upgrade this algorithm as soon as possible')
-
+        self.assertEqual(
+            log_messages["warning"][info_len - 1],
+            "legacy/echo/1 is using LEGACY I/O API, please upgrade this algorithm as soon as possible",
+        )
 
     def test_sequential_echo_1(self):
-        self.process('sequential/echo/1')
-
+        self.process("sequential/echo/1")
 
     def test_autonomous_echo_1(self):
-        self.process('autonomous/echo/1')
+        self.process("autonomous/echo/1")
diff --git a/beat/backend/python/test/test_format_array.py b/beat/backend/python/test/test_format_array.py
index 54f409d183a2dac40434dec60e8c78c4da7faea1..8698a01144b38b8fd0c84dd77ab514f6b6d46ad1 100644
--- a/beat/backend/python/test/test_format_array.py
+++ b/beat/backend/python/test/test_format_array.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import numpy
 import nose.tools
+import numpy
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_format_extends.py b/beat/backend/python/test/test_format_extends.py
index 8a7ff81cdfd3b54cac9763f88c9b0cebdc8e81ef..faccc97c0372ffdb3144abf699f2d8c34248ca04 100644
--- a/beat/backend/python/test/test_format_extends.py
+++ b/beat/backend/python/test/test_format_extends.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import numpy
 import nose.tools
+import numpy
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_format_missing_attributes.py b/beat/backend/python/test/test_format_missing_attributes.py
index 8e0938680149fbeb8af84de00ac6e24fcbf9f0a6..73490bc450b0152d1bfcefe5f860d36a7a7f3932 100644
--- a/beat/backend/python/test/test_format_missing_attributes.py
+++ b/beat/backend/python/test/test_format_missing_attributes.py
@@ -37,10 +37,8 @@
 import nose.tools
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_format_object.py b/beat/backend/python/test/test_format_object.py
index f88358a74f912a8ae5a8420e1f5d582410f37da3..6e5322b044aacce92d797a76edf5a57a69abd645 100644
--- a/beat/backend/python/test/test_format_object.py
+++ b/beat/backend/python/test/test_format_object.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import numpy
 import nose.tools
+import numpy
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_format_simple.py b/beat/backend/python/test/test_format_simple.py
index ddbfba674e09af7da315bd6c9cd0bb8684d244bb..5538b72b774cd206fbe5562b5a2e2c1dbcbf3839 100644
--- a/beat/backend/python/test/test_format_simple.py
+++ b/beat/backend/python/test/test_format_simple.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import numpy
 import nose.tools
+import numpy
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_format_unsafe_cast.py b/beat/backend/python/test/test_format_unsafe_cast.py
index e3d41786ea6aa0d19ab3ae9e998ba13e8c9cb658..c1335625815329a03333e1fd733dba82066cb475 100644
--- a/beat/backend/python/test/test_format_unsafe_cast.py
+++ b/beat/backend/python/test/test_format_unsafe_cast.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import six
 import nose.tools
+import six
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 number42L = long(42) if six.PY2 else int(42)  # noqa
 
 
diff --git a/beat/backend/python/test/test_format_valid_cast.py b/beat/backend/python/test/test_format_valid_cast.py
index 04f8ed7a9afcf7d43b9d1c67b0544344974da43c..7be5e5a7a84fa8d7cd79d2b3e40a82be6cf3b401 100644
--- a/beat/backend/python/test/test_format_valid_cast.py
+++ b/beat/backend/python/test/test_format_valid_cast.py
@@ -34,14 +34,12 @@
 ###################################################################################
 
 
-import numpy
 import nose.tools
+import numpy
 
 from ..dataformat import DataFormat
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_hash.py b/beat/backend/python/test/test_hash.py
index f8a641cc530e061e7be17eab8dfc53966a75947e..809de4596f4f3a370014e8e8599647fc722b4e47 100644
--- a/beat/backend/python/test/test_hash.py
+++ b/beat/backend/python/test/test_hash.py
@@ -39,7 +39,6 @@ import six
 
 from .. import hash
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_helpers.py b/beat/backend/python/test/test_helpers.py
index 701bf2e0edcc81786a9226c2865f0749aa9e0651..84cb91f8982c897a1f59e1eb5d9eabcf3bda92c1 100644
--- a/beat/backend/python/test/test_helpers.py
+++ b/beat/backend/python/test/test_helpers.py
@@ -37,22 +37,21 @@
 # Tests for experiment execution
 
 import os
+import shutil
+import tempfile
 import unittest
+
 import zmq
-import tempfile
-import shutil
 
+from ..algorithm import Algorithm
 from ..database import Database
+from ..execution import MessageHandler
 from ..hash import hashDataset
 from ..hash import toPath
-from ..algorithm import Algorithm
-from ..helpers import create_inputs_from_configuration
 from ..helpers import AccessMode
-from ..execution import MessageHandler
-
+from ..helpers import create_inputs_from_configuration
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_inputs.py b/beat/backend/python/test/test_inputs.py
index ace05f2d14419a19a0531644cf3c3b5784c45f7a..208a6a7857ca4f4477e6547cc2f76b6ca39612fe 100644
--- a/beat/backend/python/test/test_inputs.py
+++ b/beat/backend/python/test/test_inputs.py
@@ -36,66 +36,59 @@
 
 import unittest
 
-from .mocks import MockDataSource
-
-from ..outputs import SynchronizationListener
+from ..dataformat import DataFormat
 from ..inputs import Input
 from ..inputs import InputGroup
 from ..inputs import InputList
-from ..dataformat import DataFormat
-from ..data import CachedDataSink
-
+from ..outputs import SynchronizationListener
 from . import prefix
+from .mocks import MockDataSource
 
-
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class InputTest(unittest.TestCase):
-
     def test_creation(self):
         data_source = MockDataSource([])
 
-        input = Input('test', 'mock', data_source)
+        input = Input("test", "mock", data_source)
 
         self.assertTrue(input.data is None)
         self.assertTrue(input.group is None)
-        self.assertEqual(input.data_format, 'mock')
+        self.assertEqual(input.data_format, "mock")
         self.assertEqual(input.data_index, -1)
         self.assertEqual(input.data_index_end, -1)
         self.assertTrue(input.data_same_as_previous)
         self.assertEqual(input.data_source, data_source)
-        self.assertEqual(input.name, 'test')
+        self.assertEqual(input.name, "test")
         self.assertEqual(input.nb_data_blocks_read, 0)
 
-
     def test_no_more_data(self):
         data_source = MockDataSource([])
 
-        input = Input('test', 'mock', data_source)
+        input = Input("test", "mock", data_source)
 
         self.assertFalse(input.hasMoreData())
 
-
     def test_has_more_data(self):
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
+        data_source = MockDataSource([(dataformat.type(value=10), 0, 0)])
 
-        input = Input('test', 'mock', data_source)
+        input = Input("test", "mock", data_source)
 
         self.assertTrue(input.hasMoreData())
 
-
     def test_retrieve_one_data_unit(self):
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source = MockDataSource([ (dataformat.type(value=10), 0, 0),
-                                       (dataformat.type(value=20), 1, 1) ])
+        data_source = MockDataSource(
+            [(dataformat.type(value=10), 0, 0), (dataformat.type(value=20), 1, 1)]
+        )
 
-        input = Input('test', 'mock', data_source)
+        input = Input("test", "mock", data_source)
 
         group.add(input)
 
@@ -116,14 +109,13 @@ class InputTest(unittest.TestCase):
         self.assertTrue(input.hasDataChanged())
         self.assertTrue(input.isDataUnitDone())
 
-
     def test_retrieve_all_data_units(self):
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input = Input('test', 'mock', data_source)
+        data_source = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input = Input("test", "mock", data_source)
 
         group.add(input)
 
@@ -144,14 +136,13 @@ class InputTest(unittest.TestCase):
         self.assertTrue(input.hasDataChanged())
         self.assertTrue(input.isDataUnitDone())
 
-
     def test_restricted_access(self):
-        group = InputGroup('channel1', restricted_access=True)
+        group = InputGroup("channel1", restricted_access=True)
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input = Input('test', 'mock', data_source)
+        data_source = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input = Input("test", "mock", data_source)
 
         group.add(input)
 
@@ -163,46 +154,43 @@ class InputTest(unittest.TestCase):
             input.next()
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class RestrictedInputGroupTest(unittest.TestCase):
-
     def test_creation(self):
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         self.assertTrue(group.restricted_access)
         self.assertTrue(group.synchronization_listener is None)
-        self.assertEqual(group.channel, 'channel1')
+        self.assertEqual(group.channel, "channel1")
         self.assertEqual(len(group), 0)
         self.assertEqual(group.data_index, -1)
         self.assertEqual(group.data_index_end, -1)
         self.assertEqual(group.first_data_index, -1)
         self.assertEqual(group.last_data_index, -1)
 
-
     def test_add_one_input(self):
         data_source = MockDataSource([])
 
-        input = Input('input1', 'mock', data_source)
+        input = Input("input1", "mock", data_source)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         group.add(input)
 
         self.assertEqual(input.group, group)
         self.assertEqual(len(group), 1)
-        self.assertEqual(group['input1'], input)
-
+        self.assertEqual(group["input1"], input)
 
     def test_add_two_inputs(self):
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         group.add(input1)
         group.add(input2)
@@ -210,75 +198,71 @@ class RestrictedInputGroupTest(unittest.TestCase):
         self.assertEqual(input1.group, group)
         self.assertEqual(input2.group, group)
         self.assertEqual(len(group), 2)
-        self.assertEqual(group['input1'], input1)
-        self.assertEqual(group['input2'], input2)
-
+        self.assertEqual(group["input1"], input1)
+        self.assertEqual(group["input2"], input2)
 
     def test_no_more_data(self):
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         group.add(input1)
         group.add(input2)
 
         self.assertFalse(group.hasMoreData())
 
-
     def test_has_more_data(self):
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source1 = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input1 = Input('input1', 'mock', data_source1)
+        data_source1 = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input1 = Input("input1", "mock", data_source1)
 
-        data_source2 = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input2 = Input('input2', 'mock', data_source2)
+        data_source2 = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         group.add(input1)
         group.add(input2)
 
         self.assertTrue(group.hasMoreData())
 
-
     def test_restricted_access(self):
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
         with self.assertRaises(RuntimeError):
             group.next()
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class InputGroupTest(unittest.TestCase):
-
     def test_creation(self):
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         self.assertFalse(group.restricted_access)
         self.assertTrue(group.synchronization_listener is None)
-        self.assertEqual(group.channel, 'channel1')
+        self.assertEqual(group.channel, "channel1")
         self.assertEqual(len(group), 0)
         self.assertEqual(group.data_index, -1)
         self.assertEqual(group.data_index_end, -1)
         self.assertEqual(group.first_data_index, -1)
         self.assertEqual(group.last_data_index, -1)
 
-
     def test_creation_with_listener(self):
         listener = SynchronizationListener()
 
-        group = InputGroup('channel1', synchronization_listener=listener,
-                           restricted_access=False)
+        group = InputGroup(
+            "channel1", synchronization_listener=listener, restricted_access=False
+        )
 
         self.assertFalse(group.restricted_access)
         self.assertEqual(group.synchronization_listener, listener)
-        self.assertEqual(group.channel, 'channel1')
+        self.assertEqual(group.channel, "channel1")
         self.assertEqual(len(group), 0)
         self.assertEqual(group.data_index, -1)
         self.assertEqual(group.data_index_end, -1)
@@ -288,29 +272,27 @@ class InputGroupTest(unittest.TestCase):
         self.assertEqual(listener.data_index_start, -1)
         self.assertEqual(listener.data_index_end, -1)
 
-
     def test_add_one_input(self):
         data_source = MockDataSource([])
 
-        input = Input('input1', 'mock', data_source)
+        input = Input("input1", "mock", data_source)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input)
 
         self.assertEqual(input.group, group)
         self.assertEqual(len(group), 1)
-        self.assertEqual(group['input1'], input)
-
+        self.assertEqual(group["input1"], input)
 
     def test_add_two_inputs(self):
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
@@ -318,58 +300,58 @@ class InputGroupTest(unittest.TestCase):
         self.assertEqual(input1.group, group)
         self.assertEqual(input2.group, group)
         self.assertEqual(len(group), 2)
-        self.assertEqual(group['input1'], input1)
-        self.assertEqual(group['input2'], input2)
-
+        self.assertEqual(group["input1"], input1)
+        self.assertEqual(group["input2"], input2)
 
     def test_no_more_data(self):
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
 
         self.assertFalse(group.hasMoreData())
 
-
     def test_has_more_data(self):
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        data_source1 = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input1 = Input('input1', 'mock', data_source1)
+        data_source1 = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input1 = Input("input1", "mock", data_source1)
 
-        data_source2 = MockDataSource([ (dataformat.type(value=10), 0, 0) ])
-        input2 = Input('input2', 'mock', data_source2)
+        data_source2 = MockDataSource([(dataformat.type(value=10), 0, 0)])
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
 
         self.assertTrue(group.hasMoreData())
 
-
     def test_retrieve_one_input_iteration(self):
-        indices = [ (0, 0), (1, 1), (2, 3), (4, 4), (5, 5) ]
+        indices = [(0, 0), (1, 1), (2, 3), (4, 4), (5, 5)]
 
         expected_hasMoreData = [True, True, True, True, False]
         expected_isDataUnitDone = [True, True, True, True, True]
         expected_hasDataChanged = [True, True, True, True, True]
 
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
-
-        data_source = MockDataSource([ (dataformat.type(value=x), indices[x][0], indices[x][1] )
-                                        for x in range(0, len(indices)) ])
+        data_source = MockDataSource(
+            [
+                (dataformat.type(value=x), indices[x][0], indices[x][1])
+                for x in range(0, len(indices))
+            ]
+        )
 
-        input = Input('input', 'mock', data_source)
+        input = Input("input", "mock", data_source)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input)
 
@@ -400,33 +382,43 @@ class InputGroupTest(unittest.TestCase):
             self.assertEqual(input.isDataUnitDone(), expected_isDataUnitDone[i])
             self.assertEqual(input.hasDataChanged(), expected_hasDataChanged[i])
 
-
     def test_retrieve_three_inputs_iteration__same_frequency(self):
-        indices = [ (0, 0), (1, 1), (2, 2), (3, 3), (4, 4) ]
+        indices = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
 
         expected_hasMoreData = [True, True, True, True, False]
         expected_isDataUnitDone = [True, True, True, True, True]
         expected_hasDataChanged = [True, True, True, True, True]
 
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
-
-        data_source1 = MockDataSource([ (dataformat.type(value=x), indices[x][0], indices[x][1] )
-                                        for x in range(0, len(indices)) ])
+        data_source1 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices[x][0], indices[x][1])
+                for x in range(0, len(indices))
+            ]
+        )
 
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
-        data_source2 = MockDataSource([ (dataformat.type(value=x + 10), indices[x][0], indices[x][1] )
-                                        for x in range(0, len(indices)) ])
+        data_source2 = MockDataSource(
+            [
+                (dataformat.type(value=x + 10), indices[x][0], indices[x][1])
+                for x in range(0, len(indices))
+            ]
+        )
 
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        data_source3 = MockDataSource([ (dataformat.type(value=x + 20), indices[x][0], indices[x][1] )
-                                        for x in range(0, len(indices)) ])
+        data_source3 = MockDataSource(
+            [
+                (dataformat.type(value=x + 20), indices[x][0], indices[x][1])
+                for x in range(0, len(indices))
+            ]
+        )
 
-        input3 = Input('input3', 'mock', data_source3)
+        input3 = Input("input3", "mock", data_source3)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
@@ -489,11 +481,10 @@ class InputGroupTest(unittest.TestCase):
             self.assertEqual(input2.hasDataChanged(), expected_hasDataChanged[i])
             self.assertEqual(input3.hasDataChanged(), expected_hasDataChanged[i])
 
-
     def test_retrieve_three_inputs_iteration__different_frequencies(self):
-        indices1 = [ (0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5) ]
-        indices2 = [ (0, 1), (2, 3), (4, 5) ]
-        indices3 = [ (0, 5) ]
+        indices1 = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]
+        indices2 = [(0, 1), (2, 3), (4, 5)]
+        indices3 = [(0, 5)]
 
         expected_hasMoreData_1 = [True, True, True, True, True, False]
         expected_hasMoreData_2 = [True, True, True, True, False, False]
@@ -507,25 +498,36 @@ class InputGroupTest(unittest.TestCase):
         expected_hasDataChanged_2 = [True, False, True, False, True, False]
         expected_hasDataChanged_3 = [True, False, False, False, False, False]
 
+        dataformat = DataFormat(prefix, "user/single_integer/1")
 
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
-
-        data_source1 = MockDataSource([ (dataformat.type(value=x), indices1[x][0], indices1[x][1] )
-                                        for x in range(0, len(indices1)) ])
+        data_source1 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices1[x][0], indices1[x][1])
+                for x in range(0, len(indices1))
+            ]
+        )
 
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
-        data_source2 = MockDataSource([ (dataformat.type(value=x + 10), indices2[x][0], indices2[x][1] )
-                                        for x in range(0, len(indices2)) ])
+        data_source2 = MockDataSource(
+            [
+                (dataformat.type(value=x + 10), indices2[x][0], indices2[x][1])
+                for x in range(0, len(indices2))
+            ]
+        )
 
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        data_source3 = MockDataSource([ (dataformat.type(value=x + 20), indices3[x][0], indices3[x][1] )
-                                        for x in range(0, len(indices3)) ])
+        data_source3 = MockDataSource(
+            [
+                (dataformat.type(value=x + 20), indices3[x][0], indices3[x][1])
+                for x in range(0, len(indices3))
+            ]
+        )
 
-        input3 = Input('input3', 'mock', data_source3)
+        input3 = Input("input3", "mock", data_source3)
 
-        group = InputGroup('channel1', restricted_access=False)
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
@@ -586,42 +588,102 @@ class InputGroupTest(unittest.TestCase):
             self.assertEqual(input2.hasDataChanged(), expected_hasDataChanged_2[i])
             self.assertEqual(input3.hasDataChanged(), expected_hasDataChanged_3[i])
 
-
     def test_retrieve_two_inputs_iteration__desynchronized_frequencies(self):
-        indices1 = [ (0, 2), (3, 5), (6, 8), (9, 11), (12, 14), (15, 17) ]
-        indices2 = [ (0, 4), (5, 10), (11, 17) ]
+        indices1 = [(0, 2), (3, 5), (6, 8), (9, 11), (12, 14), (15, 17)]
+        indices2 = [(0, 4), (5, 10), (11, 17)]
 
         expected_values_1 = [0, 1, 1, 2, 3, 3, 4, 5]
         expected_values_2 = [0, 0, 1, 1, 1, 2, 2, 2]
 
-        expected_group_indices1 = [(0, 4), (0, 5), (3, 10), (5, 10), (5, 11), (9, 17),  (11, 17), (11, 17)]
-        expected_group_indices2 = [(0, 2), (3, 4), (5, 5),  (6, 8),  (9, 10), (11, 11), (12, 14), (15, 17)]
-        expected_indices_1 = [(0, 2), (3, 5), (3, 5),  (6, 8),  (9, 11), (9, 11),  (12, 14), (15, 17)]
-        expected_indices_2 = [(0, 4), (0, 4), (5, 10), (5, 10), (5, 10), (11, 17), (11, 17), (11, 17)]
-
-        expected_hasMoreData_1 = [True, True, True, True, True,  True,  True,  False]
+        expected_group_indices1 = [
+            (0, 4),
+            (0, 5),
+            (3, 10),
+            (5, 10),
+            (5, 11),
+            (9, 17),
+            (11, 17),
+            (11, 17),
+        ]
+        expected_group_indices2 = [
+            (0, 2),
+            (3, 4),
+            (5, 5),
+            (6, 8),
+            (9, 10),
+            (11, 11),
+            (12, 14),
+            (15, 17),
+        ]
+        expected_indices_1 = [
+            (0, 2),
+            (3, 5),
+            (3, 5),
+            (6, 8),
+            (9, 11),
+            (9, 11),
+            (12, 14),
+            (15, 17),
+        ]
+        expected_indices_2 = [
+            (0, 4),
+            (0, 4),
+            (5, 10),
+            (5, 10),
+            (5, 10),
+            (11, 17),
+            (11, 17),
+            (11, 17),
+        ]
+
+        expected_hasMoreData_1 = [True, True, True, True, True, True, True, False]
         expected_hasMoreData_2 = [True, True, True, True, True, False, False, False]
 
-        expected_isDataUnitDone_1 = [True,  False, True,  True,  False, True,  True,  True]
-        expected_isDataUnitDone_2 = [False, True,  False, False, True,  False, False, True]
-
-        expected_hasDataChanged_1 = [True, True,  False, True,  True,  False, True,  True]
-        expected_hasDataChanged_2 = [True, False, True,  False, False, True,  False, False]
-
-
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
-
-        data_source1 = MockDataSource([ (dataformat.type(value=x), indices1[x][0], indices1[x][1] )
-                                        for x in range(0, len(indices1)) ])
-
-        input1 = Input('input1', 'mock', data_source1)
-
-        data_source2 = MockDataSource([ (dataformat.type(value=x), indices2[x][0], indices2[x][1] )
-                                        for x in range(0, len(indices2)) ])
-
-        input2 = Input('input2', 'mock', data_source2)
-
-        group = InputGroup('channel1', restricted_access=False)
+        expected_isDataUnitDone_1 = [True, False, True, True, False, True, True, True]
+        expected_isDataUnitDone_2 = [
+            False,
+            True,
+            False,
+            False,
+            True,
+            False,
+            False,
+            True,
+        ]
+
+        expected_hasDataChanged_1 = [True, True, False, True, True, False, True, True]
+        expected_hasDataChanged_2 = [
+            True,
+            False,
+            True,
+            False,
+            False,
+            True,
+            False,
+            False,
+        ]
+
+        dataformat = DataFormat(prefix, "user/single_integer/1")
+
+        data_source1 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices1[x][0], indices1[x][1])
+                for x in range(0, len(indices1))
+            ]
+        )
+
+        input1 = Input("input1", "mock", data_source1)
+
+        data_source2 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices2[x][0], indices2[x][1])
+                for x in range(0, len(indices2))
+            ]
+        )
+
+        input2 = Input("input2", "mock", data_source2)
+
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
@@ -665,37 +727,61 @@ class InputGroupTest(unittest.TestCase):
             self.assertEqual(input1.hasDataChanged(), expected_hasDataChanged_1[i])
             self.assertEqual(input2.hasDataChanged(), expected_hasDataChanged_2[i])
 
-
     def test_retrieve_two_inputs_iteration__different_frequencies(self):
-        indices1 = [ (0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7) ]
-        indices2 = [ (0, 3), (4, 7) ]
+        indices1 = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7)]
+        indices2 = [(0, 3), (4, 7)]
 
         expected_values_1 = [0, 1, 2, 3, 4, 5, 6, 7]
         expected_values_2 = [0, 0, 0, 0, 1, 1, 1, 1]
 
-        expected_hasMoreData_1 = [True, True, True, True, True,  True,  True,  False]
+        expected_hasMoreData_1 = [True, True, True, True, True, True, True, False]
         expected_hasMoreData_2 = [True, True, True, True, False, False, False, False]
 
-        expected_isDataUnitDone_1 = [True,  True,  True,  True, True,  True,  True,  True]
-        expected_isDataUnitDone_2 = [False, False, False, True, False, False, False, True]
-
-        expected_hasDataChanged_1 = [True, True,  True,   True,  True, True,   True,  True]
-        expected_hasDataChanged_2 = [True, False, False,  False, True, False,  False, False]
-
-
-        dataformat = DataFormat(prefix, 'user/single_integer/1')
-
-        data_source1 = MockDataSource([ (dataformat.type(value=x), indices1[x][0], indices1[x][1] )
-                                        for x in range(0, len(indices1)) ])
-
-        input1 = Input('input1', 'mock', data_source1)
-
-        data_source2 = MockDataSource([ (dataformat.type(value=x), indices2[x][0], indices2[x][1] )
-                                        for x in range(0, len(indices2)) ])
-
-        input2 = Input('input2', 'mock', data_source2)
-
-        group = InputGroup('channel1', restricted_access=False)
+        expected_isDataUnitDone_1 = [True, True, True, True, True, True, True, True]
+        expected_isDataUnitDone_2 = [
+            False,
+            False,
+            False,
+            True,
+            False,
+            False,
+            False,
+            True,
+        ]
+
+        expected_hasDataChanged_1 = [True, True, True, True, True, True, True, True]
+        expected_hasDataChanged_2 = [
+            True,
+            False,
+            False,
+            False,
+            True,
+            False,
+            False,
+            False,
+        ]
+
+        dataformat = DataFormat(prefix, "user/single_integer/1")
+
+        data_source1 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices1[x][0], indices1[x][1])
+                for x in range(0, len(indices1))
+            ]
+        )
+
+        input1 = Input("input1", "mock", data_source1)
+
+        data_source2 = MockDataSource(
+            [
+                (dataformat.type(value=x), indices2[x][0], indices2[x][1])
+                for x in range(0, len(indices2))
+            ]
+        )
+
+        input2 = Input("input2", "mock", data_source2)
+
+        group = InputGroup("channel1", restricted_access=False)
 
         group.add(input1)
         group.add(input2)
@@ -740,11 +826,10 @@ class InputGroupTest(unittest.TestCase):
             self.assertEqual(input2.hasDataChanged(), expected_hasDataChanged_2[i])
 
 
-#----------------------------------------------------------
+# ----------------------------------------------------------
 
 
 class InputListTest(unittest.TestCase):
-
     def test_creation(self):
         inputs = InputList()
 
@@ -753,26 +838,23 @@ class InputListTest(unittest.TestCase):
         self.assertEqual(len(inputs), 0)
         self.assertFalse(inputs.hasMoreData())
 
-
     def test_list_unkown_input_retrieval(self):
         inputs = InputList()
 
-        self.assertTrue(inputs['unknown'] is None)
-
+        self.assertTrue(inputs["unknown"] is None)
 
     def test_list_group_of_unknown_input_retrieval(self):
         inputs = InputList()
 
-        self.assertTrue(inputs.groupOf('unknown') is None)
-
+        self.assertTrue(inputs.groupOf("unknown") is None)
 
     def test_list_one_group_one_input(self):
         inputs = InputList()
 
         data_source = MockDataSource([])
-        input = Input('input1', 'mock', data_source)
+        input = Input("input1", "mock", data_source)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
         group.add(input)
 
         inputs.add(group)
@@ -781,22 +863,21 @@ class InputListTest(unittest.TestCase):
         self.assertEqual(inputs.nbGroups(), 1)
         self.assertEqual(len(inputs), 1)
 
-        self.assertEqual(inputs['input1'], input)
+        self.assertEqual(inputs["input1"], input)
         self.assertEqual(inputs[0], input)
 
-        self.assertEqual(inputs.groupOf('input1'), group)
-
+        self.assertEqual(inputs.groupOf("input1"), group)
 
     def test_list_one_group_two_inputs(self):
         inputs = InputList()
 
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
 
-        group = InputGroup('channel1')
+        group = InputGroup("channel1")
 
         group.add(input1)
         group.add(input2)
@@ -807,35 +888,34 @@ class InputListTest(unittest.TestCase):
         self.assertEqual(inputs.nbGroups(), 1)
         self.assertEqual(len(inputs), 2)
 
-        self.assertEqual(inputs['input1'], input1)
+        self.assertEqual(inputs["input1"], input1)
         self.assertEqual(inputs[0], input1)
 
-        self.assertEqual(inputs['input2'], input2)
+        self.assertEqual(inputs["input2"], input2)
         self.assertEqual(inputs[1], input2)
 
-        self.assertEqual(inputs.groupOf('input1'), group)
-        self.assertEqual(inputs.groupOf('input2'), group)
-
+        self.assertEqual(inputs.groupOf("input1"), group)
+        self.assertEqual(inputs.groupOf("input2"), group)
 
     def test_list_two_groups_three_inputs(self):
         inputs = InputList()
 
-        group1 = InputGroup('channel1')
+        group1 = InputGroup("channel1")
 
         data_source1 = MockDataSource([])
-        input1 = Input('input1', 'mock', data_source1)
+        input1 = Input("input1", "mock", data_source1)
         group1.add(input1)
 
         data_source2 = MockDataSource([])
-        input2 = Input('input2', 'mock', data_source2)
+        input2 = Input("input2", "mock", data_source2)
         group1.add(input2)
 
         inputs.add(group1)
 
-        group2 = InputGroup('channel2', restricted_access=False)
+        group2 = InputGroup("channel2", restricted_access=False)
 
         data_source3 = MockDataSource([])
-        input3 = Input('input3', 'mock', data_source3)
+        input3 = Input("input3", "mock", data_source3)
         group2.add(input3)
 
         inputs.add(group2)
@@ -844,18 +924,18 @@ class InputListTest(unittest.TestCase):
         self.assertEqual(inputs.nbGroups(), 2)
         self.assertEqual(len(inputs), 3)
 
-        self.assertEqual(inputs['input1'], input1)
+        self.assertEqual(inputs["input1"], input1)
         self.assertEqual(inputs[0], input1)
 
-        self.assertEqual(inputs['input2'], input2)
+        self.assertEqual(inputs["input2"], input2)
         self.assertEqual(inputs[1], input2)
 
-        self.assertEqual(inputs['input3'], input3)
+        self.assertEqual(inputs["input3"], input3)
         self.assertEqual(inputs[2], input3)
 
-        self.assertEqual(inputs.groupOf('input1'), group1)
-        self.assertEqual(inputs.groupOf('input2'), group1)
-        self.assertEqual(inputs.groupOf('input3'), group2)
+        self.assertEqual(inputs.groupOf("input1"), group1)
+        self.assertEqual(inputs.groupOf("input2"), group1)
+        self.assertEqual(inputs.groupOf("input3"), group2)
 
         counter = 0
         for input in inputs:
diff --git a/beat/backend/python/test/test_loop_executor.py b/beat/backend/python/test/test_loop_executor.py
index f2486178f122b98419568a5a3ba3b8e8e00bc0fe..c48a572e422efd413b6cd589d0205e6aae5107d8 100644
--- a/beat/backend/python/test/test_loop_executor.py
+++ b/beat/backend/python/test/test_loop_executor.py
@@ -37,31 +37,28 @@
 # Tests for experiment execution
 
 import os
-import unittest
-import zmq
-import tempfile
 import shutil
-import simplejson
-import numpy as np
+import tempfile
+import unittest
 
 from copy import deepcopy
 
-from ..execution import AlgorithmExecutor
-from ..execution import LoopExecutor
-from ..execution import MessageHandler
-from ..execution import LoopMessageHandler
-from ..exceptions import RemoteException
+import numpy as np
+import simplejson
+import zmq
 
 from ..algorithm import Algorithm
-from ..dataformat import DataFormat
 from ..data import CachedDataSink
 from ..data import CachedDataSource
-
+from ..dataformat import DataFormat
+from ..exceptions import RemoteException
+from ..execution import AlgorithmExecutor
+from ..execution import LoopExecutor
+from ..execution import LoopMessageHandler
+from ..execution import MessageHandler
 from ..helpers import convert_experiment_configuration_to_container
-
 from . import prefix
 
-
 # ----------------------------------------------------------
 
 
diff --git a/beat/backend/python/test/test_message_handler.py b/beat/backend/python/test/test_message_handler.py
index 5930219121862de0ac33fd691aa2aa5cb0df0a34..5f1c7b12ff48d2c335957e6c44be969c9219a5cb 100644
--- a/beat/backend/python/test/test_message_handler.py
+++ b/beat/backend/python/test/test_message_handler.py
@@ -34,24 +34,23 @@
 ###################################################################################
 
 
-import unittest
-import zmq
-import os
 import glob
+import os
 import tempfile
+import unittest
+
 import numpy as np
+import zmq
 
-from ..execution import MessageHandler
-from ..dataformat import DataFormat
-from ..data import RemoteException
+from ..data import CachedDataSink
 from ..data import CachedDataSource
 from ..data import RemoteDataSource
-from ..data import CachedDataSink
+from ..data import RemoteException
 from ..data_loaders import DataLoader
-
-from .mocks import CrashingDataSource
+from ..dataformat import DataFormat
+from ..execution import MessageHandler
 from . import prefix
-
+from .mocks import CrashingDataSource
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_outputs.py b/beat/backend/python/test/test_outputs.py
index 748e03d1212dc325c9d4f1fbb9333f9960eafc60..7e6120820f1a80edc499cddf08d3ef1dda8c5413 100644
--- a/beat/backend/python/test/test_outputs.py
+++ b/beat/backend/python/test/test_outputs.py
@@ -34,18 +34,18 @@
 ###################################################################################
 
 
-import six
-import numpy
 import nose.tools
+import numpy
+import six
 
-from .mocks import MockDataSink
-
-from ..outputs import Output, OutputList, SynchronizationListener
-from ..dataformat import DataFormat
 from beat.backend.python.baseformat import baseformat
 
+from ..dataformat import DataFormat
+from ..outputs import Output
+from ..outputs import OutputList
+from ..outputs import SynchronizationListener
 from . import prefix
-
+from .mocks import MockDataSink
 
 # ----------------------------------------------------------
 
diff --git a/beat/backend/python/test/test_protocoltemplate.py b/beat/backend/python/test/test_protocoltemplate.py
index b6162a0b6cd451ff7703f9acb338fdeae0b1dc58..cf5454f7af416f3b6f7b4de1e1c5f89e5dcb6d10 100644
--- a/beat/backend/python/test/test_protocoltemplate.py
+++ b/beat/backend/python/test/test_protocoltemplate.py
@@ -35,11 +35,10 @@
 
 
 import nose.tools
-from ..protocoltemplate import ProtocolTemplate
 
+from ..protocoltemplate import ProtocolTemplate
 from . import prefix
 
-
 # ----------------------------------------------------------