hiptest-publisher 0.13.0 → 0.13.1

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: 1f973be3f512aeaeb602fff2b338128ac378d828
4
- data.tar.gz: 0653c5dde8296c14f9afe566fcc1da3933db8b21
3
+ metadata.gz: 1365193e277e18365cb7ec5f3ac84a85278bf146
4
+ data.tar.gz: ee10d2cb7cb653d584b977707c9b2f21c5a3d0df
5
5
  SHA512:
6
- metadata.gz: ef37dddc970dec19e192b487c303eec3aea2103fdc1071798032dafb5b825b52b11f33cbeafab94135cfa1a4ef22e0ce3a06a24a3c1d7ba011892aa14613a5b2
7
- data.tar.gz: 24b25a7bb65b627a44dfa5683badd3186b12d734f034c5f3a9062f774a4a280ae8bb22190cfa10a988c7d02da5a555330ab004ded65f929083b797bc55f90074
6
+ metadata.gz: 78a77f1e1b26735f6354f375664c16ff904525645e2e0a75260370374c1121ec26e24c26732d6c99e601356dc0b8eeffdad2c69c410eb27c42c23e4fb4087c7b
7
+ data.tar.gz: 65a608b932517c94b4da199d209887ae4bea55d6a19745087bbc0db3ab90be303780dd794bb5a462d1b636b77d4febe68631598a6dab68a17b5a8b1725d08b31
@@ -135,6 +135,11 @@ module Hiptest
135
135
  s ? s.gsub('"', '\\"') : ""
136
136
  end
137
137
 
138
+ def hh_escape_single_quotes (context, s, block)
139
+ # weird \\\\, see http://stackoverflow.com/questions/7074337/why-does-stringgsub-double-content
140
+ s ? s.gsub('\'', "\\\\'") : ""
141
+ end
142
+
138
143
  def hh_escape_backslashes_and_double_quotes (context, s, block)
139
144
  if s
140
145
  s.gsub('\\') { |c| c*2 }.
@@ -144,9 +149,20 @@ module Hiptest
144
149
  end
145
150
  end
146
151
 
147
- def hh_escape_single_quotes (context, s, block)
148
- # weird \\\\, see http://stackoverflow.com/questions/7074337/why-does-stringgsub-double-content
149
- s ? s.gsub('\'', "\\\\'") : ""
152
+ def hh_escape_new_line(context, s, block = nil)
153
+ if s.is_a? Handlebars::Tree::Block
154
+ s = s.fn(context)
155
+ end
156
+
157
+ s.gsub("\n", '\\n')
158
+ end
159
+
160
+ def hh_remove_surrounding_quotes(context, s, block = nil)
161
+ if s.is_a? Handlebars::Tree::Block
162
+ s = s.fn(context)
163
+ end
164
+
165
+ s.gsub(/^("|')|("|')$/, '')
150
166
  end
151
167
 
152
168
  def hh_comment (context, commenter, block)
@@ -22,34 +22,33 @@ module Hiptest
22
22
  @template_finder = context.template_finder
23
23
  end
24
24
 
25
+ def walk_call(call)
26
+ # For Gherkin, we need the __free_text argument rendered.
27
+ free_text_arg = call.children[:arguments].select do |arg|
28
+ arg.children[:name] == '__free_text'
29
+ end.first
30
+
31
+ unless free_text_arg.nil?
32
+ @rendered_children[:free_text_arg] = @rendered[free_text_arg.children[:value]]
33
+ end
34
+
35
+ super(call)
36
+ end
37
+
38
+ def walk_scenarios(scs)
39
+ walk_scenario_container(scs)
40
+ super(scs)
41
+ end
42
+
43
+ def walk_folder(folder)
44
+ walk_scenario_container(folder)
45
+ super(folder)
46
+ end
47
+
25
48
  def call_node_walker(node)
26
49
  if node.is_a? Hiptest::Nodes::Node
27
50
  @rendered_children = {}
28
51
 
29
- if node.is_a?(Hiptest::Nodes::Folder) || node.is_a?(Hiptest::Nodes::Scenarios)
30
- # For Robot framework, we need direct access to every scenario
31
- # datatables and body rendered ....
32
-
33
- @rendered_children[:splitted_scenarios] = node.children[:scenarios].map {|sc|
34
- {
35
- name: @rendered[sc.children[:name]],
36
- tags: sc.children[:tags].map {|tag| @rendered[tag]},
37
- uid: @rendered[sc.children[:uid]],
38
- datatable: @rendered[sc.children[:datatable]],
39
- datasets: sc.children[:datatable].children[:datasets].map {|dataset|
40
- {
41
- scenario_name: @rendered[sc.children[:name]],
42
- name: @rendered[dataset.children[:name]],
43
- uid: @rendered[dataset.children[:uid]],
44
- arguments: @rendered[dataset.children[:arguments]]
45
- }
46
- },
47
- parameters: @rendered[sc.children[:parameters]],
48
- body: @rendered[sc.children[:body]]
49
- }
50
- }
51
- end
52
-
53
52
  node.children.each {|name, child| @rendered_children[name] = @rendered[child]}
54
53
  @rendered[node] = render_node(node, super(node))
55
54
  elsif node.is_a? Array
@@ -67,5 +66,31 @@ module Hiptest
67
66
 
68
67
  @template_finder.get_compiled_handlebars(node.kind).call(render_context)
69
68
  end
69
+
70
+ private
71
+
72
+ def walk_scenario_container(container)
73
+ # For Robot framework, we need direct access to every scenario
74
+ # datatables and body rendered.
75
+
76
+ @rendered_children[:splitted_scenarios] = container.children[:scenarios].map {|sc|
77
+ {
78
+ name: @rendered[sc.children[:name]],
79
+ tags: sc.children[:tags].map {|tag| @rendered[tag]},
80
+ uid: @rendered[sc.children[:uid]],
81
+ datatable: @rendered[sc.children[:datatable]],
82
+ datasets: sc.children[:datatable].children[:datasets].map {|dataset|
83
+ {
84
+ scenario_name: @rendered[sc.children[:name]],
85
+ name: @rendered[dataset.children[:name]],
86
+ uid: @rendered[dataset.children[:uid]],
87
+ arguments: @rendered[dataset.children[:arguments]]
88
+ }
89
+ },
90
+ parameters: @rendered[sc.children[:parameters]],
91
+ body: @rendered[sc.children[:body]]
92
+ }
93
+ }
94
+ end
70
95
  end
71
96
  end
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
@@ -1 +1,4 @@
1
- {{{ rendered_children.gherkin_text }}}
1
+ {{{ rendered_children.gherkin_text }}}{{#if rendered_children.free_text_arg}}
2
+ """
3
+ {{remove_surrounding_quotes rendered_children.free_text_arg }}
4
+ """{{/if}}
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
@@ -1 +1 @@
1
- {{{ underscore rendered_children.name }}} = {{{ rendered_children.value }}}
1
+ {{#escape_new_line}}{{{ underscore rendered_children.name }}} = {{{ rendered_children.value }}}{{/escape_new_line}}
@@ -1 +1 @@
1
- {{{ rendered_children.key }}}: {{{ rendered_children.value }}}
1
+ '{{{ escape_single_quotes rendered_children.key }}}': {{{ rendered_children.value }}}
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
@@ -0,0 +1 @@
1
+ {{{ rendered_children.key }}}: {{{ rendered_children.value }}}
@@ -1 +1 @@
1
- {{{ rendered_children.value }}}
1
+ {{{escape_new_line rendered_children.value }}}
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.13.0
4
+ version: 0.13.1
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: 2016-05-25 00:00:00.000000000 Z
11
+ date: 2016-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -512,6 +512,7 @@ files:
512
512
  - lib/templates/robotframework/folder.hbs
513
513
  - lib/templates/robotframework/ifthen.hbs
514
514
  - lib/templates/robotframework/parameter.hbs
515
+ - lib/templates/robotframework/property.hbs
515
516
  - lib/templates/robotframework/scenarios.hbs
516
517
  - lib/templates/robotframework/single_scenario.hbs
517
518
  - lib/templates/robotframework/single_test.hbs
@@ -592,7 +593,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
592
593
  version: '0'
593
594
  requirements: []
594
595
  rubyforge_project:
595
- rubygems_version: 2.5.1
596
+ rubygems_version: 2.4.8
596
597
  signing_key:
597
598
  specification_version: 4
598
599
  summary: Export your tests from Hiptest into executable tests.