hiptest-publisher 0.18.5 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58653c94c1e3cbeda859d5c82caac9b56ade125e
4
- data.tar.gz: 63bde1a925b9b850bdcfe2671eb5cc92fcdab629
3
+ metadata.gz: bf6890beff64e12d0d847f95e23a854c33fc49d5
4
+ data.tar.gz: 283d4d11acf6e9ff5d7eacdbf0058de77db7035c
5
5
  SHA512:
6
- metadata.gz: 1d757cf39e96c0132bf765f7c538a0f83ca0bef7b704e69be207a7586bf4f58b3074a4878b19bdc80796b29dde1886079baee38e069872d6ad0d6110e6e5bc83
7
- data.tar.gz: 5efa7e8f4fce14583c9c3ad2a423f18ce03fe673c2ba1a25d85dac1921da3c3d9585d451a567aec5776039d526a8c7ccbc636a691c1527352b25eb8e2b269951
6
+ metadata.gz: 67e1b24d37eae1d25d5d9fff1eaeccd215b5e336d216d0b40b617e7bb07fbc4d7750d8454fb2af23020ab50577e42b37eee7730b998cbad9a39aa0c857a8bb14
7
+ data.tar.gz: 74b69b786dc0d2aa979c3d8af3ef50767892f06b6e4c831095fd662729d5d8dae8e400868b6806758658e2cdc50eb5d4a5d16addf410a7c351987e4541a7f969
@@ -11,6 +11,8 @@ module Hiptest
11
11
  @project = project
12
12
  @indexer = ActionwordIndexer.new(project)
13
13
  @annotations_counter = AnnotationsCounter.new
14
+
15
+ @special_params = ['__free_text', '__datatable']
14
16
  end
15
17
 
16
18
  def update_calls
@@ -62,7 +64,7 @@ module Hiptest
62
64
  end
63
65
  end
64
66
 
65
- missing_parameter_names = all_arguments.keys - inline_parameter_names - ['__free_text']
67
+ missing_parameter_names = all_arguments.keys - inline_parameter_names - @special_params
66
68
 
67
69
  prettified = call_chunks.join("\"")
68
70
  missing_parameter_names.each do |missing_parameter_name|
@@ -87,7 +89,7 @@ module Hiptest
87
89
  result << inline_parameter_name if inline_parameter_name
88
90
  end
89
91
  end
90
- missing_parameter_names = actionword_parameters.keys - inline_parameter_names - ['__free_text']
92
+ missing_parameter_names = actionword_parameters.keys - inline_parameter_names - @special_params
91
93
 
92
94
  patterned = result.join("\"")
93
95
  missing_parameter_names.each do |missing_parameter_name|
@@ -231,10 +231,19 @@ module Hiptest
231
231
  return regexp.gsub(/(^\^)|(\$$)/, '')
232
232
  end
233
233
 
234
+ def hh_remove_last_character(context, character = '', block)
235
+ txt = block.fn(context)
236
+ return txt[-1] == character ? txt[0..-2] : txt
237
+ end
238
+
234
239
  def hh_trim_surrounding_characters(context, character, block)
235
240
  return block.fn(context).gsub(/(\A(#{character})*)|((#{character})*\z)/, '')
236
241
  end
237
242
 
243
+ def hh_replace(context, str, replacement, block)
244
+ return block.fn(context).gsub(str, replacement)
245
+ end
246
+
238
247
  def hh_debug(context, block)
239
248
  require 'pry'
240
249
  binding.pry
@@ -207,6 +207,10 @@ module Hiptest
207
207
  def free_text?
208
208
  @children[:name] == "__free_text"
209
209
  end
210
+
211
+ def datatable?
212
+ @children[:name] == "__datatable"
213
+ end
210
214
  end
211
215
 
212
216
  class Call < Node
@@ -219,6 +223,10 @@ module Hiptest
219
223
  def free_text_arg
220
224
  children[:arguments].find(&:free_text?)
221
225
  end
226
+
227
+ def datatable_arg
228
+ children[:arguments].find(&:datatable?)
229
+ end
222
230
  end
223
231
 
224
232
  class IfThen < Node
@@ -266,6 +274,10 @@ module Hiptest
266
274
  def free_text?
267
275
  @children[:name] == "__free_text"
268
276
  end
277
+
278
+ def datatable?
279
+ @children[:name] == "__datatable"
280
+ end
269
281
  end
270
282
 
271
283
  class Item < Node
@@ -94,6 +94,7 @@ module Hiptest
94
94
  def walk_parameter(p)
95
95
  {
96
96
  :is_free_text? => p.free_text?,
97
+ :is_datatable? => p.datatable?,
97
98
  :is_bool? => p.children[:type] == :bool,
98
99
  :has_default_value? => !p.children[:default].nil?
99
100
  }
@@ -23,11 +23,15 @@ module Hiptest
23
23
  end
24
24
 
25
25
  def walk_call(call)
26
- # For Gherkin, we need the __free_text argument rendered.
26
+ # For Gherkin, we need the special arguments rendered.
27
27
  if call.free_text_arg
28
28
  @rendered_children[:free_text_arg] = @rendered[call.free_text_arg.children[:value]]
29
29
  end
30
30
 
31
+ if call.datatable_arg
32
+ @rendered_children[:datatable_arg] = @rendered[call.datatable_arg.children[:value]]
33
+ end
34
+
31
35
  super(call)
32
36
  end
33
37
 
@@ -1 +1 @@
1
- {{#if is_free_text?}}PyStringNode {{/if}}${{{underscore rendered_children.name}}}
1
+ {{#if is_datatable?}}TableNode {{/if}}{{#if is_free_text?}}PyStringNode {{/if}}${{{underscore rendered_children.name}}}
@@ -1,4 +1,4 @@
1
1
  {{#if rendered_children.gherkin_used_annotations}}
2
- {{#each rendered_children.gherkin_used_annotations}}@{{{downcase this }}}(r'{{{ strip_regexp_delimiters rendered_children.gherkin_pattern }}}')
2
+ {{#each rendered_children.gherkin_used_annotations}}@{{{downcase this }}}(r'{{#remove_last_character ':'}}{{{ strip_regexp_delimiters rendered_children.gherkin_pattern }}}{{/remove_last_character}}')
3
3
  {{/each}}def impl(context{{#if has_parameters?}}, {{{ join rendered_children.parameters ', '}}}{{/if}}):{{#indent}}
4
- context.actionwords.{{{ underscore rendered_children.name }}}({{#if has_parameters?}}{{#join raw_parameter_names ', '}}{{#trim_surrounding_characters "__"}}{{{underscore this}}}{{/trim_surrounding_characters}}{{/join}}{{/if}}){{/indent}}{{/if}}
4
+ context.actionwords.{{{ underscore rendered_children.name }}}({{#if has_parameters?}}{{#join raw_parameter_names ', '}}{{#replace "__datatable" "context.table"}}{{#replace "__free_text" "context.text"}}{{{underscore this}}}{{/replace}}{{/replace}}{{/join}}{{/if}}){{/indent}}{{/if}}
@@ -1,5 +1,6 @@
1
1
  package {{{ context.package }}};
2
2
 
3
+ import cucumber.api.DataTable;
3
4
  import cucumber.api.java.en.*;
4
5
 
5
6
  public class StepDefinitions {{#curly}}{{#indent}}
@@ -0,0 +1 @@
1
+ {{#if is_datatable?}}DataTable{{else}}{{#if is_bool?}}boolean{{else}}{{{ node.type }}}{{/if}}{{/if}} {{{ camelize_lower rendered_children.name }}}
@@ -1,4 +1,5 @@
1
1
  {{{ rendered_children.gherkin_text }}}{{#if rendered_children.free_text_arg}}
2
2
  """
3
3
  {{remove_surrounding_quotes rendered_children.free_text_arg }}
4
- """{{/if}}
4
+ """{{/if}}{{#if rendered_children.datatable_arg}}{{#indent}}
5
+ {{remove_surrounding_quotes rendered_children.datatable_arg }}{{/indent}}{{/if}}
@@ -0,0 +1 @@
1
+ {{#if is_datatable?}}Table{{else}}{{{ downcase node.type }}}{{/if}} {{{ camelize_lower rendered_children.name }}}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiptest-publisher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.5
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiptest R&D
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -339,6 +339,7 @@ files:
339
339
  - lib/templates/cucumber/actionwords.hbs
340
340
  - lib/templates/cucumber/java/actionword.hbs
341
341
  - lib/templates/cucumber/java/actionwords.hbs
342
+ - lib/templates/cucumber/java/parameter.hbs
342
343
  - lib/templates/cucumber/javascript/_after_hook.hbs
343
344
  - lib/templates/cucumber/javascript/_before_hook.hbs
344
345
  - lib/templates/cucumber/javascript/actionword.hbs
@@ -585,6 +586,7 @@ files:
585
586
  - lib/templates/seleniumide/tests.hbs
586
587
  - lib/templates/specflow/actionword.hbs
587
588
  - lib/templates/specflow/actionwords.hbs
589
+ - lib/templates/specflow/parameter.hbs
588
590
  homepage: https://hiptest.net
589
591
  licenses:
590
592
  - GPL-2.0
@@ -605,7 +607,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
605
607
  version: '0'
606
608
  requirements: []
607
609
  rubyforge_project:
608
- rubygems_version: 2.5.1
610
+ rubygems_version: 2.6.10
609
611
  signing_key:
610
612
  specification_version: 4
611
613
  summary: Export your tests from Hiptest into executable tests.