prestashop-automation-tool 0.4 → 0.4.1

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.
data/bin/pat CHANGED
@@ -38,8 +38,11 @@ elsif ARGV[0] == 'init'
38
38
  unless File.exists? 'tests-available'
39
39
  `git clone #{conf.config[:tests_repository]} tests-available`
40
40
  end
41
+ unless File.exists? 'tests-output'
42
+ Dir.mkdir 'tests-output'
43
+ end
41
44
  elsif ARGV[0] == 'purge'
42
- `rm -Rf pat.conf.json tests-enabled tests-available`
45
+ `rm -Rf pat.conf.json tests-enabled tests-available tests-output`
43
46
  elsif ARGV[0] == 'install'
44
47
  withConfig do |conf|
45
48
  ps = PrestaShopAutomation::PrestaShop.new(conf[:shop])
@@ -74,14 +77,29 @@ elsif ARGV[0] == 'test'
74
77
  list.sort!
75
78
 
76
79
  list.each do |file|
80
+
81
+ env = {
82
+ 'PAT_NO_RESTORE' => (options[:no_restore] ? '1' : '0'),
83
+ 'PAT_OUTPUT_PREFIX' => 'tests-output/' + File.basename(file, File.extname(file))
84
+ }
85
+
77
86
  ok = if file =~ /\.rb$/
78
87
  puts "Running #{file}..."
79
- system({'NO_RESTORE' => options[:no_restore]}, 'rspec', file)
88
+ system(env, 'rspec', file)
80
89
  elsif file =~ /\.json$/
81
90
  puts "Running #{file}..."
82
91
  data = JSON.parse File.read(file)
92
+
93
+ tempfile = nil
94
+ if base = data['spec']['extend']
95
+ baseData = JSON.parse File.read(File.join File.dirname(file), "#{base}.json")
96
+ data = PrestaShopAutomationTool.merge baseData, data
97
+ file = env['PAT_OUTPUT_PREFIX'] + '.json'
98
+ File.write file, JSON.pretty_generate(data)
99
+ end
100
+
83
101
  runner = "pat-runner-#{data['spec']['runner']}.rb"
84
- system({'PAT_SOURCE' => file, 'NO_RESTORE' => (options[:no_restore] ? '1' : '0')}, runner)
102
+ system(env.merge({'PAT_SOURCE' => file}), runner)
85
103
  else
86
104
  :not_runnable
87
105
  end
@@ -105,6 +105,6 @@ scenario = JSON.parse File.read(ENV['PAT_SOURCE'])
105
105
 
106
106
  describe 'Invoice test' do
107
107
  it 'should work' do
108
- test_invoice @shop, scenario, :dump_pdf_to => ENV['PAT_SOURCE'].sub(/\.json$/, '.pdf')
108
+ test_invoice @shop, scenario, :dump_pdf_to => (ENV['PAT_OUTPUT_PREFIX'] + '.pdf')
109
109
  end
110
110
  end
@@ -7,13 +7,13 @@ RSpec.configure do |config|
7
7
  config.before :all do
8
8
  conf = JSON.parse(File.read('pat.conf.json'), :symbolize_names => true)
9
9
  @shop = PrestaShopAutomation::PrestaShop.new conf[:shop]
10
- unless ENV['NO_RESTORE'] == '1'
10
+ unless ENV['PAT_NO_RESTORE'] == '1'
11
11
  dump = @shop.save
12
12
  end
13
13
  end
14
14
 
15
15
  config.after :all do
16
- unless ENV['NO_RESTORE'] == '1'
16
+ unless ENV['PAT_NO_RESTORE'] == '1'
17
17
  @shop.restore dump
18
18
  end
19
19
  end
@@ -8,6 +8,30 @@ module PrestaShopAutomationTool
8
8
  File.expand_path '../..', __FILE__
9
9
  end
10
10
 
11
+ def self.merge a, b
12
+ if a.is_a? Hash and b.is_a? Hash
13
+ merged = {}
14
+
15
+ a.each_pair do |ka, va|
16
+ if b.has_key? ka
17
+ merged[ka] = merge va, b[ka]
18
+ else
19
+ merged[ka] = va
20
+ end
21
+ end
22
+
23
+ b.each_pair do |kb, vb|
24
+ unless a.has_key? kb
25
+ merged[kb] = vb
26
+ end
27
+ end
28
+
29
+ return merged
30
+ else
31
+ return b
32
+ end
33
+ end
34
+
11
35
  class ConfigurationParser
12
36
 
13
37
  attr_reader :config
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prestashop-automation-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: