Resolve pylint message R0801

R0801: Similar lines in %s files

Reduced some code duplication and configured the warning only to occur
with 6 similar lines.

Change-Id: I132b1b8eb44c7ff01ee3bc6a1251882b4edcf279
diff --git a/.pylintrc b/.pylintrc
index 12aa73b..bce63fc 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -8,3 +8,6 @@
 indent-string='  '
 indent-after-paren=2
 good-names=i,f
+
+[SIMILARITIES]
+min-similarity-lines=6
diff --git a/tests/container-images/base/test_container_structure_base.py b/tests/container-images/base/test_container_structure_base.py
index 69dec54..d62b356 100755
--- a/tests/container-images/base/test_container_structure_base.py
+++ b/tests/container-images/base/test_container_structure_base.py
@@ -15,22 +15,10 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, base_image):
-  print("Starting base-container...")
-  container_run = docker_client.containers.run(
-    image=base_image.id,
-    command="tail -f /dev/null",
-    detach=True,
-    auto_remove=True
-  )
-
-  def stop_container():
-    print("Stopping base-container...")
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+def container_run(docker_client, container_endless_run_factory, base_image):
+  container_run = container_endless_run_factory(docker_client, base_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
 
 def test_base_contains_git(container_run):
diff --git a/tests/container-images/conftest.py b/tests/container-images/conftest.py
index 0d47f37..69172df 100644
--- a/tests/container-images/conftest.py
+++ b/tests/container-images/conftest.py
@@ -135,3 +135,17 @@
                            gerrit_config, port)
 
   return get_gerrit_container
+
+@pytest.fixture(scope="session")
+def container_endless_run_factory():
+  def get_container(docker_client, image):
+    return docker_client.containers.run(
+      image=image.id,
+      entrypoint="/bin/bash",
+      command=["-c", "tail -f /dev/null"],
+      user="gerrit",
+      detach=True,
+      auto_remove=True
+    )
+
+  return get_container
diff --git a/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py b/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
index 475f355..24f06da 100755
--- a/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
+++ b/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
@@ -17,22 +17,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_base_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_base_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_base_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_base_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 def test_gerrit_base_inherits_from_base(gerrit_base_image):
   contains_tag = False
diff --git a/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py b/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
index 1cbda4a..7271973 100644
--- a/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
+++ b/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
@@ -50,8 +50,7 @@
   return container_run
 
 @pytest.fixture(scope="class")
-def container_run_endless(
-    request, docker_client, gerrit_init_image, tmp_path_factory):
+def container_run_endless(docker_client, gerrit_init_image, tmp_path_factory):
   tmp_site_dir = tmp_path_factory.mktemp('gerrit_site')
   container_run = docker_client.containers.run(
     image=gerrit_init_image.id,
@@ -68,12 +67,8 @@
     auto_remove=True
   )
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+  yield container_run
+  container_run.stop(timeout=1)
 
 @pytest.mark.incremental
 class TestGerritInitEmptySite:
diff --git a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
index c50b543..977cf32 100755
--- a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
+++ b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
@@ -15,22 +15,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_init_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_init_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_init_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_init_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 @pytest.fixture(scope="function",
                 params=["/var/tools/gerrit_init.py",
diff --git a/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py b/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
index f181d17..ee1ee88 100755
--- a/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
+++ b/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
@@ -15,20 +15,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_master_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_master_image.id,
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_master_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_master_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 def test_gerrit_master_inherits_from_gerrit_base(gerrit_master_image):
   contains_tag = False
diff --git a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
index 8d151f8..ec72e4c 100755
--- a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
+++ b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
@@ -17,22 +17,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_slave_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_slave_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_slave_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_slave_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 @pytest.fixture(scope="function",
                 params=["/var/tools/start", "/var/tools/download_db_driver"])
diff --git a/tests/container-images/git-gc/test_container_structure_gitgc.py b/tests/container-images/git-gc/test_container_structure_gitgc.py
index 9a858ec..bd0e2ca 100644
--- a/tests/container-images/git-gc/test_container_structure_gitgc.py
+++ b/tests/container-images/git-gc/test_container_structure_gitgc.py
@@ -15,24 +15,10 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gitgc_image):
-  print("Starting git-gc-container...")
-  container_run = docker_client.containers.run(
-    image=gitgc_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
-
-  def stop_container():
-    print("Stopping git-gc-container...")
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+def container_run(docker_client, container_endless_run_factory, gitgc_image):
+  container_run = container_endless_run_factory(docker_client, gitgc_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
 
 def test_gitgc_inherits_from_base(gitgc_image):
diff --git a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py b/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
index 7683886..b40cc3d 100644
--- a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
+++ b/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
@@ -15,7 +15,7 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, mysql_replication_init_image):
+def container_run(docker_client, mysql_replication_init_image):
   container_run = docker_client.containers.run(
     image=mysql_replication_init_image.id,
     entrypoint="/bin/bash",
@@ -24,13 +24,8 @@
     auto_remove=True
   )
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
-
+  yield container_run
+  container_run.stop(timeout=1)
 
 def test_mysql_replication_init_contains_mysql_client(container_run):
   exit_code, _ = container_run.exec_run(