turbot-runner 0.2.21 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a9fdfb0bc2c0e85ec636a581d2fb4657f865daa
4
- data.tar.gz: e89c05d192f3d2a503c05c41faa48dc99cd4e966
3
+ metadata.gz: cf3018be33a490d1220c5f1afaeda1d7c5fdd2f1
4
+ data.tar.gz: a53d4a8b5a69d1da8a596d4028b3210fa4a87294
5
5
  SHA512:
6
- metadata.gz: f0ca31bdbb3df8c219c98e0598243aa6dbd71557b1f69c18405bbb8410d636fa0a213fb03726f9f07b02b2277cb914814e58fbe542331f0f6621f76aa8e077bb
7
- data.tar.gz: f8e09a2e31d4e1dce2a1fc473e72437a58d25f7e2eec2054c3313de2cbaf474c2d6db2610e69e48da2a749ec1d85ab33346b5e494df532b982815a0f0a44aa96
6
+ metadata.gz: 1701ffbe66db6b127c620dc902db0c748acd872d315968bf3da04492ed3817534e1653d43c5deffb4ed083bf5844d0de25b7f8fb69b57fab7b0f18e11c9a2cc0
7
+ data.tar.gz: 7e50e47e1f2097daf2f83a42ca4d3bab58053ab8acc9e366deec6d81a23ed123411cb17b3a1256dd6357d3c4189fab60e5e4737abb0618728e3173048bc02daa
@@ -10,20 +10,23 @@ module TurbotRunner
10
10
  @seen_uids = script_config[:duplicates_allowed] ? nil : Set.new
11
11
  end
12
12
 
13
- def process(line)
13
+ def process(line, opts={})
14
+ validate = opts[:validate].nil? ? true : opts[:validate]
14
15
  begin
15
16
  if line.strip == "SNAPSHOT ENDED" || line.strip == "RUN ENDED" # latter is legacy
16
17
  @record_handler.handle_snapshot_ended(@data_type)
17
18
  @runner.interrupt if @runner
18
19
  else
19
20
  record = Openc::JsonSchema.convert_dates(schema_path, JSON.parse(line))
20
-
21
- error_message = Validator.validate(
22
- @data_type,
23
- record,
24
- @identifying_fields,
25
- @seen_uids
26
- )
21
+ error_message = nil
22
+ if validate
23
+ error_message = Validator.validate(
24
+ @data_type,
25
+ record,
26
+ @identifying_fields,
27
+ @seen_uids
28
+ )
29
+ end
27
30
 
28
31
  if error_message.nil?
29
32
  begin
@@ -68,11 +68,11 @@ module TurbotRunner
68
68
  end
69
69
  end
70
70
 
71
- def process_output
72
- process_script_output(scraper_config)
71
+ def process_output(opts={})
72
+ process_script_output(scraper_config, opts)
73
73
 
74
74
  transformers.each do |transformer_config|
75
- process_script_output(transformer_config.merge(:base_directory => @base_directory))
75
+ process_script_output(transformer_config.merge(:base_directory => @base_directory), opts)
76
76
  end
77
77
  end
78
78
 
@@ -115,7 +115,7 @@ module TurbotRunner
115
115
  script_runner.run # returns boolean indicating success
116
116
  end
117
117
 
118
- def process_script_output(script_config)
118
+ def process_script_output(script_config, opts)
119
119
  # The first argument to the Processor constructor is a nil
120
120
  # Runner. This is because no running behaviour
121
121
  # (e.g. interruptions etc) is required; we just want to do
@@ -124,7 +124,7 @@ module TurbotRunner
124
124
  file = output_file(script_config[:file])
125
125
  File.open(file) do |f|
126
126
  f.each_line do |line|
127
- processor.process(line)
127
+ processor.process(line, opts)
128
128
  end
129
129
  end
130
130
  rescue Errno::ENOENT => e
@@ -1,3 +1,3 @@
1
1
  module TurbotRunner
2
- VERSION = '0.2.21'
2
+ VERSION = '0.2.22'
3
3
  end
@@ -31,16 +31,26 @@ describe TurbotRunner::Processor do
31
31
  end
32
32
 
33
33
  context 'with invalid record' do
34
- it 'calls Handler#handle_invalid_record' do
35
- record = {
34
+ before do
35
+ @record = {
36
36
  'sample_date' => '2014-06-01',
37
37
  'number' => 123
38
38
  }
39
+ end
39
40
 
41
+ it 'calls Handler#handle_invalid_record' do
40
42
  expected_error = 'Missing required property: source_url'
41
43
  expect(@handler).to receive(:handle_invalid_record).
42
- with(record, @data_type, expected_error)
43
- @processor.process(record.to_json)
44
+ with(@record, @data_type, expected_error)
45
+ @processor.process(@record.to_json)
46
+ end
47
+
48
+ context 'requesting non-validation' do
49
+ it 'calls Handler#handle_valid_record' do
50
+ expect(@handler).to receive(:handle_valid_record).
51
+ with(@record, @data_type)
52
+ @processor.process(@record.to_json, validate: false)
53
+ end
44
54
  end
45
55
  end
46
56
 
@@ -327,6 +327,18 @@ describe TurbotRunner::Runner do
327
327
  expect(@handler.records_seen['simple-licence']).to eq(10)
328
328
  end
329
329
 
330
+ it 'passes opts to processor.process' do
331
+ test_runner('bot-with-transformer').run
332
+ runner = test_runner('bot-with-transformer',
333
+ :record_handler => @handler
334
+ )
335
+ opts = {frob: 5}
336
+ processor = double('processor')
337
+ allow(TurbotRunner::Processor).to receive(:new).and_return(processor)
338
+ expect(processor).to receive(:process).with(anything, opts).at_least(:once)
339
+ runner.process_output(opts)
340
+ end
341
+
330
342
  it 'can cope when scraper has failed immediately' do
331
343
  test_runner('bot-that-crashes-immediately').run
332
344
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.21
4
+ version: 0.2.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenCorporates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-07 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -228,61 +228,4 @@ rubygems_version: 2.4.5
228
228
  signing_key:
229
229
  specification_version: 4
230
230
  summary: Utilities for running bots with Turbot
231
- test_files:
232
- - spec/bots/bot-that-crashes-immediately/manifest.json
233
- - spec/bots/bot-that-crashes-immediately/scraper.rb
234
- - spec/bots/bot-that-crashes-immediately/transformer1.rb
235
- - spec/bots/bot-that-crashes-in-scraper/manifest.json
236
- - spec/bots/bot-that-crashes-in-scraper/scraper.rb
237
- - spec/bots/bot-that-crashes-in-scraper/transformer1.rb
238
- - spec/bots/bot-that-crashes-in-transformer/manifest.json
239
- - spec/bots/bot-that-crashes-in-transformer/scraper.rb
240
- - spec/bots/bot-that-crashes-in-transformer/transformer1.rb
241
- - spec/bots/bot-that-crashes-in-transformer/transformer2.rb
242
- - spec/bots/bot-that-emits-run-ended/manifest.json
243
- - spec/bots/bot-that-emits-run-ended/scraper.rb
244
- - spec/bots/bot-that-emits-snapshot-ended/manifest.json
245
- - spec/bots/bot-that-emits-snapshot-ended/scraper.rb
246
- - spec/bots/bot-that-expects-file/manifest.json
247
- - spec/bots/bot-that-expects-file/scraper.rb
248
- - spec/bots/bot-that-expects-file/something.txt
249
- - spec/bots/bot-that-is-allowed-to-produce-duplicates/manifest.json
250
- - spec/bots/bot-that-is-allowed-to-produce-duplicates/scraper.rb
251
- - spec/bots/bot-that-produces-duplicates/manifest.json
252
- - spec/bots/bot-that-produces-duplicates/scraper.rb
253
- - spec/bots/bot-with-invalid-data-type/manifest.json
254
- - spec/bots/bot-with-invalid-data-type/scraper.rb
255
- - spec/bots/bot-with-invalid-sample-date/manifest.json
256
- - spec/bots/bot-with-invalid-sample-date/scraper.rb
257
- - spec/bots/bot-with-pause/manifest.json
258
- - spec/bots/bot-with-pause/scraper.rb
259
- - spec/bots/bot-with-transformer/manifest.json
260
- - spec/bots/bot-with-transformer/scraper.rb
261
- - spec/bots/bot-with-transformer/transformer.rb
262
- - spec/bots/bot-with-transformers/manifest.json
263
- - spec/bots/bot-with-transformers/scraper.rb
264
- - spec/bots/bot-with-transformers/transformer1.rb
265
- - spec/bots/bot-with-transformers/transformer2.rb
266
- - spec/bots/invalid-json-bot/manifest.json
267
- - spec/bots/invalid-json-bot/scraper.rb
268
- - spec/bots/invalid-record-bot/manifest.json
269
- - spec/bots/invalid-record-bot/scraper.rb
270
- - spec/bots/logging-bot/manifest.json
271
- - spec/bots/logging-bot/scraper.rb
272
- - spec/bots/python-bot/manifest.json
273
- - spec/bots/python-bot/scraper.py
274
- - spec/bots/ruby-bot/manifest.json
275
- - spec/bots/ruby-bot/scraper.rb
276
- - spec/bots/slow-bot/manifest.json
277
- - spec/bots/slow-bot/scraper.rb
278
- - spec/lib/processor_spec.rb
279
- - spec/lib/runner_spec.rb
280
- - spec/lib/utils_spec.rb
281
- - spec/lib/validator_spec.rb
282
- - spec/manual.rb
283
- - spec/outputs/full-scraper.out
284
- - spec/outputs/full-transformer.out
285
- - spec/outputs/truncated-scraper.out
286
- - spec/spec_helper.rb
287
- - spec/support/custom_matchers.rb
288
- - spec/support/helpers.rb
231
+ test_files: []