oddb2xml 2.2.4 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -79,7 +79,7 @@ def common_after
79
79
  Dir.chdir(@savedDir) if @savedDir and File.directory?(@savedDir)
80
80
  VCR.eject_cassette
81
81
  vcr_file = File.expand_path(File.join(Oddb2xml::SpecData, '..', 'fixtures', 'vcr_cassettes', 'oddb2xml.json'))
82
- puts "Pretty-printing #{vcr_file} exists? #{File.exists?(vcr_file)}"
82
+ puts "Pretty-printing #{vcr_file} exists? #{File.exists?(vcr_file)}" if $VERBOSE
83
83
  vcr_file_new = vcr_file.sub('.json', '.new')
84
84
  cmd = "cat #{vcr_file} | python -mjson.tool > #{vcr_file_new}"
85
85
  res = system(cmd)
@@ -343,34 +343,6 @@ describe Oddb2xml::EphaDownloader do
343
343
  end
344
344
  end
345
345
 
346
- describe Oddb2xml::BMUpdateDownloader do
347
- include ServerMockHelper
348
- before(:all) do VCR.eject_cassette end
349
- before(:each) do
350
- @downloader = Oddb2xml::BMUpdateDownloader.new
351
- VCR.insert_cassette('oddb2xml', :tag => :BMUpdate)
352
- common_before
353
- end
354
- after(:each) do
355
- common_after
356
- end
357
-
358
- it_behaves_like 'any downloader'
359
- context 'when download is called' do
360
- let(:txt) {
361
- @downloader.download
362
- }
363
- it 'should read txt as String' do
364
- txt.should be_a String
365
- txt.bytes.should_not nil
366
- end
367
- it 'should clean up current directory' do
368
- expect { txt }.not_to raise_error
369
- # File.exist?('oddb2xml_files_bm_update.txt').should eq(false)
370
- end
371
- end
372
- end
373
-
374
346
  describe Oddb2xml::BagXmlDownloader do
375
347
  include ServerMockHelper
376
348
  before(:all) do VCR.eject_cassette end
@@ -4,19 +4,7 @@ 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
- describe Oddb2xml::BMUpdateExtractor do
8
- before(:all) { VCR.eject_cassette; VCR.insert_cassette('oddb2xml') }
9
- after(:all) { VCR.eject_cassette }
10
- before(:all) {
11
- VCR.eject_cassette; VCR.insert_cassette('oddb2xml')
12
- @downloader = Oddb2xml::BMUpdateDownloader.new
13
- xml = @downloader.download
14
- @items = Oddb2xml::BMUpdateExtractor.new(xml).to_hash
15
- }
16
- it "should have at least one item" do
17
- expect(@items.size).not_to eq 0
18
- end
19
- end
7
+ NR_PACKS = 17
20
8
 
21
9
  describe Oddb2xml::LppvExtractor do
22
10
  before(:all) {
@@ -76,7 +64,7 @@ describe Oddb2xml::RefdataExtractor do
76
64
  :company_name=>"Desitin Pharma GmbH",
77
65
  :company_ean=>"7601001320451"}
78
66
  expect(item_found).to eq(expected)
79
- expect(@pharma_items.size).to eq(15)
67
+ expect(@pharma_items.size).to eq(NR_PACKS)
80
68
  end
81
69
  end
82
70
  context 'should handle nonpharma articles' do
@@ -165,44 +153,72 @@ describe Oddb2xml::SwissmedicInfoExtractor do
165
153
  end
166
154
 
167
155
  describe Oddb2xml::SwissmedicExtractor do
168
- before(:all) { VCR.eject_cassette; VCR.insert_cassette('oddb2xml') }
156
+ before(:all) { VCR.eject_cassette; VCR.insert_cassette('oddb2xml'); cleanup_directories_before_run }
169
157
  after(:all) { VCR.eject_cassette }
170
158
  context 'when transfer.dat is empty' do
171
159
  subject { Oddb2xml::SwissmedicInfoExtractor.new("") }
172
160
  it { expect(subject.to_hash).to be_empty }
173
161
  end
174
162
  context 'can parse swissmedic_package.xlsx' do
175
- it {
176
- cleanup_directories_before_run
177
- filename = File.join(Oddb2xml::SpecData, 'swissmedic_package.xlsx')
178
- @packs = Oddb2xml::SwissmedicExtractor.new(filename, :package).to_hash
179
- expect(@packs.size).to eq(15)
180
- serocytol = nil
181
- @packs.each{|pack|
182
- serocytol = pack[1] if pack[1][:ean] == '7680620690084'
183
- }
184
- expect(serocytol[:atc_code]).to eq('N03AX14')
185
- expect(serocytol[:swissmedic_category]).to eq('B')
186
- expect(serocytol[:package_size]).to eq('30')
187
- expect(serocytol[:einheit_swissmedic]).to eq('Tablette(n)')
188
- expect(serocytol[:substance_swissmedic]).to eq('levetiracetamum')
189
- }
163
+ before(:all) do
164
+ @filename = File.join(Oddb2xml::SpecData, 'swissmedic_package.xlsx')
165
+ @packs = Oddb2xml::SwissmedicExtractor.new(@filename, :package).to_hash
166
+ end
167
+
168
+ def get_pack_by_ean13(ean13)
169
+ @packs.find{|pack| pack[1][:ean] == ean13.to_s }[1]
170
+ end
171
+ it 'should have correct nr of packages' do
172
+ expect(@packs.size).to eq(NR_PACKS)
173
+ end
174
+
175
+ it 'should have serocytol' do
176
+ serocytol = get_pack_by_ean13(7680620690084)
177
+ expect(serocytol[:atc_code]).to eq('N03AX14')
178
+ expect(serocytol[:swissmedic_category]).to eq('B')
179
+ expect(serocytol[:package_size]).to eq('30')
180
+ expect(serocytol[:einheit_swissmedic]).to eq('Tablette(n)')
181
+ expect(serocytol[:substance_swissmedic]).to eq('levetiracetamum')
182
+ end
183
+
184
+ it 'should have a correct insulin (gentechnik)' do
185
+ humalog = get_pack_by_ean13(7680532900196)
186
+ expect(humalog[:atc_code]).to eq('A10AB04')
187
+ expect(humalog[:swissmedic_category]).to eq('B')
188
+ expect(humalog[:package_size]).to eq('1 x 10 ml')
189
+ expect(humalog[:einheit_swissmedic]).to eq('Flasche(n)')
190
+ expect(humalog[:substance_swissmedic]).to eq('insulinum lisprum')
191
+ expect(humalog[:gen_production]).to eq('X')
192
+ expect(humalog[:insulin_category]).to eq('Insulinanalog: schnell wirkend')
193
+ expect(humalog[:drug_index]).to eq('')
194
+ end
195
+
196
+ it 'should have a correct drug information' do
197
+ humalog = get_pack_by_ean13(7680555610041)
198
+ expect(humalog[:atc_code]).to eq('N07BC06')
199
+ expect(humalog[:swissmedic_category]).to eq('A')
200
+ expect(humalog[:sequence_name]).to eq('Diaphin 10 g i.v., Injektionspräparat')
201
+ expect(humalog[:gen_production]).to eq('')
202
+ expect(humalog[:insulin_category]).to eq('')
203
+ expect(humalog[:drug_index]).to eq('d')
204
+ end
190
205
  end
206
+
191
207
  context 'can parse swissmedic_fridge.xlsx' do
192
208
  it {
193
- filename = File.join(Oddb2xml::SpecData, 'swissmedic_fridge.xlsx')
194
- @packs = Oddb2xml::SwissmedicExtractor.new(filename, :fridge).to_arry
195
- expect(@packs.size >= 17).to eq true
209
+ @filename = File.join(Oddb2xml::SpecData, 'swissmedic_fridge.xlsx')
210
+ @packs = Oddb2xml::SwissmedicExtractor.new(@filename, :fridge).to_arry
211
+ expect(@packs.size).to eq NR_PACKS
196
212
  expect(@packs[0]).to eq("58618")
197
213
  expect(@packs[1]).to eq("00696")
198
214
  }
199
215
  end
200
216
  context 'can parse swissmedic_orphans.xls' do
201
217
  it {
202
- filename = File.join(Oddb2xml::SpecData, 'swissmedic_orphan.xlsx')
203
- expect(File.exists?(filename)).to eq(true), "File #{filename} must exists"
204
- @packs = Oddb2xml::SwissmedicExtractor.new(filename, :orphan).to_arry
205
- expect(@packs.size >= 78).to eq true
218
+ @filename = File.join(Oddb2xml::SpecData, 'swissmedic_orphan.xlsx')
219
+ expect(File.exists?(@filename)).to eq(true), "File #{@filename} must exists"
220
+ @packs = Oddb2xml::SwissmedicExtractor.new(@filename, :orphan).to_arry
221
+ expect(@packs.size).to eq 78
206
222
  expect(@packs.first).to eq("62132")
207
223
  expect(@packs[7]).to eq("00687")
208
224
  }