From e1f0b64da4341ce3fd698ebe807ebd14bc9d0982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20Barr=C3=A8re?= Date: Fri, 17 Jan 2020 12:03:43 +0100 Subject: [PATCH 1/4] Remove configuration from streaming runner tests After the PR changes, this must pass without the need to specify StreamingRunner. --- test/test_streaming_runner.rb | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/test/test_streaming_runner.rb b/test/test_streaming_runner.rb index dcd00a4..d12f9dc 100644 --- a/test/test_streaming_runner.rb +++ b/test/test_streaming_runner.rb @@ -15,10 +15,6 @@ def test_yielding_class_transform destination_array = [] job = Kiba.parse do - extend Kiba::DSLExtensions::Config - - config :kiba, runner: Kiba::StreamingRunner - # provide a single row as the input source TestEnumerableSource, [input_row] @@ -51,9 +47,6 @@ def test_yielding_class_transform def test_transform_yielding_from_close destination_array = [] job = Kiba.parse do - extend Kiba::DSLExtensions::Config - config :kiba, runner: Kiba::StreamingRunner - transform CloseYieldingTransform, yield_on_close: [1, 2] destination TestArrayDestination, destination_array end @@ -63,9 +56,6 @@ def test_transform_yielding_from_close def test_transform_with_no_close_must_not_raise job = Kiba.parse do - extend Kiba::DSLExtensions::Config - config :kiba, runner: Kiba::StreamingRunner - transform NonClosingTransform end Kiba.run(job) From ef93bfb854a0fcee50db9842ccae2f87f380553d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20Barr=C3=A8re?= Date: Fri, 17 Jan 2020 18:12:32 +0100 Subject: [PATCH 2/4] Default to StreamingRunner --- lib/kiba.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kiba.rb b/lib/kiba.rb index 16c90a4..3efbdbc 100644 --- a/lib/kiba.rb +++ b/lib/kiba.rb @@ -13,7 +13,7 @@ module Kiba def self.run(job) # NOTE: use Hash#dig when Ruby 2.2 reaches EOL - runner = job.config.fetch(:kiba, {}).fetch(:runner, Kiba::Runner) + runner = job.config.fetch(:kiba, {}).fetch(:runner, Kiba::StreamingRunner) runner.run(job) end end From c700228b0a1e34138f155ee9dcbd1d6e01eed1bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20Barr=C3=A8re?= Date: Fri, 17 Jan 2020 18:12:59 +0100 Subject: [PATCH 3/4] Let each runner tests suite specify the runner which must be used --- test/shared_runner_tests.rb | 4 ---- test/test_runner.rb | 5 +++++ test/test_streaming_runner.rb | 5 +++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/shared_runner_tests.rb b/test/shared_runner_tests.rb index 983f641..7819a49 100644 --- a/test/shared_runner_tests.rb +++ b/test/shared_runner_tests.rb @@ -3,10 +3,6 @@ require_relative 'support/test_destination_returning_nil' module SharedRunnerTests - def kiba_run(job) - Kiba.run(job) - end - def rows @rows ||= [ { identifier: 'first-row' }, diff --git a/test/test_runner.rb b/test/test_runner.rb index f4f88a5..33fb03e 100644 --- a/test/test_runner.rb +++ b/test/test_runner.rb @@ -2,5 +2,10 @@ require_relative 'shared_runner_tests' class TestRunner < Kiba::Test + def kiba_run(job) + job.config[:kiba] = {runner: Kiba::Runner} + Kiba.run(job) + end + include SharedRunnerTests end diff --git a/test/test_streaming_runner.rb b/test/test_streaming_runner.rb index d12f9dc..a1c6055 100644 --- a/test/test_streaming_runner.rb +++ b/test/test_streaming_runner.rb @@ -8,6 +8,11 @@ require_relative 'shared_runner_tests' class TestStreamingRunner < Kiba::Test + def kiba_run(job) + job.config[:kiba] = {runner: Kiba::StreamingRunner} + Kiba.run(job) + end + include SharedRunnerTests def test_yielding_class_transform From 6f234b0268acb6e4839abf8ff341787de4a047e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20Barr=C3=A8re?= Date: Fri, 17 Jan 2020 18:30:02 +0100 Subject: [PATCH 4/4] Add a test to lock down the fact that Kiba must default to the StreamingRunner --- test/test_run.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 test/test_run.rb diff --git a/test/test_run.rb b/test/test_run.rb new file mode 100644 index 0000000..a892a00 --- /dev/null +++ b/test/test_run.rb @@ -0,0 +1,12 @@ +require_relative 'helper' +require 'minitest/mock' + +class TestRun < Kiba::Test + def test_ensure_kiba_defaults_to_streaming_runner + cb = -> (job) { "Streaming runner called" } + Kiba::StreamingRunner.stub(:run, cb) do + job = Kiba::Control.new + assert_equal "Streaming runner called", Kiba.run(job) + end + end +end