turbot-runner 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- M2M1ODY0MWFjYzlhZjZiY2RiMTM1ZTdiODQ2Y2I0Y2VjMDI2OTk4Yw==
4
+ NTQ3ZDQzMjMyYzQyMTg2OWMzZDk0NWVjZjgwYWFiNjU0MmRmYzdmZg==
5
5
  data.tar.gz: !binary |-
6
- OTg3MWRjMmYzODUyMzQ5NWEzZjMwMjVjZTU0OGI0ODE1OTBjYjJjZA==
6
+ NmEzOGE5NjViYzc5ZGZhNjZmZjg1MjNmNGNkNTI4ZWVmMDIzNjI1YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzU3ODBjZDgzN2Q4ZTM4ZWQwMDk0ODM1M2MzMjg1MWNjODg4OTc4ZDMyYzE5
10
- ZDU5ZTg2ZjYzNmZiMmFjNjc0YTY3OTEwYmUyMzcwMWQxMTEyNTkwOTQxMmIw
11
- ZjExNTk5MWE3YTMyMzliODkwZmU5ODEzNGY1OWE4YTQ4YmFmN2I=
9
+ NmY3ZmMwM2Y2ZDljNWVkODM1MWM3YjcxNjM1M2I3MjAyM2Q4YzYxM2ExNWE0
10
+ MGM5YmM0MDM2MGYwMTQ1Nzk2NDhmNzNiYzZmYTJmNDNjYmY3NmNhMjA0ZTJj
11
+ NWJhYTJlZGQ4MzhiMWQ5MjMxYTk1MjQ4ZmU5Y2U1YzE2MjYwZGU=
12
12
  data.tar.gz: !binary |-
13
- NWFlZTgwZGRhZjg4ZWFlOTM3MzhlMTJhM2Q0NTRjOGFhZjQ1YmI1YTY3ZmVk
14
- YTUwZjEyN2QzYmFkZjNiN2M1ZDI2YmNjOTgzMzU5YTBlMDIyOTljOWEwMWM0
15
- NjFiNjhmZjRkOTVhYTM5ODI4MGMwMTgwZWNkZTc3YWYxZTUzMzg=
13
+ NjQ5NDRmN2EyNGM0NzEyZWNjYTQyYWQ5MjA4YTc4YWQ1ODMyYzc0MmUzNmJm
14
+ OTFkNjczN2E2NGQyNTllMDE1ZGQxMTNhMmY5MmYzMDE0MGY0NDI3YjdlNmVi
15
+ YjA3ZjE3Mzc4ZmYwMDVlZTQ0ZWI2ZTE1NTZhMmRiZDAwNzYwYWQ=
@@ -17,6 +17,7 @@ module TurbotRunner
17
17
  @record_handler = options[:record_handler]
18
18
  @log_to_file = options[:log_to_file]
19
19
  @timeout = options[:timeout]
20
+ @scraper_provided = options[:scraper_provided]
20
21
  if options[:output_directory]
21
22
  assert_absolute_path(options[:output_directory])
22
23
  @output_directory = options[:output_directory]
@@ -25,10 +26,10 @@ module TurbotRunner
25
26
  end
26
27
  end
27
28
 
28
- def run(opts={})
29
+ def run
29
30
  set_up_output_directory
30
31
 
31
- if opts[:scraper_provided]
32
+ if @scraper_provided
32
33
  scraper_succeeded = true
33
34
  else
34
35
  scraper_succeeded = run_script(scraper_config)
@@ -55,8 +56,11 @@ module TurbotRunner
55
56
 
56
57
  def set_up_output_directory
57
58
  FileUtils.mkdir_p(@output_directory)
58
- FileUtils.rm_f(output_file('scraper', '.out'))
59
- FileUtils.rm_f(output_file('scraper', '.err'))
59
+
60
+ if !@scraper_provided
61
+ FileUtils.rm_f(output_file('scraper', '.out'))
62
+ FileUtils.rm_f(output_file('scraper', '.err'))
63
+ end
60
64
 
61
65
  transformers.each do |transformer_config|
62
66
  FileUtils.rm_f(output_file(transformer_config[:file], '.out'))
@@ -1,3 +1,3 @@
1
1
  module TurbotRunner
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
@@ -15,7 +15,7 @@ describe TurbotRunner::Runner do
15
15
 
16
16
  it 'produces expected output' do
17
17
  @runner.run
18
- expect([@runner, 'scraper']).to have_output('full-scraper.out')
18
+ expect(@runner).to have_output('scraper', 'full-scraper.out')
19
19
  end
20
20
 
21
21
  it 'returns true' do
@@ -30,7 +30,7 @@ describe TurbotRunner::Runner do
30
30
 
31
31
  it 'produces expected output' do
32
32
  @runner.run
33
- expect([@runner, 'scraper']).to have_output('full-scraper.out')
33
+ expect(@runner).to have_output('scraper', 'full-scraper.out')
34
34
  end
35
35
  end
36
36
 
@@ -41,8 +41,8 @@ describe TurbotRunner::Runner do
41
41
 
42
42
  it 'produces expected outputs' do
43
43
  @runner.run
44
- expect([@runner, 'scraper']).to have_output('full-scraper.out')
45
- expect([@runner, 'transformer']).to have_output('full-transformer.out')
44
+ expect(@runner).to have_output('scraper', 'full-scraper.out')
45
+ expect(@runner).to have_output('transformer', 'full-transformer.out')
46
46
  end
47
47
 
48
48
  it 'returns true' do
@@ -57,9 +57,9 @@ describe TurbotRunner::Runner do
57
57
 
58
58
  it 'produces expected outputs' do
59
59
  @runner.run
60
- expect([@runner, 'scraper']).to have_output('full-scraper.out')
61
- expect([@runner, 'transformer1']).to have_output('full-transformer.out')
62
- expect([@runner, 'transformer2']).to have_output('full-transformer.out')
60
+ expect(@runner).to have_output('scraper', 'full-scraper.out')
61
+ expect(@runner).to have_output('transformer1', 'full-transformer.out')
62
+ expect(@runner).to have_output('transformer2', 'full-transformer.out')
63
63
  end
64
64
 
65
65
  it 'returns true' do
@@ -73,7 +73,7 @@ describe TurbotRunner::Runner do
73
73
  expected_log = "doing...\ndone\n"
74
74
  runner = test_runner('logging-bot', :log_to_file => true)
75
75
  runner.run
76
- expect([runner, 'scraper']).to have_error_output_matching(expected_log)
76
+ expect(runner).to have_error_output_matching('scraper', expected_log)
77
77
  end
78
78
  end
79
79
 
@@ -111,7 +111,7 @@ describe TurbotRunner::Runner do
111
111
 
112
112
  it 'writes error to stderr' do
113
113
  @runner.run
114
- expect([@runner, 'scraper']).to have_error_output_matching(/Oh no/)
114
+ expect(@runner).to have_error_output_matching('scraper', /Oh no/)
115
115
  end
116
116
 
117
117
  it 'still runs the transformers' do
@@ -144,7 +144,7 @@ describe TurbotRunner::Runner do
144
144
 
145
145
  it 'writes error to stderr' do
146
146
  @runner.run
147
- expect([@runner, 'transformer2']).to have_error_output_matching(/Oh no/)
147
+ expect(@runner).to have_error_output_matching('transformer2', /Oh no/)
148
148
  end
149
149
  end
150
150
 
@@ -176,7 +176,7 @@ describe TurbotRunner::Runner do
176
176
 
177
177
  it 'produces expected output' do
178
178
  @runner.run
179
- expect([@runner, 'scraper']).to have_output('truncated-scraper.out')
179
+ expect(@runner).to have_output('scraper', 'truncated-scraper.out')
180
180
  end
181
181
 
182
182
  it 'returns true' do
@@ -252,6 +252,32 @@ describe TurbotRunner::Runner do
252
252
  expect(@runner).to succeed
253
253
  end
254
254
  end
255
+
256
+ context 'when the scraped data is provided' do
257
+ before do
258
+ FileUtils.cp(
259
+ File.join('spec', 'outputs', 'full-scraper.out'),
260
+ File.join(File.dirname(__FILE__), '../bots', 'bot-with-transformer', 'output', 'scraper.out')
261
+ )
262
+ @runner = test_runner('bot-with-transformer', :scraper_provided => true)
263
+ end
264
+
265
+ it 'does not run scraper' do
266
+ expect(@runner).to receive(:run_script).once.with(
267
+ hash_including(:file => 'transformer.rb'), anything
268
+ )
269
+ @runner.run
270
+ end
271
+
272
+ it 'succeeds' do
273
+ expect(@runner).to succeed
274
+ end
275
+
276
+ it 'produces expected transformed output' do
277
+ @runner.run
278
+ expect(@runner).to have_output('transformer', 'full-transformer.out')
279
+ end
280
+ end
255
281
  end
256
282
 
257
283
  describe '#process_output' do
@@ -317,10 +343,8 @@ describe TurbotRunner::Runner do
317
343
  end
318
344
 
319
345
 
320
- RSpec::Matchers.define :have_output do |expected|
321
- match do |actual|
322
- runner, script = actual
323
-
346
+ RSpec::Matchers.define(:have_output) do |script, expected|
347
+ match do |runner|
324
348
  expected_path = File.join('spec', 'outputs', expected)
325
349
  expected_output = File.readlines(expected_path).map {|line| JSON.parse(line)}
326
350
  actual_path = File.join(runner.base_directory, 'output', "#{script}.out")
@@ -330,6 +354,15 @@ RSpec::Matchers.define :have_output do |expected|
330
354
  end
331
355
 
332
356
 
357
+ RSpec::Matchers.define(:have_error_output_matching) do |script, expected|
358
+ match do |runner|
359
+ actual_path = File.join(runner.base_directory, 'output', "#{script}.err")
360
+ actual_output = File.read(actual_path)
361
+ expect(actual_output).to match(expected)
362
+ end
363
+ end
364
+
365
+
333
366
  RSpec::Matchers.define(:succeed) do
334
367
  match do |runner|
335
368
  expect(runner.run).to eq(TurbotRunner::Runner::RC_OK)
@@ -350,17 +383,6 @@ RSpec::Matchers.define(:fail_in_transformer) do
350
383
  end
351
384
  end
352
385
 
353
-
354
- RSpec::Matchers.define :have_error_output_matching do |expected|
355
- match do |actual|
356
- runner, script = actual
357
-
358
- actual_path = File.join(runner.base_directory, 'output', "#{script}.err")
359
- actual_output = File.read(actual_path)
360
- expect(actual_output).to match(expected)
361
- end
362
- end
363
-
364
386
  def test_runner(name, opts={})
365
387
  test_bot_location = File.join(File.dirname(__FILE__), '../bots', name)
366
388
  TurbotRunner::Runner.new(test_bot_location, opts)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenCorporates