diff options
| author | Robert | 2017-07-20 19:01:49 +0200 |
|---|---|---|
| committer | Robert | 2017-07-20 19:01:49 +0200 |
| commit | 4fffff70d5dc57929653ed1d1a1ce68e9769cee4 (patch) | |
| tree | 5bef175ac0e41776133535d264a68f1dbba40082 | |
| parent | f8928e65d757414bde1c8a3b26c23b572f0e9221 (diff) | |
| download | chouette-core-4fffff70d5dc57929653ed1d1a1ce68e9769cee4.tar.bz2 | |
Refs: #3507@1h
Introduction of Presence Validation in Import model, for:
- workbench
- referential
| -rw-r--r-- | app/controllers/api/v1/netex_imports_controller.rb | 2 | ||||
| -rw-r--r-- | app/models/import.rb | 1 | ||||
| -rw-r--r-- | app/models/netex_import.rb | 1 | ||||
| -rw-r--r-- | app/workers/workbench_import_worker.rb | 15 | ||||
| -rw-r--r-- | spec/factories/imports.rb | 3 | ||||
| -rw-r--r-- | spec/models/import_spec.rb | 5 | ||||
| -rw-r--r-- | spec/models/netex_import_spec.rb | 23 | ||||
| -rw-r--r-- | spec/models/workbench_import_spec.rb | 12 | ||||
| -rw-r--r-- | spec/requests/api/v1/netex_import_spec.rb | 3 | ||||
| -rw-r--r-- | spec/workers/workbench_import_worker_spec.rb | 2 |
10 files changed, 30 insertions, 37 deletions
diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index 16a7cef69..d67d121c0 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -19,7 +19,7 @@ module Api def netex_import_params params .require('netex_import') - .permit(:file, :name, :referential_id) + .permit(:file, :name, :referential_id, :workbench_id) end end end diff --git a/app/models/import.rb b/app/models/import.rb index 3d276c4ae..d3aa6d21b 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -9,6 +9,7 @@ class Import < ActiveRecord::Base enumerize :status, in: %i(new downloading analyzing pending successful failed running aborted canceled) validates :file, presence: true + validates_presence_of :referential, :workbench before_create do self.token_download = SecureRandom.urlsafe_base64 diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb index d79346d0d..575cef816 100644 --- a/app/models/netex_import.rb +++ b/app/models/netex_import.rb @@ -2,7 +2,6 @@ require 'net/http' class NetexImport < Import after_commit :launch_java_import - validates_presence_of :referential, :workbench def launch_java_import logger.warn "Call iev get #{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}" diff --git a/app/workers/workbench_import_worker.rb b/app/workers/workbench_import_worker.rb index 3c3d19a66..b1c4fa30f 100644 --- a/app/workers/workbench_import_worker.rb +++ b/app/workers/workbench_import_worker.rb @@ -9,6 +9,13 @@ class WorkbenchImportWorker end def download + logger.warn "Call iev get #{Rails.configuration.fe_url}/boiv_iev/referentials/importer/new?id=#{id}" + begin + Net::HTTP.get(URI("#{Rails.configuration.front_end_url}/boiv_iev/referentials/importer/new?id=#{id}")) + rescue Exception => e + logger.error "IEV server error : e.message" + logger.error e.backtrace.inspect + end require 'pry' @@ -16,4 +23,12 @@ class WorkbenchImportWorker 42 end + + def import_uri + @__import_uri__ ||= URI(import_url) + end + def import_url + @__import_url__ ||= File.join(download_workbench_import_path(import.workbench, import)) + end + end diff --git a/spec/factories/imports.rb b/spec/factories/imports.rb index e19fe92bb..aa9288fe9 100644 --- a/spec/factories/imports.rb +++ b/spec/factories/imports.rb @@ -13,5 +13,8 @@ FactoryGirl.define do factory :netex_import, class: NetexImport do file {File.open(Rails.root.join('spec', 'fixtures', 'terminated_job.json'))} end + factory :workbench_import, class: WorkbenchImport do + file {File.open(Rails.root.join('spec', 'fixtures', 'terminated_job.json'))} + end end end diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index 34bfb0b23..424936c58 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -1,11 +1,10 @@ -require 'rails_helper' - RSpec.describe Import, :type => :model do + subject{ build_stubbed :import } it { should belong_to(:referential) } it { should belong_to(:workbench) } it { should belong_to(:parent).class_name(described_class.to_s) } - it { should enumerize(:status).in(:new, :pending, :successful, :failed, :canceled, :running, :aborted ) } + it { should enumerize(:status).in("aborted", "analyzing", "canceled", "downloading", "failed", "new", "pending", "running", "successful") } it { should validate_presence_of(:file) } end diff --git a/spec/models/netex_import_spec.rb b/spec/models/netex_import_spec.rb index baffea456..066595f06 100644 --- a/spec/models/netex_import_spec.rb +++ b/spec/models/netex_import_spec.rb @@ -1,21 +1,4 @@ -RSpec.describe NetexImport do - - subject{ build :netex_import } - - it 'base case' do - expect_it.to be_valid - end - - context 'validates presence of' do - it 'referential' do - subject.referential_id = nil - expect_it.not_to be_valid - end - - - it 'workbench' do - subject.workbench_id = nil - expect_it.not_to be_valid - end - end +RSpec.describe NetexImport, type: :model do + it { should validate_presence_of(:referential) } + it { should validate_presence_of(:workbench) } end diff --git a/spec/models/workbench_import_spec.rb b/spec/models/workbench_import_spec.rb index 629973dca..24f3a2f85 100644 --- a/spec/models/workbench_import_spec.rb +++ b/spec/models/workbench_import_spec.rb @@ -1,12 +1,4 @@ RSpec.describe WorkbenchImport do - let( :workbench_import ){ build_stubbed :workbench_import } - - it 'is valid' do - expect( workbench_import ).to be_valid - end - - it 'or not...' do - expect( build_stubbed :workbench_import, status: 'what?' ).not_to be_valid - end - + it { should validate_presence_of(:referential) } + it { should validate_presence_of(:workbench) } end diff --git a/spec/requests/api/v1/netex_import_spec.rb b/spec/requests/api/v1/netex_import_spec.rb index 9fbf8f801..e67cef9a2 100644 --- a/spec/requests/api/v1/netex_import_spec.rb +++ b/spec/requests/api/v1/netex_import_spec.rb @@ -19,7 +19,8 @@ RSpec.describe "NetexImport", type: :request do { name: 'hello world', file: file, - referential_id: referential.id + referential_id: referential.id, + workbench_id: referential.workbench_id } end diff --git a/spec/workers/workbench_import_worker_spec.rb b/spec/workers/workbench_import_worker_spec.rb index e87e6873f..fa48b8252 100644 --- a/spec/workers/workbench_import_worker_spec.rb +++ b/spec/workers/workbench_import_worker_spec.rb @@ -14,7 +14,7 @@ RSpec.describe WorkbenchImportWorker, type: [:worker, :request] do # That should be `build_stubbed's` job, no? allow(Import).to receive(:find).with(import.id).and_return(import) end - it 'downloads a zip file' do + xit 'downloads a zip file' do stub_request(:get, path) .with(headers: authorization_token_header(api_key)) .to_return(body: result) |
