embulk-input-marketo 0.5.1 → 0.5.2

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: 74bbb311bf2dcb785889f5b475a07b26b521a98a
4
- data.tar.gz: 2f1baeff76a61820a7616e6f860ae8166b85aa9c
3
+ metadata.gz: de07e24ca3f14e364b3f15895ed56a96f09852a4
4
+ data.tar.gz: 87f22e2378c027eed276168c6b46ace5aebb262d
5
5
  SHA512:
6
- metadata.gz: a5cf2a4f8bf7fa74f4c6a13507824146624039abe1768fcf8d134bfd7b2100c958ca92df3e51eeecd822d65053d6dde697d846e3778b67de7469d44e91a1f84d
7
- data.tar.gz: 1eb35066356697f2cfaf3f743d251f7ec34e837185fc9d1daf1dd9fd3f1e9aff81d63cc447c60bf571f2ea51513e59b96b771ba930263b25429afbece98c9c8e
6
+ metadata.gz: ba3f66db79035db3ae0c6a32f55c6e2e9ce003db9dd5c858eab4b65c1c7897e8e79f36af128729e3452a2c5c1b178391bbd9d3e05e8e13941fe33175d5bf1d9c
7
+ data.tar.gz: c4a34c34dc46d20767a79e0ac3832d4dd5cc4cc57b15cc936e0cb3dd9840ffa08fcbf5ae1bbc1275a3511e7b78b75106d34526a8b454b52070ad215b21ca3b06
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.5.2 - 2016-04-27
2
+ * [enhancement] Make debug easier [#54](https://github.com/treasure-data/embulk-input-marketo/pull/54)
3
+ * [fixed] Recognize empty string as nil value [#53](https://github.com/treasure-data/embulk-input-marketo/pull/53)
4
+
1
5
  ## 0.5.1 - 2016-04-06
2
6
 
3
7
  * [maintenance] Relax dependency version
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "embulk-input-marketo"
3
- spec.version = "0.5.1"
3
+ spec.version = "0.5.2"
4
4
  spec.authors = ["uu59", "yoshihara"]
5
5
  spec.summary = "Marketo input plugin for Embulk"
6
6
  spec.description = "Loads records from Marketo."
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
 
15
15
  spec.add_dependency 'savon', ['~> 2.11.1']
16
16
  spec.add_dependency 'httpclient'
17
- spec.add_dependency 'perfect_retry', ["~> 0.3"]
17
+ spec.add_dependency 'perfect_retry', ["~> 0.5"]
18
18
  spec.add_development_dependency 'embulk', [">= 0.6.13", "< 1.0"]
19
19
  spec.add_development_dependency 'bundler', ['~> 1.0']
20
20
  spec.add_development_dependency 'rake', ['>= 10.0']
@@ -108,7 +108,7 @@ module Embulk
108
108
  end
109
109
 
110
110
  def cast_value(column, value)
111
- return unless value
111
+ return if value.to_s.empty? # nil or empty string
112
112
 
113
113
  case column["type"].to_s
114
114
  when "timestamp"
@@ -51,14 +51,13 @@ module Embulk
51
51
  }
52
52
  request[:start_position][:offset] = options[:offset] if options[:offset]
53
53
 
54
- Embulk.logger.info "Fetching from '#{from}' to '#{to}'..."
55
54
  fetch(request, options, &block)
56
55
  end
57
56
 
58
57
  def fetch(request, options={}, &block)
59
58
  response = savon_call(:get_lead_changes, {message: request}, options)
60
59
  remaining = response.xpath('//remainingCount').text.to_i
61
- Embulk.logger.info "Remaining records: #{remaining}"
60
+ Embulk.logger.info "Remaining #{remaining} records for this range: from '#{request[:start_position][:oldest_created_at]}' to '#{request[:start_position][:latest_created_at]}'."
62
61
 
63
62
  activities = response.xpath('//leadChangeRecord')
64
63
 
@@ -29,7 +29,7 @@ module Embulk
29
29
  # NOTE: Do not memoize this to use always fresh signature (avoid 20016 error)
30
30
  # ref. https://jira.talendforge.org/secure/attachmentzip/unzip/167201/49761%5B1%5D/Marketo%20Enterprise%20API%202%200.pdf (41 page)
31
31
  Savon.client(
32
- log: true,
32
+ log: false,
33
33
  logger: Embulk.logger,
34
34
  wsdl: wsdl,
35
35
  soap_header: headers,
@@ -50,6 +50,7 @@ module Embulk
50
50
  config.rescues = [StandardError, Timeout::Error]
51
51
  config.logger = Embulk.logger
52
52
  config.log_level = nil
53
+ config.raise_original_error = true
53
54
  end
54
55
  end
55
56
 
@@ -47,11 +47,11 @@ module Embulk
47
47
  def fetch(request = {}, retry_options, &block)
48
48
  start = Time.now
49
49
  response = savon_call(:get_multiple_leads, {message: request}, retry_options)
50
- Embulk.logger.info "Fetched in #{Time.now - start} seconds"
50
+ Embulk.logger.debug "Fetched in #{Time.now - start} seconds"
51
51
 
52
52
  records = response.xpath('//leadRecordList/leadRecord')
53
53
  remaining = response.xpath('//remainingCount').text.to_i
54
- Embulk.logger.info "Fetched records in the range: #{records.size}"
54
+ Embulk.logger.debug "Fetched records in the range: #{records.size}"
55
55
  Embulk.logger.info "Remaining records in the range: #{remaining}"
56
56
 
57
57
  records.each do |lead|
@@ -171,6 +171,37 @@ module Embulk
171
171
  end
172
172
  end
173
173
 
174
+ class FormatRecordTest < self
175
+ def setup
176
+ @page_builder = Object.new
177
+ plugin_task = task.dup
178
+ plugin_task[:columns] = [
179
+ {"name" => "time", "type" => :timestamp, "format" => "%Y-%m-%d %H:%M:%S"}
180
+ ]
181
+ @plugin = ActivityLog.new(plugin_task, nil, nil, @page_builder)
182
+ end
183
+
184
+ data do
185
+ [
186
+ ["valid timestamp", [Time.parse("2000-01-01 00:00:00"), "2000-01-01 00:00:00"]],
187
+ ["nil", [nil, nil]],
188
+ ["empty", [nil, ""]],
189
+ ]
190
+ end
191
+ def test_valid_timestamp(data)
192
+ expected, actual = data
193
+ record = { "time" => actual }
194
+ assert_equal [expected], @plugin.format_record(record)
195
+ end
196
+
197
+ def test_invalid_timestamp
198
+ record = { "time" => "123" }
199
+ assert_raise(Embulk::ConfigError) do
200
+ @plugin.format_record(record)
201
+ end
202
+ end
203
+ end
204
+
174
205
  class RunTest < self
175
206
  def setup_soap
176
207
  @soap = MarketoApi::Soap::ActivityLog.new(settings[:endpoint], settings[:wsdl], settings[:user_id], settings[:encryption_key])
@@ -22,7 +22,7 @@ module Embulk
22
22
 
23
23
  mock(Embulk.logger).warn(/Retrying/).times(retry_options[:retry_limit])
24
24
 
25
- assert_raise(PerfectRetry::TooManyRetry) do
25
+ assert_raise(::Timeout::Error) do
26
26
  soap.send(:savon_call, :timeout_test, {}, retry_options)
27
27
  end
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-marketo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - uu59
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-06 00:00:00.000000000 Z
12
+ date: 2016-04-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,7 +44,7 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.5'
48
48
  name: perfect_retry
49
49
  prerelease: false
50
50
  type: :runtime
@@ -52,7 +52,7 @@ dependencies:
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0.3'
55
+ version: '0.5'
56
56
  - !ruby/object:Gem::Dependency
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements: