diff --git a/tcp_tests/managers/saltmanager.py b/tcp_tests/managers/saltmanager.py
index 431ef7b..0b4b698 100644
--- a/tcp_tests/managers/saltmanager.py
+++ b/tcp_tests/managers/saltmanager.py
@@ -265,8 +265,8 @@
 
         for salt_node in salt_nodes:
             nodes = [n for n in self.__config.underlay.ssh
-                     if salt_node['host'] == n['host']
-                     and salt_node['address_pool'] == n['address_pool']]
+                     if salt_node['host'] == n['host'] and
+                     salt_node['address_pool'] == n['address_pool']]
             if nodes:
                 # Assume that there can be only one node with such IP address
                 # Just update minion_id for this node
diff --git a/tcp_tests/report.py b/tcp_tests/report.py
index 1bc35a3..a205424 100644
--- a/tcp_tests/report.py
+++ b/tcp_tests/report.py
@@ -451,8 +451,8 @@
 
 
 def update_report(t_client, plan_name, tests_table):
-    LOG.info("Update report table into plan - {}".format(plan_name)
-             + "\n===\nList tests to udate:")
+    LOG.info("Update report table into plan - {}".format(plan_name) +
+             "\n===\nList tests to udate:")
     plan = t_client.plan(plan_name)
     if plan:
         for r_test, run in tests_table:
diff --git a/tcp_tests/tests/component/conftest.py b/tcp_tests/tests/component/conftest.py
index f33b1b4..86ea8f7 100644
--- a/tcp_tests/tests/component/conftest.py
+++ b/tcp_tests/tests/component/conftest.py
@@ -26,8 +26,7 @@
 from tcp_tests.fixtures.stacklight_fixtures import *  # noqa
 from tcp_tests.fixtures.k8s_fixtures import *  # noqa
 from tcp_tests.fixtures.drivetrain_fixtures import *  # noqa
-from tcp_tests.fixtures.runtest_fixtures import * # noqa
-
+from tcp_tests.fixtures.runtest_fixtures import *  # noqa
 
 __all__ = sorted([  # sort for documentation
     # common_fixtures
diff --git a/tcp_tests/tests/system/conftest.py b/tcp_tests/tests/system/conftest.py
index 8badb8f..0f8fc09 100644
--- a/tcp_tests/tests/system/conftest.py
+++ b/tcp_tests/tests/system/conftest.py
@@ -27,9 +27,8 @@
 from tcp_tests.fixtures.k8s_fixtures import *  # noqa
 from tcp_tests.fixtures.drivetrain_fixtures import *  # noqa
 from tcp_tests.fixtures.day1_fixtures import *  # noqa
-from tcp_tests.fixtures.runtest_fixtures import * # noqa
-from tcp_tests.fixtures.reclass_fixtures import * # noqa
-
+from tcp_tests.fixtures.runtest_fixtures import *  # noqa
+from tcp_tests.fixtures.reclass_fixtures import *  # noqa
 
 __all__ = sorted([  # sort for documentation
     # common_fixtures
diff --git a/tcp_tests/tests/system/test_ceph_luminous_upgrade.py b/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
index 8b37ad8..e767d70 100644
--- a/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
+++ b/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
@@ -11,8 +11,8 @@
 
 def wa_cve_2021_20288_global_id_reclaim(reclass_actions, salt_actions):
     if reclass_actions.check_existence(
-            'parameters.ceph.common.config.mon.'
-            + 'auth_allow_insecure_global_id_reclaim'):
+            'parameters.ceph.common.config.mon.' +
+            'auth_allow_insecure_global_id_reclaim'):
         LOG.info("Skipping WA ceph set auth_allow_insecure_global_id_reclaim")
         return
 
@@ -21,8 +21,8 @@
 
     context_file = "cluster/*/ceph/common.yml"
     reclass_actions.add_bool_key(
-        'parameters.ceph.common.config.mon.'
-        + 'auth_allow_insecure_global_id_reclaim', "False", context_file)
+        'parameters.ceph.common.config.mon.' +
+        'auth_allow_insecure_global_id_reclaim', "False", context_file)
     salt_actions.cmd_run("cfg01*",
                          "cd /srv/salt/reclass; git add -u && "
                          "git commit --allow-empty "
diff --git a/tcp_tests/tests/system/test_cvp_pipelines.py b/tcp_tests/tests/system/test_cvp_pipelines.py
index 44cf396..ca9c692 100644
--- a/tcp_tests/tests/system/test_cvp_pipelines.py
+++ b/tcp_tests/tests/system/test_cvp_pipelines.py
@@ -253,8 +253,8 @@
         # Download XML report
         show_step(4)
         destination_name = os.path.join(settings.LOGS_DIR,
-                                        "tmp/" + job_name + "_"
-                                        + str(build_number) + "_results.xml")
+                                        "tmp/" + job_name + "_" +
+                                        str(build_number) + "_results.xml")
         # Do not fail the test case when the job is failed, but
         # artifact with the XML report is present in the job.
         try:
@@ -264,16 +264,16 @@
                 password=jenkins_pass,
                 job_name=job_name,
                 build_number=build_number,
-                artifact_path='validation_artifacts/' + job_name
-                              + '_report.xml',
+                artifact_path='validation_artifacts/' + job_name +
+                              '_report.xml',
                 destination_name=destination_name)
         except jenkins.NotFoundException:
             raise jenkins.NotFoundException("{0}\n{1}".format(
                 description, '\n'.join(stages)))
 
         destination_name = os.path.join(settings.LOGS_DIR,
-                                        "tmp/" + job_name + "_"
-                                        + str(build_number) + "_full.log")
+                                        "tmp/" + job_name + "_" +
+                                        str(build_number) + "_full.log")
 
         try:
             get_jenkins_job_artifact.download_artifact(
@@ -431,8 +431,8 @@
         # Download XML report
         show_step(4)
         destination_name = os.path.join(settings.LOGS_DIR,
-                                        "tmp/" + job_name + "_"
-                                        + str(build_number) + "_results.xml")
+                                        "tmp/" + job_name + "_" +
+                                        str(build_number) + "_results.xml")
         # Do not fail the test case when the job is failed, but
         # artifact with the XML report is present in the job.
         try:
diff --git a/tcp_tests/tests/system/test_mcp_update.py b/tcp_tests/tests/system/test_mcp_update.py
index 747ceda..fba6cb6 100644
--- a/tcp_tests/tests/system/test_mcp_update.py
+++ b/tcp_tests/tests/system/test_mcp_update.py
@@ -136,16 +136,16 @@
     tgt = "I@ceph:common"
     context_file = "cluster/*/ceph/common.yml"
     if not reclass_actions.check_existence(
-            'parameters.ceph.common.config.mon.'
-            + 'auth_allow_insecure_global_id_reclaim'):
+            'parameters.ceph.common.config.mon.' +
+            'auth_allow_insecure_global_id_reclaim'):
         if salt_actions.get_single_pillar(
                 "I@ceph:mgr and *01.*",
                 "_param.ceph_version") == 'luminous':
             LOG.info('Skip reclaim set')
             return
         reclass_actions.add_bool_key(
-            'parameters.ceph.common.config.mon.'
-            + 'auth_allow_insecure_global_id_reclaim', "False", context_file)
+            'parameters.ceph.common.config.mon.' +
+            'auth_allow_insecure_global_id_reclaim', "False", context_file)
         salt_actions.run_state(tgt, "state.apply", "ceph.common")
         salt_actions.cmd_run(tgt, "systemctl restart ceph-mon.target")
     else:
diff --git a/tcp_tests/tests/system/test_offline.py b/tcp_tests/tests/system/test_offline.py
index 7ea9c11..34c729a 100644
--- a/tcp_tests/tests/system/test_offline.py
+++ b/tcp_tests/tests/system/test_offline.py
@@ -56,7 +56,7 @@
             cmd='maas logout mirantis && '
             'maas login mirantis '
             'http://localhost:5240/MAAS/api/2.0/ '
-            'FTvqwe7ybBp68gPar2:5mcctTAXVL8mns4ef4:zrA9LZwu2tMc8BAZpsPUfwWwTyQnAtDN') # noqa
+            'FTvqwe7ybBp68gPar2:5mcctTAXVL8mns4ef4:zrA9LZwu2tMc8BAZpsPUfwWwTyQnAtDN')  # noqa
 
         underlay.check_call(
             node_name=cfg_node,
@@ -74,7 +74,7 @@
                 net=admin_net))
         underlay.check_call(node_name=cfg_node, verbose=verbose,
             cmd="maas mirantis vlan update "
-            "$(maas mirantis subnets read | jq '.[] | select(.name==\"{net}\") | .vlan.fabric_id') " # noqa
+            "$(maas mirantis subnets read | jq '.[] | select(.name==\"{net}\") | .vlan.fabric_id') "  # noqa
             "0 dhcp_on=True primary_rack='cfg01'".format(net=admin_net))
 
         underlay.check_call(
diff --git a/tcp_tests/utils/get_jenkins_job_artifact.py b/tcp_tests/utils/get_jenkins_job_artifact.py
index 9e2295c..c9c063b 100755
--- a/tcp_tests/utils/get_jenkins_job_artifact.py
+++ b/tcp_tests/utils/get_jenkins_job_artifact.py
@@ -96,8 +96,8 @@
     parser = load_params()
     opts = parser.parse_args()
 
-    if (opts.host is None or opts.job_name is None
-            or opts.artifact_path is None or opts.destination_name is None):
+    if (opts.host is None or opts.job_name is None or
+            opts.artifact_path is None or opts.destination_name is None):
         print("JENKINS_URL, job_name and destination_name are required!")
         parser.print_help()
         return 10
