prestashop-automation-tool 0.4.1 → 0.5

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.
Files changed (3) hide show
  1. data/bin/pat +9 -1
  2. data/bin/pat-runner-invoice.rb +47 -20
  3. metadata +17 -1
data/bin/pat CHANGED
@@ -49,6 +49,12 @@ elsif ARGV[0] == 'install'
49
49
  ps.drop_database
50
50
  ps.install options
51
51
  end
52
+ elsif ARGV[0] == 'create' and ARGV[1] == 'tax' and ARGV[2] == 'group'
53
+ withConfig do |conf|
54
+ ps = PrestaShopAutomation::PrestaShop.new(conf[:shop])
55
+ ps.login_to_back_office
56
+ ps.create_tax_group_from_rate ARGV[3]
57
+ end
52
58
  elsif ARGV[0] == 'create'
53
59
  if ARGV[1]
54
60
  template = File.join PrestaShopAutomationTool.gem_root, 'lib', 'templates', 'sample_test.rb'
@@ -119,8 +125,10 @@ elsif ARGV[0] == 'disable'
119
125
  if ARGV[1]
120
126
  `mv tests-enabled/#{ARGV[1]}.* tests-available/`
121
127
  else
122
- puts "Please also provide prefix!"
128
+ `mv tests-enabled/* tests-available/`
123
129
  end
130
+ elsif ARGV[0] == 'clean'
131
+ `rm tests-output/*`
124
132
  else
125
133
  puts "Unknown command '#{ARGV[0]}'!"
126
134
  end
@@ -1,9 +1,26 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
+ require 'pry'
3
4
  require 'rspec'
4
5
  require 'rspec/autorun'
5
6
  require 'prestashop-automation-tool/helper'
6
7
 
8
+ def compare expected, got, path=[]
9
+ differences = {}
10
+ if got.is_a? Hash and expected.is_a? Hash
11
+ expected.each_pair do |key, value|
12
+ pkey = key.to_s.include?(".") ? "\"#{key}\"" : key
13
+ differences.merge! compare(expected[key], got[key], path + [pkey])
14
+ end
15
+ else
16
+ if got != expected
17
+ #abort "#{path.join('.')} :: got #{got} instead of #{expected}"
18
+ differences[path.join('.')] = "got #{got} instead of #{expected}"
19
+ end
20
+ end
21
+ return differences
22
+ end
23
+
7
24
  def test_invoice ps, scenario, options={}
8
25
 
9
26
  taxes = {}
@@ -78,26 +95,36 @@ def test_invoice ps, scenario, options={}
78
95
  ps.goto_back_office
79
96
  invoice = ps.validate_order :id => order_id, :dump_pdf_to => options[:dump_pdf_to], :get_invoice_json => true
80
97
 
81
- if scenario['expect']['invoice']
82
- if expected_total = scenario['expect']['invoice']['total']
83
- actual_total = invoice['order']
84
- mapping = {
85
- 'to_pay_tax_included' => 'total_paid_tax_incl',
86
- 'to_pay_tax_excluded' => 'total_paid_tax_excl',
87
- 'products_tax_included' => 'total_products_wt',
88
- 'products_tax_excluded' => 'total_products',
89
- 'shipping_tax_included' => 'total_shipping_tax_incl',
90
- 'shipping_tax_excluded' => 'total_shipping_tax_excl',
91
- 'discounts_tax_included' => 'total_discounts_tax_incl',
92
- 'discounts_tax_excluded' => 'total_discounts_tax_excl',
93
- 'wrapping_tax_included' => 'total_wrapping_tax_incl',
94
- 'wrapping_tax_excluded' => 'total_wrapping_tax_excl'
98
+ total_mapping = {
99
+ 'to_pay_tax_included' => 'total_paid_tax_incl',
100
+ 'to_pay_tax_excluded' => 'total_paid_tax_excl',
101
+ 'products_tax_included' => 'total_products_wt',
102
+ 'products_tax_excluded' => 'total_products',
103
+ 'shipping_tax_included' => 'total_shipping_tax_incl',
104
+ 'shipping_tax_excluded' => 'total_shipping_tax_excl',
105
+ 'discounts_tax_included' => 'total_discounts_tax_incl',
106
+ 'discounts_tax_excluded' => 'total_discounts_tax_excl',
107
+ 'wrapping_tax_included' => 'total_wrapping_tax_incl',
108
+ 'wrapping_tax_excluded' => 'total_wrapping_tax_excl'
109
+ }
110
+
111
+ got = {'invoice' => {
112
+ 'total' => Hash[total_mapping.map do |to, from| [to, invoice['order'][from].to_f] end],
113
+ 'tax' => {
114
+ 'products' => Hash[invoice['tax_tab']['product_tax_breakdown'].map do |k,v|
115
+ [k.to_f.to_s, v['total_amount'].to_f]
116
+ end]
95
117
  }
96
- #puts invoice
97
- expected_total.each_pair do |key, value_expected|
98
- expect(actual_total[mapping[key]].to_f).to eq value_expected.to_f
99
- end
100
- end
118
+ }
119
+ }
120
+
121
+ expected = scenario['expect']
122
+
123
+ differences = compare(expected, got)
124
+
125
+ if not differences.empty?
126
+ File.write (options[:output_prefix] + '.failed.json'), JSON.pretty_generate(differences)
127
+ throw differences
101
128
  end
102
129
  end
103
130
 
@@ -105,6 +132,6 @@ scenario = JSON.parse File.read(ENV['PAT_SOURCE'])
105
132
 
106
133
  describe 'Invoice test' do
107
134
  it 'should work' do
108
- test_invoice @shop, scenario, :dump_pdf_to => (ENV['PAT_OUTPUT_PREFIX'] + '.pdf')
135
+ test_invoice @shop, scenario, :dump_pdf_to => (ENV['PAT_OUTPUT_PREFIX'] + '.pdf'), :output_prefix => ENV['PAT_OUTPUT_PREFIX']
109
136
  end
110
137
  end
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.1
4
+ version: '0.5'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: pry
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: apache-vhosts-parser
32
48
  requirement: !ruby/object:Gem::Requirement