60 lines
1.8 KiB
Ruby
60 lines
1.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe MaxMindRelease do
|
|
|
|
include UsesTempFiles
|
|
|
|
GEOISP_124 = 'geoisp_124.csv'
|
|
|
|
in_directory_with_file(GEOISP_124)
|
|
|
|
before(:all) do
|
|
@original_storage = MaxMindReleaseUploader.storage = :fog
|
|
end
|
|
|
|
after(:all) do
|
|
MaxMindReleaseUploader.storage = @original_storage
|
|
end
|
|
|
|
let(:zipfile) {fake_geo_124_zip(File.new(GEOISP_124))}
|
|
let(:release) {FactoryGirl.create(:max_mind_release)}
|
|
|
|
before(:each) do
|
|
content_for_file('abc')
|
|
|
|
Dir.mkdir(APP_CONFIG.max_mind_working_dir) unless Dir.exists?(APP_CONFIG.max_mind_working_dir)
|
|
end
|
|
|
|
it "unzip" do
|
|
result = release.unzip(APP_CONFIG.max_mind_working_dir, zipfile.path)
|
|
result.include?('GeoIPISP.csv').should be_true
|
|
output = result['GeoIPISP.csv']
|
|
File.exists?(output).should be_true
|
|
IO.read(output).should == 'abc'
|
|
end
|
|
|
|
it "downloads", aws: true do
|
|
uploader = MaxMindReleaseUploader.new(release, :geo_ip_124_url)
|
|
zipfile.open
|
|
uploader.store!(zipfile) # uploads the file to s3
|
|
release.save!
|
|
release[:geo_ip_124_url].should == File.join(release.store_dir, 'geo_ip_124_url.zip')
|
|
release[:geo_ip_124_md5].should == Digest::MD5.file(zipfile).hexdigest
|
|
release[:geo_ip_124_size].should == zipfile.size
|
|
|
|
downloaded_filename = release.download(release.dated_working_dir, :geo_ip_124_url, release[:geo_ip_124_md5])
|
|
|
|
Digest::MD5.file(downloaded_filename ).hexdigest.should == Digest::MD5.file(zipfile).hexdigest
|
|
end
|
|
|
|
describe "import" do
|
|
it "succeeds" do
|
|
release.touch
|
|
dataset = dataset_to_tmp_files
|
|
release.import_to_database(dataset[:geo_ip_124_files], dataset[:geo_ip_134_files], dataset[:iso3166], dataset[:region_codes])
|
|
release.imported.should be_true
|
|
release.imported_at.should_not be_nil
|
|
end
|
|
end
|
|
|
|
end |