From 7e3d753d5c262451327ccbaeba6badf3c5f4d6d3 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Tue, 18 Nov 2014 19:21:42 +0000 Subject: [PATCH] Ensure env cleanup always happen in CLI#run --- lib/producer/core/cli.rb | 1 + spec/producer/core/cli_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/lib/producer/core/cli.rb b/lib/producer/core/cli.rb index 98d1146..6478323 100644 --- a/lib/producer/core/cli.rb +++ b/lib/producer/core/cli.rb @@ -45,6 +45,7 @@ module Producer def run(worker: Worker.new(@env)) evaluate_recipes.each { |recipe| worker.process recipe.tasks } + ensure @env.cleanup end diff --git a/spec/producer/core/cli_spec.rb b/spec/producer/core/cli_spec.rb index dbde3c3..20384e6 100644 --- a/spec/producer/core/cli_spec.rb +++ b/spec/producer/core/cli_spec.rb @@ -152,6 +152,15 @@ module Producer::Core expect(cli.env).to receive :cleanup cli.run end + + context 'on error' do + let(:recipe_file) { fixture_path_for 'recipes/raise.rb' } + + it 'cleans up the env' do + expect(cli.env).to receive :cleanup + cli.run rescue nil + end + end end describe '#evaluate_recipes' do