diff --git a/tcp_tests/tests/system/conftest.py b/tcp_tests/tests/system/conftest.py
index 4f904ed..d943a22 100644
--- a/tcp_tests/tests/system/conftest.py
+++ b/tcp_tests/tests/system/conftest.py
@@ -12,7 +12,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-#from tcp_tests.fixtures import *
 from tcp_tests.fixtures.common_fixtures import *
 from tcp_tests.fixtures.config_fixtures import *
 from tcp_tests.fixtures.underlay_fixtures import *
@@ -36,7 +35,7 @@
     'snapshot',
     # config_fixtures
     'config',
-    #underlay_fixtures
+    # underlay_fixtures
     'hardware',
     'underlay',
     # rally_fixtures
diff --git a/tcp_tests/tests/system/test_calico.py b/tcp_tests/tests/system/test_calico.py
index fd99c8d..6f28327 100644
--- a/tcp_tests/tests/system/test_calico.py
+++ b/tcp_tests/tests/system/test_calico.py
@@ -141,7 +141,7 @@
         pod_ping_cmd = 'sleep 3 && ping -q -c 1 -w 3 {0}'.format(target_pod_ip)
         underlay.sudo_check_call(cmd=pod_ping_cmd, node_name=first_node_name)
         LOG.debug('Local route to pod IP {0} on node {1} is '
-                     'recovered'.format(target_pod_ip, first_node.name))
+                  'recovered'.format(target_pod_ip, first_node.name))
 
         # STEP #7
         show_step(7)
@@ -150,7 +150,7 @@
     @pytest.mark.fail_snapshot
     # FIXME(apanchenko): uncomment as soon as the following bug is fixed
     # FIXME(apanchenko): https://mirantis.jira.com/browse/PROD-12532
-    #@pytest.mark.calico_ci
+    # @pytest.mark.calico_ci
     def test_calico_network_policies(self, show_step, config, underlay,
                                      k8s_deployed):
         """Test for deploying k8s environment with Calico and check
diff --git a/tcp_tests/tests/system/test_install_k8s.py b/tcp_tests/tests/system/test_install_k8s.py
index fa8f3fc..fa55d1b 100644
--- a/tcp_tests/tests/system/test_install_k8s.py
+++ b/tcp_tests/tests/system/test_install_k8s.py
@@ -59,10 +59,12 @@
         netchecker.wait_check_network(k8sclient, namespace='netchecker',
                                       netchecker_pod_port=netchecker_port)
         show_step(9)
-        res = netchecker.get_metric(k8sclient, netchecker_pod_port=netchecker_port,
+        res = netchecker.get_metric(k8sclient,
+                                    netchecker_pod_port=netchecker_port,
                                     namespace='netchecker')
 
-        assert res.status_code == 200, 'Unexpected response code {}'.format(res)
+        assert res.status_code == 200, 'Unexpected response code {}'\
+            .format(res)
         metrics = ['ncagent_error_count_total', 'ncagent_http_probe_code',
                    'ncagent_http_probe_connect_time_ms',
                    'ncagent_http_probe_connection_result',
@@ -80,7 +82,8 @@
         prometheus_client = sl_deployed.api
         try:
             current_targets = prometheus_client.get_targets()
-            LOG.debug('Current targets after install {0}'.format(current_targets))
+            LOG.debug('Current targets after install {0}'
+                      .format(current_targets))
         except:
             LOG.warning('Restarting keepalived service on mon nodes...')
             sl_actions._salt.local(tgt='mon*', fun='cmd.run',
@@ -90,15 +93,17 @@
                     sl_actions._salt.local(tgt='mon*',
                                            fun='cmd.run', args='ip a')))
             current_targets = prometheus_client.get_targets()
-            LOG.debug('Current targets after install {0}'.format(current_targets))
+            LOG.debug('Current targets after install {0}'
+                      .format(current_targets))
 
-        #todo (tleontovich) add assertion that k8s targets here
+        # todo (tleontovich) add assertion that k8s targets here
         for metric in metrics:
             res = prometheus_client.get_query(metric)
             for entry in res:
                 assert entry["metric"]["job"] == 'kubernetes-service-endpoints'
             LOG.debug('Metric {} exists'.format(res))
-            # todo (tleontovich) add asserts here and extend the tests with acceptance criteria
+            # todo (tleontovich) add asserts here and extend the tests
+            # with acceptance criteria
         
         if config.k8s.k8s_conformance_run:
             k8s_actions.run_conformance()
diff --git a/tcp_tests/tests/system/test_install_virtlet.py b/tcp_tests/tests/system/test_install_virtlet.py
index 367ed45..0341f11 100644
--- a/tcp_tests/tests/system/test_install_virtlet.py
+++ b/tcp_tests/tests/system/test_install_virtlet.py
@@ -29,7 +29,7 @@
 
     # @pytest.mark.fail_snapshot
     def test_virtlet_install(self, underlay, virtlet_deployed,
-                                     show_step):
+                             show_step):
         """Test for deploying an mcp environment with virtlet
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_opencontrail.py b/tcp_tests/tests/system/test_opencontrail.py
index 542237e..3781f7d 100644
--- a/tcp_tests/tests/system/test_opencontrail.py
+++ b/tcp_tests/tests/system/test_opencontrail.py
@@ -29,7 +29,7 @@
 
     @pytest.mark.fail_snapshot
     def test_opencontrail(self, config, openstack_deployed,
-                                 show_step, opencontrail):
+                          show_step, opencontrail):
         """Runner for Juniper contrail-tests
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_oss_install.py b/tcp_tests/tests/system/test_oss_install.py
index 2624cbd..ec6a6fb 100644
--- a/tcp_tests/tests/system/test_oss_install.py
+++ b/tcp_tests/tests/system/test_oss_install.py
@@ -24,7 +24,8 @@
 
     @pytest.mark.fail_snapshot
     def test_oss_install_default(self, underlay, show_step,
-                                 oss_deployed, openstack_deployed, sl_deployed):
+                                 oss_deployed, openstack_deployed,
+                                 sl_deployed):
         """Test for deploying an OSS environment and check it
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_tcp_install.py b/tcp_tests/tests/system/test_tcp_install.py
index b633867..80bfc71 100644
--- a/tcp_tests/tests/system/test_tcp_install.py
+++ b/tcp_tests/tests/system/test_tcp_install.py
@@ -41,7 +41,7 @@
         LOG.info("*************** DONE **************")
 
     def test_tcp_install_run_rally(self, underlay, openstack_deployed,
-                                 show_step, rally):
+                                   show_step, rally):
         """Test for deploying an tcp environment and check it
 
         Scenario:
@@ -75,7 +75,8 @@
         """
 
         cmd = 'cd /srv/salt/reclass/scripts/; ./bootstrap_all.sh'
-        underlay.check_call(cmd, host=config.salt.salt_master_host, verbose=True)
+        underlay.check_call(cmd, host=config.salt.salt_master_host,
+                            verbose=True)
 
         # prepare rally
         rally.prepare()
diff --git a/tcp_tests/tests/system/test_virtlet_actions.py b/tcp_tests/tests/system/test_virtlet_actions.py
index 1935cff..cf48ca8 100644
--- a/tcp_tests/tests/system/test_virtlet_actions.py
+++ b/tcp_tests/tests/system/test_virtlet_actions.py
@@ -27,7 +27,7 @@
     """Test class for testing Virtlet actions"""
 
     def test_virtlet_create_delete_vm(self, underlay, virtlet_deployed,
-                                     show_step, virtlet_actions):
+                                      show_step, virtlet_actions):
         """Test for deploying an mcp environment with virtlet
 
         Scenario:
@@ -54,7 +54,7 @@
 
         target_cpu = 2  # Cores
         target_memory = 256  # Size in MB
-        target_memory_kb = target_memory*1024
+        target_memory_kb = target_memory * 1024
         target_yaml = 'virtlet/examples/cirros-vm-exp.yaml'
         virtlet_actions.adjust_cirros_resources(cpu=target_cpu,
                                                 memory=target_memory,
