From f927858932b701faeea621b84c1e1b6391c2df61 Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Tue, 10 Jul 2018 12:21:01 -0700 Subject: [PATCH] Add more tests for fgdb and gpkg unpacking --- .../importer/lib/importer/fgdb_splitter.rb | 2 +- services/importer/lib/importer/unp.rb | 3 ++- .../spec/fixtures/filegeodatabase.zip | Bin 0 -> 23204 bytes .../importer/spec/fixtures/geopackage.zip | Bin 0 -> 4216 bytes services/importer/spec/unit/unp_spec.rb | 24 ++++++++++++++++++ 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 services/importer/spec/fixtures/filegeodatabase.zip create mode 100644 services/importer/spec/fixtures/geopackage.zip diff --git a/services/importer/lib/importer/fgdb_splitter.rb b/services/importer/lib/importer/fgdb_splitter.rb index 2657680b5b..0d90459690 100644 --- a/services/importer/lib/importer/fgdb_splitter.rb +++ b/services/importer/lib/importer/fgdb_splitter.rb @@ -67,7 +67,7 @@ module CartoDB .select { |line| line =~ /^\d+/ } .map { |line| line.match /\d+: \"?(.*?)\"? \(/ } .map { |line| line[1] } - + fgdb_layers.each do |layer| stdout, stderr, status = Open3.capture3(OGRINFO_BINARY, '-so', source_file.fullpath, layer) number_rows = stdout.split("\n") diff --git a/services/importer/lib/importer/unp.rb b/services/importer/lib/importer/unp.rb index ed90a829e8..e4f65525b1 100644 --- a/services/importer/lib/importer/unp.rb +++ b/services/importer/lib/importer/unp.rb @@ -80,7 +80,8 @@ module CartoDB next if subpath =~ /\.version\.txt/i fullpath = normalize("#{path}/#{subpath}") - (crawl(fullpath, files) and next) if File.directory?(fullpath) + (crawl(fullpath, files) and next) if + File.directory?(fullpath) and !subpath =~ /\.gdb$/i files.push(fullpath) end diff --git a/services/importer/spec/fixtures/filegeodatabase.zip b/services/importer/spec/fixtures/filegeodatabase.zip new file mode 100644 index 0000000000000000000000000000000000000000..14f5e8431274599bee7010adb501f8ea3a3628af GIT binary patch literal 23204 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ǤHNiG(J;>o%EK!5bouw; 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 L7vt?azi0mfF|Gx@ literal 0 HcmV?d00001 diff --git a/services/importer/spec/unit/unp_spec.rb b/services/importer/spec/unit/unp_spec.rb index c5f2da387d..0de33e1e28 100644 --- a/services/importer/spec/unit/unp_spec.rb +++ b/services/importer/spec/unit/unp_spec.rb @@ -25,6 +25,28 @@ describe Unp do FileUtils.rm_rf(unp.temporary_directory) end + it 'extracts the contents of a GPKG file' do + zipfile = zipfile_factory(filename: 'geopackage.zip') + unp = Unp.new + + unp.run(zipfile) + Dir.entries(unp.temporary_directory).should include('geopackage.gpkg') + unp.source_files.length.should eq 2 + (unp.source_files.map { |f| f.layer }).should eq ["pts", "lns"] + FileUtils.rm_rf(unp.temporary_directory) + end + + it 'extracts the contents of a FGDB file' do + zipfile = zipfile_factory(filename: 'filegeodatabase.zip') + unp = Unp.new + + unp.run(zipfile) + Dir.entries(unp.temporary_directory).should include('filegeodatabase.gdb') + unp.source_files.length.should eq 2 + (unp.source_files.map { |f| f.layer }).should eq ["pts", "lns"] + FileUtils.rm_rf(unp.temporary_directory) + end + it 'extracts the contents of a carto file with rar in the name (see #11954)' do zipfile = zipfile_factory(filename: 'this_is_not_a_rar_file.carto') unp = Unp.new @@ -160,6 +182,8 @@ describe Unp do unp.supported?('foo.doc').should eq false unp.supported?('foo.xls').should eq true + unp.supported?('foo.gpkg').should eq true + unp.supported?('foo.gdb').should eq true end end