oddb2xml 2.5.0 → 2.5.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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Elexis_Artikelstamm_v003.xsd +387 -0
- data/Elexis_Artikelstamm_v5.xsd +513 -0
- data/Gemfile +2 -6
- data/History.txt +11 -0
- data/README.md +35 -27
- data/artikelstamm.md +68 -0
- data/bin/compare_v5 +41 -0
- data/bin/oddb2xml +3 -15
- data/data/article_overrides.yaml +51859 -0
- data/data/gtin2ignore.yaml +30510 -0
- data/data/product_overrides.yaml +4 -0
- data/lib/oddb2xml/builder.rb +543 -192
- data/lib/oddb2xml/cli.rb +82 -62
- data/lib/oddb2xml/compare.rb +189 -0
- data/lib/oddb2xml/compressor.rb +6 -3
- data/lib/oddb2xml/downloader.rb +79 -64
- data/lib/oddb2xml/extractor.rb +67 -40
- data/lib/oddb2xml/options.rb +76 -77
- data/lib/oddb2xml/parslet_compositions.rb +18 -1
- data/lib/oddb2xml/util.rb +25 -3
- data/lib/oddb2xml/version.rb +1 -1
- data/oddb2xml.gemspec +8 -5
- data/oddb2xml.xsd +1 -0
- data/spec/artikelstamm_spec.rb +383 -0
- data/spec/builder_spec.rb +147 -118
- data/spec/calc_spec.rb +3 -15
- data/spec/cli_spec.rb +24 -35
- data/spec/compare_spec.rb +24 -0
- data/spec/compressor_spec.rb +1 -3
- data/spec/data/Elexis_Artikelstamm_v5.xsd +513 -0
- data/spec/data/Preparations.xml +2200 -0
- data/spec/data/Publications.xls +0 -0
- data/spec/data/artikelstamm_N_010917.xml +39 -0
- data/spec/data/artikelstamm_N_011217.xml +17 -0
- data/spec/data/artikelstamm_P_010917.xml +86 -0
- data/spec/data/artikelstamm_P_011217.xml +63 -0
- data/spec/data/oddb2xml_files_lppv.txt +2 -0
- data/spec/data/refdata_NonPharma.xml +38 -0
- data/spec/data/refdata_Pharma.xml +220 -0
- data/spec/data/swissmedic_orphan.xlsx +0 -0
- data/spec/data/swissmedic_package.xlsx +0 -0
- data/spec/data/transfer.dat +59 -19
- data/spec/data/v5_first.xml +102 -0
- data/spec/data/v5_second.xml +184 -0
- data/spec/data_helper.rb +72 -0
- data/spec/downloader_spec.rb +19 -27
- data/spec/extractor_spec.rb +27 -33
- data/spec/fixtures/vcr_cassettes/artikelstamm.json +1 -0
- data/spec/options_spec.rb +73 -66
- data/spec/spec_helper.rb +73 -24
- data/test_options.rb +4 -2
- metadata +100 -21
- data/spec/data/XMLPublications.zip +0 -0
- data/spec/data/compressor/oddb_article.xml +0 -0
- data/spec/data/compressor/oddb_fi.xml +0 -0
- data/spec/data/compressor/oddb_fi_product.xml +0 -0
- data/spec/data/compressor/oddb_limitation.xml +0 -0
- data/spec/data/compressor/oddb_product.xml +0 -0
- data/spec/data/compressor/oddb_substance.xml +0 -0
data/spec/downloader_spec.rb
CHANGED
@@ -75,6 +75,12 @@ def common_before
|
|
75
75
|
cleanup_directories_before_run
|
76
76
|
FileUtils.makedirs(Oddb2xml::WorkDir)
|
77
77
|
Dir.chdir(Oddb2xml::WorkDir)
|
78
|
+
WebMock.enable!
|
79
|
+
{ 'https://download.epha.ch/cleaned/matrix.csv' => 'epha_interactions.csv',
|
80
|
+
}.each do |url, file|
|
81
|
+
inhalt = File.read(File.join(Oddb2xml::SpecData, file))
|
82
|
+
stub_request(:get,url).to_return(body: inhalt)
|
83
|
+
end
|
78
84
|
end
|
79
85
|
|
80
86
|
def common_after
|
@@ -199,7 +205,7 @@ def cleanPackungenXlsx(info)
|
|
199
205
|
FileUtils.makedirs(swissmedic_dir)
|
200
206
|
xlsx_name = File.join(swissmedic_dir, name + '.xlsx')
|
201
207
|
if /Packungen/i.match(xlsx_name)
|
202
|
-
|
208
|
+
FileUtils.rm(xlsx_name, :verbose => false) if File.exists?(xlsx_name)
|
203
209
|
File.open(xlsx_name, 'wb+') { |f| f.write(info.response.body) }
|
204
210
|
FileUtils.cp(xlsx_name, File.join(Oddb2xml::SpecData, 'swissmedic_package_downloaded.xlsx'), :verbose => true, :preserve => true)
|
205
211
|
puts "#{Time.now}: #{__LINE__}: Openening saved #{xlsx_name} (#{File.size(xlsx_name)} bytes) will take some time. URI was #{info.request.uri}"
|
@@ -313,37 +319,23 @@ end
|
|
313
319
|
|
314
320
|
describe Oddb2xml::EphaDownloader do
|
315
321
|
include ServerMockHelper
|
316
|
-
before(:
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
iksnrs.each{ |iksnr| to_add << lines.find{ |x| x.index(','+iksnr.to_s+',') } }
|
325
|
-
i.response.body = to_add.compact.join("\n")
|
326
|
-
i.response.body = i.response.body.split("\n")[0..5].join("\n")
|
327
|
-
i.response.headers['Content-Length'] = i.response.body.size
|
328
|
-
end
|
329
|
-
end
|
330
|
-
end
|
331
|
-
VCR.eject_cassette
|
332
|
-
VCR.insert_cassette('oddb2xml', :tag => :epha)
|
333
|
-
@downloader = Oddb2xml::EphaDownloader.new
|
334
|
-
common_before
|
335
|
-
@downloader.download
|
322
|
+
before(:each) do
|
323
|
+
buildr_capture(:stdout) {
|
324
|
+
@downloader = Oddb2xml::EphaDownloader.new
|
325
|
+
common_before
|
326
|
+
Oddb2xml.add_epha_changes_for_ATC(1, 3, force_run: true)
|
327
|
+
@csv = @downloader.download
|
328
|
+
}
|
329
|
+
expect(File.exist?(File.join(Oddb2xml::Downloads, 'epha_interactions.csv'))).to eq(true)
|
336
330
|
end
|
337
331
|
after(:all) do
|
338
332
|
common_after
|
339
333
|
end
|
334
|
+
|
340
335
|
it_behaves_like 'any downloader'
|
341
336
|
|
342
337
|
context 'when download is called' do
|
343
|
-
let(:csv) {
|
344
|
-
Oddb2xml.add_epha_changes_for_ATC(1, 3)
|
345
|
-
@downloader.download
|
346
|
-
}
|
338
|
+
let(:csv) { @csv }
|
347
339
|
it 'should read csv as String' do
|
348
340
|
expect(csv).to be_a String
|
349
341
|
expect(csv.bytes).not_to be nil
|
@@ -394,7 +386,7 @@ describe Oddb2xml::BagXmlDownloader do
|
|
394
386
|
after(:each) do
|
395
387
|
common_after
|
396
388
|
end
|
397
|
-
|
389
|
+
|
398
390
|
it_behaves_like 'any downloader'
|
399
391
|
context 'when download is called' do
|
400
392
|
let(:xml) {
|
@@ -481,7 +473,7 @@ describe Oddb2xml::ZurroseDownloader do
|
|
481
473
|
@downloader.download
|
482
474
|
end
|
483
475
|
after(:each) do common_after end
|
484
|
-
|
476
|
+
|
485
477
|
it_behaves_like 'any downloader'
|
486
478
|
context 'when download is called' do
|
487
479
|
let(:dat) { @downloader.download }
|
data/spec/extractor_spec.rb
CHANGED
@@ -4,7 +4,6 @@ require 'spec_helper'
|
|
4
4
|
require "#{Dir.pwd}/lib/oddb2xml/downloader"
|
5
5
|
ENV['TZ'] = 'UTC' # needed for last_change
|
6
6
|
LAST_CHANGE = "2015-07-03 00:00:00 +0000"
|
7
|
-
NR_PACKS = 24
|
8
7
|
|
9
8
|
def common_before
|
10
9
|
@savedDir = Dir.pwd
|
@@ -63,21 +62,22 @@ describe Oddb2xml::RefdataExtractor do
|
|
63
62
|
|
64
63
|
it "should have correct info for pharmacode 1699947 correctly" do
|
65
64
|
@pharma_items = subject.to_hash
|
66
|
-
pharma_code_LEVETIRACETAM = 5819012
|
65
|
+
pharma_code_LEVETIRACETAM = '5819012'
|
67
66
|
item_found = @pharma_items.values.find{ |x| x[:pharmacode].eql?(pharma_code_LEVETIRACETAM)}
|
68
67
|
expect(item_found).not_to be nil
|
69
|
-
expected = {
|
68
|
+
expected = {:data_origin=>"refdata",
|
69
|
+
:refdata=>true,
|
70
70
|
:_type=>:pharma,
|
71
|
-
:
|
71
|
+
:ean13=> Oddb2xml::LEVETIRACETAM_GTIN.to_s,
|
72
72
|
:pharmacode=> pharma_code_LEVETIRACETAM,
|
73
|
-
:
|
73
|
+
:data_origin => "refdata",
|
74
74
|
:desc_de=>"LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk",
|
75
75
|
:desc_fr=>"LEVETIRACETAM DESITIN mini cpr pel 250 mg 30 pce",
|
76
76
|
:atc_code=>"N03AX14",
|
77
|
+
:last_change => "2017-12-08 00:00:00 +0000",
|
77
78
|
:company_name=>"Desitin Pharma GmbH",
|
78
79
|
:company_ean=>"7601001320451"}
|
79
80
|
expect(item_found).to eq(expected)
|
80
|
-
expect(@pharma_items.size).to eq(19)
|
81
81
|
end
|
82
82
|
end
|
83
83
|
context 'should handle nonpharma articles' do
|
@@ -89,21 +89,21 @@ describe Oddb2xml::RefdataExtractor do
|
|
89
89
|
|
90
90
|
it "should have correct info for nonpharma with pharmacode 0058502 correctly" do
|
91
91
|
@non_pharma_items = subject.to_hash
|
92
|
-
pharma_code_TUBEGAZE =
|
92
|
+
pharma_code_TUBEGAZE = '0058519'
|
93
93
|
item_found = @non_pharma_items.values.find{ |x| x[:pharmacode].eql?(pharma_code_TUBEGAZE)}
|
94
94
|
expect(item_found).not_to be nil
|
95
95
|
expected = {:refdata=>true,
|
96
96
|
:_type=>:nonpharma,
|
97
|
-
:
|
97
|
+
:ean13=>'7611600441020',
|
98
98
|
:pharmacode=>pharma_code_TUBEGAZE,
|
99
99
|
:last_change => @@last_change,
|
100
|
+
:data_origin => "refdata",
|
100
101
|
:desc_de=>"TUBEGAZE Verband weiss Nr 12 20m Finger gross",
|
101
102
|
:desc_fr=>"TUBEGAZE pans tubul blanc Nr 12 20m doigts grands",
|
102
103
|
:atc_code=>"",
|
103
104
|
:company_name=>"IVF HARTMANN AG",
|
104
105
|
:company_ean=>"7601001000896"}
|
105
106
|
expect(item_found).to eq(expected)
|
106
|
-
expect(@non_pharma_items.size).to eq(9)
|
107
107
|
end
|
108
108
|
end
|
109
109
|
end
|
@@ -125,16 +125,15 @@ describe Oddb2xml::BagXmlExtractor do
|
|
125
125
|
expect(with_pharma[:packages].size).to eq(1)
|
126
126
|
expect(with_pharma[:packages].first[0]).to eq(Oddb2xml::THREE_TC_GTIN)
|
127
127
|
expect(with_pharma[:packages].first[1][:prices][:pub_price][:price]).to eq('205.3')
|
128
|
-
expect(@items.size).to eq(5)
|
129
128
|
end
|
130
|
-
it "should handle pub_price for
|
129
|
+
it "should handle pub_price for #{Oddb2xml::LEVETIRACETAM_GTIN} correctly" do
|
131
130
|
@items = subject.to_hash
|
132
|
-
no_pharma = @items[
|
131
|
+
no_pharma = @items[Oddb2xml::LEVETIRACETAM_GTIN]
|
133
132
|
expect(no_pharma).not_to be_nil
|
134
133
|
expect(no_pharma[:atc_code]).not_to be_nil
|
135
134
|
expect(no_pharma[:pharmacodes]).not_to be_nil
|
136
135
|
expect(no_pharma[:packages].size).to eq(1)
|
137
|
-
expect(no_pharma[:packages].first[0]).to eq(
|
136
|
+
expect(no_pharma[:packages].first[0]).to eq(Oddb2xml::LEVETIRACETAM_GTIN)
|
138
137
|
expect(no_pharma[:packages].first[1][:prices][:pub_price][:price]).to eq('27.8')
|
139
138
|
end
|
140
139
|
end
|
@@ -178,10 +177,10 @@ describe Oddb2xml::SwissmedicExtractor do
|
|
178
177
|
end
|
179
178
|
|
180
179
|
def get_pack_by_ean13(ean13)
|
181
|
-
@packs.find{|pack| pack[1][:
|
180
|
+
@packs.find{|pack| pack[1][:ean13] == ean13.to_s }[1]
|
182
181
|
end
|
183
182
|
it 'should have correct nr of packages' do
|
184
|
-
expect(@packs.size).to eq(
|
183
|
+
expect(@packs.size).to eq(35)
|
185
184
|
end
|
186
185
|
|
187
186
|
it 'should have serocytol' do
|
@@ -217,14 +216,14 @@ describe Oddb2xml::SwissmedicExtractor do
|
|
217
216
|
end
|
218
217
|
|
219
218
|
context 'can parse swissmedic_orphans.xls' do
|
220
|
-
it
|
219
|
+
it do
|
221
220
|
@filename = File.join(Oddb2xml::SpecData, 'swissmedic_orphan.xlsx')
|
222
221
|
expect(File.exists?(@filename)).to eq(true), "File #{@filename} must exists"
|
223
222
|
@packs = Oddb2xml::SwissmedicExtractor.new(@filename, :orphan).to_arry
|
224
|
-
expect(@packs.size).to eq
|
223
|
+
expect(@packs.size).to eq 96
|
225
224
|
expect(@packs.first).to eq("62132")
|
226
225
|
expect(@packs[7]).to eq("00687")
|
227
|
-
|
226
|
+
end
|
228
227
|
end
|
229
228
|
end
|
230
229
|
|
@@ -236,7 +235,7 @@ describe Oddb2xml::EphaExtractor do
|
|
236
235
|
filename = File.join(Oddb2xml::SpecData, 'epha_interactions.csv')
|
237
236
|
string = IO.read(filename)
|
238
237
|
@actions = Oddb2xml::EphaExtractor.new(string).to_arry
|
239
|
-
expect(@actions.size).to eq(2)
|
238
|
+
expect(@actions.size).to eq(2)
|
240
239
|
}
|
241
240
|
end
|
242
241
|
end
|
@@ -275,7 +274,7 @@ describe Oddb2xml::ZurroseExtractor do
|
|
275
274
|
Oddb2xml::ZurroseExtractor.new(dat)
|
276
275
|
end
|
277
276
|
it { expect(subject.to_hash.keys.length).to eq(1) }
|
278
|
-
it { expect(subject.to_hash.keys.first).to eq(
|
277
|
+
it { expect(subject.to_hash.keys.first).to eq(Oddb2xml::FERRO_GRADUMET_GTIN) }
|
279
278
|
it { expect(subject.to_hash.values.first[:price]).to eq("8.95") }
|
280
279
|
end
|
281
280
|
context 'when Estradiol Creme is given' do
|
@@ -286,11 +285,11 @@ describe Oddb2xml::ZurroseExtractor do
|
|
286
285
|
Oddb2xml::ZurroseExtractor.new(dat)
|
287
286
|
end
|
288
287
|
it { expect(subject.to_hash.keys.length).to eq(1) }
|
289
|
-
it { expect(subject.to_hash.keys.first).to eq(7680284070840) }
|
288
|
+
it { expect(subject.to_hash.keys.first).to eq('7680284070840') }
|
290
289
|
it { expect(subject.to_hash.values.first[:vat]).to eq("2") }
|
291
290
|
it { expect(subject.to_hash.values.first[:price]).to eq("9.40") }
|
292
291
|
it { expect(subject.to_hash.values.first[:pub_price]).to eq("16.30") }
|
293
|
-
it { expect(subject.to_hash.values.first[:pharmacode]).to eq(
|
292
|
+
it { expect(subject.to_hash.values.first[:pharmacode]).to eq('0921929') }
|
294
293
|
end
|
295
294
|
context 'when SELSUN Shampoo is given' do
|
296
295
|
subject do
|
@@ -300,11 +299,11 @@ describe Oddb2xml::ZurroseExtractor do
|
|
300
299
|
Oddb2xml::ZurroseExtractor.new(dat)
|
301
300
|
end
|
302
301
|
it { expect(subject.to_hash.keys.length).to eq(1) }
|
303
|
-
it { expect(subject.to_hash.keys.first).to eq(7680172330681) }
|
302
|
+
it { expect(subject.to_hash.keys.first).to eq('7680172330681') }
|
304
303
|
it { expect(subject.to_hash.values.first[:vat]).to eq("2") }
|
305
304
|
it { expect(subject.to_hash.values.first[:price]).to eq("15.76") }
|
306
305
|
it { expect(subject.to_hash.values.first[:pub_price]).to eq("24.30") }
|
307
|
-
it { expect(subject.to_hash.values.first[:pharmacode]).to eq(
|
306
|
+
it { expect(subject.to_hash.values.first[:pharmacode]).to eq('0020652') }
|
308
307
|
it 'should set the correct SALECD cmut code' do expect(subject.to_hash.values.first[:cmut]).to eq("2") end
|
309
308
|
end
|
310
309
|
context 'when SOFRADEX is given' do
|
@@ -325,7 +324,7 @@ describe Oddb2xml::ZurroseExtractor do
|
|
325
324
|
DAT
|
326
325
|
Oddb2xml::ZurroseExtractor.new(dat, true)
|
327
326
|
end
|
328
|
-
it { expect(subject.to_hash.keys.first).to eq(
|
327
|
+
it { expect(subject.to_hash.keys.first).to eq('9999998807890') }
|
329
328
|
it "should set the correct SALECD cmut code" do expect(subject.to_hash.values.first[:cmut]).to eq("2") end
|
330
329
|
it "should set the correct SALECD description" do expect(subject.to_hash.values.first[:description]).to match(/Ethacridin lactat 1.+ 100ml/) end
|
331
330
|
end
|
@@ -340,15 +339,10 @@ describe Oddb2xml::ZurroseExtractor do
|
|
340
339
|
expect(ethacridin[:description]).to eq("EPIMINERAL Paste 20 g")
|
341
340
|
end
|
342
341
|
|
343
|
-
|
344
|
-
ethacridin = subject.to_hash.values.find{ |x| /Ethacridin/i.match(x[:description])}
|
345
|
-
expect(ethacridin[:description]).to eq("Ethacridin lactat 1‰ 100ml")
|
346
|
-
end
|
347
|
-
specials = { 'SEMPER Cookie' => 'SEMPER Cookie-O’s glutenfrei 150 g',
|
342
|
+
specials = { 'SEMPER Cookie' => "SEMPER Cookie-O's Biskuit glutenfrei 150 g",
|
348
343
|
'DermaSilk' => 'DermaSilk Set Body + Strumpfhöschen 24-36 Mon (98)',
|
349
|
-
'after sting Roll-on' => '
|
350
|
-
'Inkosport' => 'Inkosport Activ Pro 80 Himbeer - Joghurt Ds 750g',
|
351
|
-
'Ethacridin' => "Ethacridin lactat 1‰ 100ml",}.
|
344
|
+
'after sting Roll-on' => "CER'8 after sting Roll-on 20 ml",
|
345
|
+
'Inkosport' => 'Inkosport Activ Pro 80 Himbeer - Joghurt Ds 750g',}.
|
352
346
|
each{ | key, value |
|
353
347
|
it "should set the correct #{key} description" do
|
354
348
|
item = subject.to_hash.values.find{ |x| /#{key}/i.match(x[:description])}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://raw.githubusercontent.com/elexis/elexis-3-base/master/at.medevit.ch.artikelstamm/lib/Elexis_Artikelstamm_v4.xsd","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"],"User-Agent":["Ruby"]}},"response":{"status":{"code":404,"message":"Not Found"},"headers":{"Content-Security-Policy":["default-src 'none'; style-src 'unsafe-inline'"],"Strict-Transport-Security":["max-age=31536000"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["deny"],"X-Xss-Protection":["1; mode=block"],"X-Github-Request-Id":["11B6:11D0:7EA698:867BAB:59A06234"],"Content-Length":["15"],"Accept-Ranges":["bytes"],"Date":["Fri, 25 Aug 2017 17:45:24 GMT"],"Via":["1.1 varnish"],"Connection":["keep-alive"],"X-Served-By":["cache-hhn1525-HHN"],"X-Cache":["MISS"],"X-Cache-Hits":["0"],"X-Timer":["S1503683125.865361,VS0,VE128"],"Vary":["Authorization,Accept-Encoding"],"Access-Control-Allow-Origin":["*"],"X-Fastly-Request-Id":["e2578bd895aaaaa3661fd670d44258eefb954679"],"Expires":["Fri, 25 Aug 2017 17:50:24 GMT"],"Source-Age":["0"]},"body":{"encoding":"UTF-8","base64_string":"NDA0OiBOb3QgRm91bmQK\n"},"http_version":null},"recorded_at":"Fri, 25 Aug 2017 17:45:25 GMT"}],"recorded_with":"VCR 3.0.3"}
|
data/spec/options_spec.rb
CHANGED
@@ -7,182 +7,189 @@ describe Oddb2xml::Options do
|
|
7
7
|
include ServerMockHelper
|
8
8
|
Default_opts = {
|
9
9
|
:fi => false,
|
10
|
-
:adr => false,
|
11
10
|
:address => false,
|
11
|
+
:artikelstamm => false,
|
12
12
|
:nonpharma => false,
|
13
13
|
:extended => false,
|
14
14
|
:compress_ext => nil,
|
15
15
|
:format => :xml,
|
16
16
|
:calc => false,
|
17
17
|
:tag_suffix => nil,
|
18
|
-
:debug => false,
|
19
18
|
:ean14 => false,
|
20
19
|
:skip_download=> false,
|
21
20
|
:log => false,
|
22
21
|
:percent => nil,
|
22
|
+
:use_ra11zip => nil,
|
23
23
|
}
|
24
|
-
context 'when default_opts' do
|
25
|
-
specify { expect(Oddb2xml::Options.default_opts).to eq Default_opts }
|
26
|
-
end
|
27
|
-
|
28
24
|
context 'when no options is passed' do
|
29
|
-
|
30
|
-
|
25
|
+
test_opts = Oddb2xml::Options.parse('-a')
|
26
|
+
opts = Default_opts.clone
|
27
|
+
opts[:nonpharma] = true
|
28
|
+
specify { expect(test_opts).to eq opts }
|
31
29
|
end
|
32
30
|
|
33
31
|
context 'when -c tar.gz option is given' do
|
34
|
-
|
35
|
-
|
36
|
-
specify { expect(options.opts[:compress_ext]).to eq('tar.gz') }
|
32
|
+
test_opts = Oddb2xml::Options.parse('-c tar.gz')
|
33
|
+
specify { expect(test_opts[:compress_ext]).to eq('tar.gz') }
|
37
34
|
expected = Default_opts.clone
|
38
35
|
expected[:compress_ext] = 'tar.gz'
|
39
|
-
specify { expect(
|
36
|
+
specify { expect(test_opts).to eq expected }
|
40
37
|
end
|
41
38
|
|
42
39
|
context 'when -c tar.gz option --skip-download is given' do
|
43
|
-
|
44
|
-
options.parser.parse!('-c tar.gz --skip-download'.split(' '))
|
40
|
+
test_opts = Oddb2xml::Options.parse('-c tar.gz --skip-download')
|
45
41
|
expected = Default_opts.clone
|
46
42
|
expected[:compress_ext] = 'tar.gz'
|
47
43
|
expected[:skip_download] = true
|
48
|
-
specify { expect(
|
44
|
+
specify { expect(test_opts).to eq expected }
|
49
45
|
end
|
50
46
|
|
51
47
|
context 'when -c tar.gz option --skip-download is given' do
|
52
|
-
|
53
|
-
options.parser.parse!('-c tar.gz --skip-download'.split(' '))
|
48
|
+
test_opts = Oddb2xml::Options.parse('-c tar.gz --skip-download')
|
54
49
|
expected = Default_opts.clone
|
55
50
|
expected[:compress_ext] = 'tar.gz'
|
56
51
|
expected[:skip_download] = true
|
57
|
-
specify { expect(
|
52
|
+
specify { expect(test_opts).to eq expected }
|
58
53
|
end
|
59
54
|
|
60
55
|
context 'when -a is given' do
|
61
|
-
|
62
|
-
options.parser.parse!('-a'.split(' '))
|
56
|
+
test_opts = Oddb2xml::Options.parse('-a')
|
63
57
|
expected = Default_opts.clone
|
64
58
|
expected[:nonpharma] = true
|
65
|
-
specify { expect(
|
59
|
+
specify { expect(test_opts).to eq expected }
|
66
60
|
end
|
67
61
|
|
68
62
|
context 'when --append is given' do
|
69
|
-
|
70
|
-
options.parser.parse!('--append '.split(' '))
|
63
|
+
test_opts = Oddb2xml::Options.parse('--append ')
|
71
64
|
expected = Default_opts.clone
|
72
65
|
expected[:nonpharma] = true
|
73
|
-
specify { expect(
|
66
|
+
specify { expect(test_opts).to eq expected }
|
74
67
|
end
|
75
68
|
|
76
69
|
context 'when -e is given' do
|
77
|
-
|
78
|
-
options.parser.parse!('-e'.split(' '))
|
70
|
+
test_opts = Oddb2xml::Options.parse('-e')
|
79
71
|
expected = Default_opts.clone
|
80
72
|
expected[:extended] = true
|
81
73
|
expected[:nonpharma] = true
|
82
74
|
expected[:calc] = true
|
83
75
|
expected[:price] = :zurrose
|
84
|
-
specify { expect(
|
76
|
+
specify { expect(test_opts).to eq expected }
|
85
77
|
end
|
86
78
|
|
87
79
|
context 'when -e -I 80 is given' do
|
88
|
-
|
89
|
-
options.parser.parse!('-e -I 80'.split(' '))
|
80
|
+
test_opts = Oddb2xml::Options.parse('-e -I 80')
|
90
81
|
expected = Default_opts.clone
|
91
82
|
expected[:extended] = true
|
92
83
|
expected[:nonpharma] = true
|
93
84
|
expected[:calc] = true
|
94
85
|
expected[:price] = :zurrose
|
95
86
|
expected[:percent] = 80
|
96
|
-
specify { expect(
|
87
|
+
specify { expect(test_opts).to eq expected }
|
97
88
|
end
|
98
89
|
|
99
90
|
context 'when -f dat is given' do
|
100
|
-
|
101
|
-
options.parser.parse!('-f dat'.split(' '))
|
91
|
+
test_opts = Oddb2xml::Options.parse('-f dat')
|
102
92
|
expected = Default_opts.clone
|
103
93
|
expected[:format] = :dat
|
104
|
-
specify { expect(
|
94
|
+
specify { expect(test_opts).to eq expected }
|
105
95
|
end
|
106
96
|
|
107
97
|
context 'when -f dat -I 80 is given' do
|
108
|
-
|
109
|
-
options.parser.parse!('-f dat -I 80'.split(' '))
|
98
|
+
test_opts = Oddb2xml::Options.parse('-f dat -I 80')
|
110
99
|
expected = Default_opts.clone
|
111
100
|
expected[:format] = :dat
|
112
101
|
expected[:percent] = 80
|
113
102
|
expected[:price] = :zurrose
|
114
|
-
specify { expect(
|
103
|
+
specify { expect(test_opts).to eq expected }
|
115
104
|
end
|
116
105
|
|
117
106
|
context 'when -I 80 is given' do
|
118
|
-
|
119
|
-
options.parser.parse!('-I 80'.split(' '))
|
107
|
+
test_opts = Oddb2xml::Options.parse('-I 80')
|
120
108
|
expected = Default_opts.clone
|
121
109
|
expected[:percent] = 80
|
122
110
|
expected[:price] = :zurrose
|
123
|
-
specify { expect(
|
111
|
+
specify { expect(test_opts).to eq expected }
|
124
112
|
end
|
125
113
|
|
126
114
|
context 'when -o is given' do
|
127
|
-
|
128
|
-
options.parser.parse!('-o'.split(' '))
|
115
|
+
test_opts = Oddb2xml::Options.parse('-o')
|
129
116
|
expected = Default_opts.clone
|
130
117
|
expected[:fi] = true
|
131
|
-
specify { expect(
|
118
|
+
specify { expect(test_opts).to eq expected }
|
132
119
|
end
|
133
120
|
|
134
121
|
context 'when -i ean14 is given' do
|
135
|
-
|
136
|
-
options.parser.parse!('-i ean14'.split(' '))
|
122
|
+
test_opts = Oddb2xml::Options.parse('-i ean14')
|
137
123
|
expected = Default_opts.clone
|
138
124
|
expected[:ean14] = true
|
139
|
-
specify { expect(
|
125
|
+
specify { expect(test_opts).to eq expected }
|
140
126
|
end
|
141
127
|
|
142
128
|
context 'when -x addr is given' do
|
143
|
-
|
144
|
-
options.parser.parse!('-x addr'.split(' '))
|
129
|
+
test_opts = Oddb2xml::Options.parse('-x addr')
|
145
130
|
expected = Default_opts.clone
|
146
131
|
expected[:address] = true
|
147
|
-
specify { expect(
|
132
|
+
specify { expect(test_opts).to eq expected }
|
148
133
|
end
|
149
134
|
|
150
135
|
context 'when -p zurrose is given' do
|
151
|
-
|
152
|
-
options.parser.parse!('-p zurrose'.split(' '))
|
136
|
+
test_opts = Oddb2xml::Options.parse('-p zurrose')
|
153
137
|
expected = Default_opts.clone
|
154
138
|
expected[:price] = :zurrose
|
155
|
-
specify { expect(
|
139
|
+
specify { expect(test_opts).to eq expected }
|
156
140
|
end
|
157
141
|
|
158
142
|
context 'when -o fi --log is given' do
|
159
|
-
|
160
|
-
options.parser.parse!('-o fi --log'.split(' '))
|
143
|
+
test_opts = Oddb2xml::Options.parse('-o fi --log')
|
161
144
|
expected = Default_opts.clone
|
162
145
|
expected[:fi] = true
|
163
146
|
expected[:log] = true
|
164
|
-
specify { expect(
|
147
|
+
specify { expect(test_opts).to eq expected }
|
165
148
|
end
|
166
149
|
|
167
150
|
context 'when -a nonpharma -p zurrose is given' do
|
168
|
-
|
169
|
-
|
170
|
-
options.parser.parse!(args) # .should raise
|
151
|
+
args = '-a nonpharma -p zurrose'
|
152
|
+
test_opts = Oddb2xml::Options.parse(args) # .should raise
|
171
153
|
expected = Default_opts.clone
|
172
154
|
expected[:price] = :zurrose
|
173
155
|
expected[:nonpharma] = true
|
174
|
-
specify { expect(
|
175
|
-
|
156
|
+
specify { expect(test_opts).to eq expected }
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'when --artikelstamm is given' do
|
160
|
+
args = '--artikelstamm'
|
161
|
+
test_opts = Oddb2xml::Options.parse(args) # .should raise
|
162
|
+
expected = Default_opts.clone
|
163
|
+
expected[:price] = :zurrose
|
164
|
+
expected[:extended] = true
|
165
|
+
expected[:artikelstamm] = true
|
166
|
+
specify { expect(test_opts).to eq expected }
|
167
|
+
end
|
168
|
+
|
169
|
+
context 'when -c tar.gz option is given' do
|
170
|
+
test_opts = Oddb2xml::Options.parse('-c tar.gz')
|
171
|
+
specify { expect(test_opts[:compress_ext]).to eq('tar.gz') }
|
172
|
+
expected = Default_opts.clone
|
173
|
+
expected[:compress_ext] = 'tar.gz'
|
174
|
+
specify { expect(test_opts).to eq expected }
|
176
175
|
end
|
177
176
|
|
178
|
-
context 'when
|
179
|
-
|
180
|
-
args = '--calc'.split(' ')
|
181
|
-
options.parser.parse!(args) # .should raise
|
177
|
+
context 'when --use-ra11zip is given' do
|
178
|
+
test_opts = Oddb2xml::Options.parse(' --use-ra11zip some_other_zip')
|
182
179
|
expected = Default_opts.clone
|
183
|
-
expected[:
|
184
|
-
|
185
|
-
|
180
|
+
expected[:use_ra11zip] = 'some_other_zip'
|
181
|
+
# expected[:price] = :zurrose
|
182
|
+
# expected[:extended] = true
|
183
|
+
# expected[:artikelstamm] = true
|
184
|
+
specify { expect(test_opts).to eq expected }
|
186
185
|
end
|
186
|
+
|
187
|
+
context 'when -t swiss is given' do
|
188
|
+
test_opts = Oddb2xml::Options.parse('-t swiss')
|
189
|
+
expected = Default_opts.clone
|
190
|
+
expected[:tag_suffix] = 'swiss'
|
191
|
+
specify { expect(test_opts).to eq expected }
|
192
|
+
end
|
193
|
+
|
187
194
|
end
|
188
195
|
|