From 1f6a7ae4b82cba06a4619f97f6cdd980c8f5dfc2 Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Tue, 4 Dec 2018 16:51:54 -0600 Subject: [PATCH 1/6] Moving cleanup into a try/finally block --- src/pytest_docker/__init__.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/pytest_docker/__init__.py b/src/pytest_docker/__init__.py index 567ec9f..03f6cde 100644 --- a/src/pytest_docker/__init__.py +++ b/src/pytest_docker/__init__.py @@ -148,14 +148,16 @@ def docker_services( docker_compose_file, docker_compose_project_name ) - # Spawn containers. - docker_compose.execute('up --build -d') - # Let test(s) run. - yield Services(docker_compose) - - # Clean up. - docker_compose.execute('down -v') + try: + # Spawn containers. + docker_compose.execute('up --build -d') + + # Let test(s) run. + yield Services(docker_compose) + finally: + # Clean up. + docker_compose.execute('down -v') __all__ = ( From dd23df6fc9583cd541dd5d4a73fcc861a9fb3f87 Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Tue, 11 Dec 2018 17:41:43 -0600 Subject: [PATCH 2/6] Remove try/finally block, use pytest finalizer to ensure teardown runs --- src/pytest_docker/__init__.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/pytest_docker/__init__.py b/src/pytest_docker/__init__.py index 03f6cde..29b1c4e 100644 --- a/src/pytest_docker/__init__.py +++ b/src/pytest_docker/__init__.py @@ -140,24 +140,26 @@ def docker_compose_project_name(): @pytest.fixture(scope='session') def docker_services( - docker_compose_file, docker_compose_project_name + request, docker_compose_file, docker_compose_project_name ): """Ensure all Docker-based services are up and running.""" + def _cleanup(): + docker_compose.execute('down -v') + docker_compose = DockerComposeExecutor( docker_compose_file, docker_compose_project_name ) + # If failure happens beyond this point, run cleanup + request.addfinalizer(_cleanup) - try: - # Spawn containers. - docker_compose.execute('up --build -d') + # Spawn containers. + docker_compose.execute('up --build -d') + + # Let test(s) run. + yield Services(docker_compose) - # Let test(s) run. - yield Services(docker_compose) - finally: - # Clean up. - docker_compose.execute('down -v') __all__ = ( From 54b38e64074b62301cc14d123999590897b0fb6a Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Fri, 11 Jan 2019 14:30:24 -0600 Subject: [PATCH 3/6] Return instead of yield in the docker_services fixture -- cleanup moved to finalizer --- src/pytest_docker/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pytest_docker/__init__.py b/src/pytest_docker/__init__.py index 29b1c4e..a2bdd0f 100644 --- a/src/pytest_docker/__init__.py +++ b/src/pytest_docker/__init__.py @@ -158,7 +158,7 @@ def _cleanup(): docker_compose.execute('up --build -d') # Let test(s) run. - yield Services(docker_compose) + return Services(docker_compose) From d895caf36abb3235ac117fbb9d039713480d90fd Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Fri, 11 Jan 2019 14:33:18 -0600 Subject: [PATCH 4/6] Whitespace reduction --- src/pytest_docker/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pytest_docker/__init__.py b/src/pytest_docker/__init__.py index a2bdd0f..563dd99 100644 --- a/src/pytest_docker/__init__.py +++ b/src/pytest_docker/__init__.py @@ -143,14 +143,12 @@ def docker_services( request, docker_compose_file, docker_compose_project_name ): """Ensure all Docker-based services are up and running.""" - def _cleanup(): docker_compose.execute('down -v') docker_compose = DockerComposeExecutor( docker_compose_file, docker_compose_project_name ) - # If failure happens beyond this point, run cleanup request.addfinalizer(_cleanup) From 728bbcc9a030e92444b4710e44762de44ebcbbc3 Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Fri, 11 Jan 2019 14:44:38 -0600 Subject: [PATCH 5/6] Removing newline to maintain PEP8 standards --- src/pytest_docker/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pytest_docker/__init__.py b/src/pytest_docker/__init__.py index 563dd99..4be445c 100644 --- a/src/pytest_docker/__init__.py +++ b/src/pytest_docker/__init__.py @@ -159,7 +159,6 @@ def _cleanup(): return Services(docker_compose) - __all__ = ( 'docker_compose_file', 'docker_ip', From 7218f5b815f0b120ae5429f199df33fecc6b29dd Mon Sep 17 00:00:00 2001 From: Joshua Drapeau Date: Fri, 11 Jan 2019 15:08:03 -0600 Subject: [PATCH 6/6] Fixing pep8 line length errors --- tests/test_integration.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test_integration.py b/tests/test_integration.py index b4c02b9..6492afe 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -39,7 +39,8 @@ def test_main_fixtures_work(docker_ip, docker_services): assert response.status_code == 204 -def test_containers_and_volumes_get_cleaned_up(testdir, tmpdir, docker_compose_file): +def test_containers_and_volumes_get_cleaned_up(testdir, tmpdir, + docker_compose_file): _copy_compose_files_to_testdir(testdir, docker_compose_file) project_name_file_path = path.join(str(tmpdir), 'project_name.txt') @@ -80,7 +81,9 @@ def _copy_compose_files_to_testdir(testdir, compose_file_path): directory_for_compose_files = testdir.mkdir('tests') shutil.copy(compose_file_path, str(directory_for_compose_files)) - container_build_files_dir = path.realpath(path.join(compose_file_path, '../containers')) + container_build_files_dir = path.realpath( + path.join(compose_file_path, '../containers') + ) shutil.copytree( container_build_files_dir, str(directory_for_compose_files) + '/containers',