aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/api/v1/imports_controller.rb4
-rw-r--r--app/controllers/api/v1/internals/netex_imports_controller.rb8
-rw-r--r--app/controllers/api/v1/netex_imports_controller.rb2
-rw-r--r--app/controllers/exports_controller.rb136
-rw-r--r--app/controllers/import_messages_controller.rb8
-rw-r--r--app/controllers/import_resources_controller.rb2
-rw-r--r--app/controllers/import_tasks_controller.rb69
-rw-r--r--app/controllers/imports_controller.rb8
-rw-r--r--app/controllers/statuses_controller.rb2
-rw-r--r--app/decorators/import/base_decorator.rb (renamed from app/decorators/import_decorator.rb)4
-rw-r--r--app/models/concerns/iev_interfaces/message.rb9
-rw-r--r--app/models/concerns/iev_interfaces/resource.rb9
-rw-r--r--app/models/concerns/iev_interfaces/task.rb51
-rw-r--r--app/models/import.rb103
-rw-r--r--app/models/import/base.rb73
-rw-r--r--app/models/import/gtfs.rb (renamed from app/models/gtfs_import.rb)2
-rw-r--r--app/models/import/message.rb8
-rw-r--r--app/models/import/netex.rb (renamed from app/models/netex_import.rb)2
-rw-r--r--app/models/import/resource.rb8
-rw-r--r--app/models/import/workbench.rb (renamed from app/models/workbench_import.rb)2
-rw-r--r--app/models/import_message.rb8
-rw-r--r--app/models/import_resource.rb11
-rw-r--r--app/models/workbench.rb4
-rw-r--r--app/policies/import/base_policy.rb (renamed from app/policies/import_policy.rb)2
-rw-r--r--app/views/compliance_control_sets/_filters.html.slim2
-rw-r--r--app/workers/workbench_import_worker.rb4
-rw-r--r--config/initializers/apartment.rb79
-rw-r--r--db/migrate/20171106111448_update_import_message_criticity_type_to_string.rb4
-rw-r--r--db/migrate/20180306152953_update_imports_names.rb8
-rw-r--r--db/schema.rb9
-rw-r--r--spec/controllers/api/v1/imports_controller_spec.rb2
-rw-r--r--spec/controllers/vehicle_journey_imports_controller_spec.rb5
-rw-r--r--spec/factories/imports/import_messages.rb (renamed from spec/factories/import_messages.rb)2
-rw-r--r--spec/factories/imports/import_resources.rb (renamed from spec/factories/import_resources.rb)2
-rw-r--r--spec/factories/imports/imports.rb (renamed from spec/factories/imports.rb)4
-rw-r--r--spec/factories/imports/netex_imports.rb (renamed from spec/factories/netex_imports.rb)4
-rw-r--r--spec/factories/imports/workbench_imports.rb (renamed from spec/factories/workbench_imports.rb)2
-rw-r--r--spec/models/export_log_message_spec.rb16
-rw-r--r--spec/models/gtfs_export_spec.rb62
-rw-r--r--spec/models/gtfs_import_spec.rb2
-rw-r--r--spec/models/import/netex_import_spec.rb40
-rw-r--r--spec/models/import_message_spec.rb2
-rw-r--r--spec/models/import_resource_spec.rb2
-rw-r--r--spec/models/import_service_spec.rb19
-rw-r--r--spec/models/import_spec.rb18
-rw-r--r--spec/models/netex_export_spec.rb16
-rw-r--r--spec/models/netex_import_spec.rb39
-rw-r--r--spec/policies/import_policy_spec.rb2
-rw-r--r--spec/requests/api/v1/netex_import_spec.rb8
-rw-r--r--spec/services/parent_notifier_spec.rb12
50 files changed, 415 insertions, 485 deletions
diff --git a/app/controllers/api/v1/imports_controller.rb b/app/controllers/api/v1/imports_controller.rb
index 3d7f4ca79..dc2df0697 100644
--- a/app/controllers/api/v1/imports_controller.rb
+++ b/app/controllers/api/v1/imports_controller.rb
@@ -1,11 +1,11 @@
class Api::V1::ImportsController < Api::V1::IbooController
- defaults :resource_class => WorkbenchImport
+ defaults :resource_class => Import::Workbench
belongs_to :workbench
def create
args = workbench_import_params.merge(creator: 'Webservice')
@import = parent.workbench_imports.create(args)
- if @import.valid?
+ if @import.valid?
create!
else
render json: { status: "error", messages: @import.errors.full_messages }
diff --git a/app/controllers/api/v1/internals/netex_imports_controller.rb b/app/controllers/api/v1/internals/netex_imports_controller.rb
index c8e33f7b8..c2b7b20cc 100644
--- a/app/controllers/api/v1/internals/netex_imports_controller.rb
+++ b/app/controllers/api/v1/internals/netex_imports_controller.rb
@@ -25,13 +25,13 @@ module Api
private
def find_netex_import
- @netex_import = NetexImport.find(params[:id])
+ @netex_import = Import::Netex.find(params[:id])
rescue ActiveRecord::RecordNotFound
render json: {
- status: "error",
+ status: "error",
message: "Record not found"
}
- finish_action!
+ finish_action!
end
def find_workbench
@@ -52,7 +52,7 @@ module Api
attributes = attributes.merge referential_id: @new_referential.id
- @netex_import = NetexImport.new attributes
+ @netex_import = Import::Netex.new attributes
@netex_import.save!
unless @netex_import.referential
diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb
index d86c1fcd8..2654fa088 100644
--- a/app/controllers/api/v1/netex_imports_controller.rb
+++ b/app/controllers/api/v1/netex_imports_controller.rb
@@ -34,7 +34,7 @@ module Api
attributes = attributes.merge referential_id: @new_referential.id
- @netex_import = NetexImport.new attributes
+ @netex_import = Import::Netex.new attributes
@netex_import.save!
unless @netex_import.referential
diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb
index ccc163e34..095720aa0 100644
--- a/app/controllers/exports_controller.rb
+++ b/app/controllers/exports_controller.rb
@@ -3,72 +3,72 @@ require 'open-uri'
class ExportsController < ChouetteController
include ReferentialSupport
- defaults :resource_class => Export
-
- respond_to :html, :only => [:show, :index, :destroy, :exported_file]
- respond_to :js, :only => [:index]
- belongs_to :referential
-
- def index
- begin
- index!
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t(error.locale_for_error)
- redirect_to referential_path(@referential)
- end
- end
-
- def show
- begin
- show!
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t(error.locale_for_error)
- redirect_to referential_path(@referential)
- end
- end
-
- def destroy
- begin
- destroy!
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t(error.locale_for_error)
- redirect_to referential_path(@referential)
- end
- end
-
- def exported_file
- # WARNING : files under 10kb in size get treated as StringIO by OpenUri
- # http://stackoverflow.com/questions/10496874/why-does-openuri-treat-files-under-10kb-in-size-as-stringio
- OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
- OpenURI::Buffer.const_set 'StringMax', 0
- begin
- send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename }
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t(error.locale_for_error)
- redirect_to referential_path(@referential)
- end
- end
-
- protected
-
- def export_service
- ExportService.new(@referential)
- end
-
- def resource
- @export ||= export_service.find( params[:id] )
- @line_items = @export.report.line_items
- if @line_items.size > 500
- @line_items = @line_items.paginate(page: params[:page], per_page: 20)
- end
- @export
- end
-
- def collection
- @exports ||= export_service.all.sort_by{ |export| export.created_at }.reverse.paginate(:page => params[:page])
- end
+ # defaults :resource_class => Export
+ #
+ # respond_to :html, :only => [:show, :index, :destroy, :exported_file]
+ # respond_to :js, :only => [:index]
+ # belongs_to :referential
+ #
+ # def index
+ # begin
+ # index!
+ # rescue Ievkit::Error, Faraday::Error => error
+ # logger.error("Iev failure : #{error.message}")
+ # flash[:error] = t(error.locale_for_error)
+ # redirect_to referential_path(@referential)
+ # end
+ # end
+ #
+ # def show
+ # begin
+ # show!
+ # rescue Ievkit::Error, Faraday::Error => error
+ # logger.error("Iev failure : #{error.message}")
+ # flash[:error] = t(error.locale_for_error)
+ # redirect_to referential_path(@referential)
+ # end
+ # end
+ #
+ # def destroy
+ # begin
+ # destroy!
+ # rescue Ievkit::Error, Faraday::Error => error
+ # logger.error("Iev failure : #{error.message}")
+ # flash[:error] = t(error.locale_for_error)
+ # redirect_to referential_path(@referential)
+ # end
+ # end
+ #
+ # def exported_file
+ # # WARNING : files under 10kb in size get treated as StringIO by OpenUri
+ # # http://stackoverflow.com/questions/10496874/why-does-openuri-treat-files-under-10kb-in-size-as-stringio
+ # OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
+ # OpenURI::Buffer.const_set 'StringMax', 0
+ # begin
+ # send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename }
+ # rescue Ievkit::Error, Faraday::Error => error
+ # logger.error("Iev failure : #{error.message}")
+ # flash[:error] = t(error.locale_for_error)
+ # redirect_to referential_path(@referential)
+ # end
+ # end
+ #
+ # protected
+ #
+ # def export_service
+ # ExportService.new(@referential)
+ # end
+ #
+ # def resource
+ # @export ||= export_service.find( params[:id] )
+ # @line_items = @export.report.line_items
+ # if @line_items.size > 500
+ # @line_items = @line_items.paginate(page: params[:page], per_page: 20)
+ # end
+ # @export
+ # end
+ #
+ # def collection
+ # @exports ||= export_service.all.sort_by{ |export| export.created_at }.reverse.paginate(:page => params[:page])
+ # end
end
diff --git a/app/controllers/import_messages_controller.rb b/app/controllers/import_messages_controller.rb
index 4f8fe7a25..5e39445fb 100644
--- a/app/controllers/import_messages_controller.rb
+++ b/app/controllers/import_messages_controller.rb
@@ -1,8 +1,8 @@
class ImportMessagesController < ChouetteController
- defaults resource_class: ImportMessage, collection_name: 'import_messages', instance_name: 'import_message'
+ defaults resource_class: Import::Message, collection_name: 'import_messages', instance_name: 'import_message'
respond_to :csv
- belongs_to :import, :parent_class => Import do
- belongs_to :import_resource, :parent_class => ImportResource
+ belongs_to :import, :parent_class => Import::Base do
+ belongs_to :import_resource, :parent_class => Import::Resource
end
@@ -20,7 +20,7 @@ class ImportMessagesController < ChouetteController
end
def parent
- @import_resource ||= ImportResource.find(params[:import_resource_id])
+ @import_resource ||= Import::Resource.find(params[:import_resource_id])
end
end
diff --git a/app/controllers/import_resources_controller.rb b/app/controllers/import_resources_controller.rb
index ea78394a1..6d1977e0c 100644
--- a/app/controllers/import_resources_controller.rb
+++ b/app/controllers/import_resources_controller.rb
@@ -1,5 +1,5 @@
class ImportResourcesController < ChouetteController
- defaults resource_class: ImportResource, collection_name: 'import_resources', instance_name: 'import_resource'
+ defaults resource_class: Import::Resource, collection_name: 'import_resources', instance_name: 'import_resource'
respond_to :html
belongs_to :import
diff --git a/app/controllers/import_tasks_controller.rb b/app/controllers/import_tasks_controller.rb
deleted file mode 100644
index 1a349087d..000000000
--- a/app/controllers/import_tasks_controller.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-class ImportTasksController < ChouetteController
- include ReferentialSupport
- defaults :resource_class => ImportTask
-
- respond_to :html, :only => [:new, :create]
- respond_to :js, :only => [:new, :create]
- belongs_to :referential
-
- def new
- @available_imports = available_imports
- begin
- new!
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.exception.default')
- redirect_to referential_path(@referential)
- end
- end
-
- def create
- @available_imports = available_imports
- begin
- create! do |success, failure|
- success.html { redirect_to referential_imports_path(@referential) }
- end
- rescue Ievkit::Error, Faraday::Error => error
- logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.exception.default')
- redirect_to referential_path(@referential)
- end
- end
-
- protected
-
- def available_imports
- import_task_parameters = params[:import_task]
-
- if import_task_parameters.present?
- @available_imports = [
- import_task_parameters[:data_format] == "neptune" ? build_resource : NeptuneImport.new(:referential_id => @referential.id ),
- import_task_parameters[:data_format] == "netex" ? build_resource : NetexImport.new(:referential_id => @referential.id ),
- import_task_parameters[:data_format] == "gtfs" ? build_resource : GtfsImport.new(:referential_id => @referential.id )
- ]
- else
- @available_imports = [
- NeptuneImport.new(:referential_id => @referential.id ),
- NetexImport.new(:referential_id => @referential.id ),
- GtfsImport.new(:referential_id => @referential.id )
- ]
- end
- end
-
- def build_resource
- @import_task ||= if params[:import_task].present?
- import_task_parameters = params[:import_task]
- case import_task_parameters[:data_format]
- when "neptune"
- NeptuneImport.new(import_task_parameters)
- when "netex"
- @import_task = NetexImport.new(import_task_parameters)
- when "gtfs"
- @import_task = GtfsImport.new(import_task_parameters)
- end
- else
- @import_task = NeptuneImport.new
- end
- end
-
-end
diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb
index 7a999d657..3ebbeb665 100644
--- a/app/controllers/imports_controller.rb
+++ b/app/controllers/imports_controller.rb
@@ -3,7 +3,7 @@ class ImportsController < ChouetteController
include RansackDateFilter
before_action only: [:index] { set_date_time_params("started_at", DateTime) }
skip_before_action :authenticate_user!, only: [:download]
- defaults resource_class: Import, collection_name: 'imports', instance_name: 'import'
+ defaults resource_class: Import::Base, collection_name: 'imports', instance_name: 'import'
before_action :ransack_status_params, only: [:index]
respond_to :html
belongs_to :workbench
@@ -37,7 +37,7 @@ class ImportsController < ChouetteController
protected
def collection
- scope = parent.imports.where(type: "WorkbenchImport")
+ scope = parent.imports.where(type: "Import::Workbench")
scope = self.ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_started_at_in)
@@ -54,14 +54,14 @@ class ImportsController < ChouetteController
def ransack_status_params
if params[:q]
- return params[:q].delete(:status_eq_any) if params[:q][:status_eq_any].empty? || ( (Import.status.values & params[:q][:status_eq_any]).length >= 4 )
+ return params[:q].delete(:status_eq_any) if params[:q][:status_eq_any].empty? || ( (Import::Base.status.values & params[:q][:status_eq_any]).length >= 4 )
params[:q][:status_eq_any].push("new", "running") if params[:q][:status_eq_any].include?("pending")
params[:q][:status_eq_any].push("aborted", "canceled") if params[:q][:status_eq_any].include?("failed")
end
end
def build_resource
- @import ||= WorkbenchImport.new(*resource_params) do |import|
+ @import ||= Import::Workbench.new(*resource_params) do |import|
import.workbench = parent
import.creator = current_user.name
end
diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb
index e38a92982..152da4fa2 100644
--- a/app/controllers/statuses_controller.rb
+++ b/app/controllers/statuses_controller.rb
@@ -5,7 +5,7 @@ class StatusesController < ChouetteController
status = {
referentials_blocked: Referential.blocked.count,
- imports_blocked: Import.blocked.count,
+ imports_blocked: Import::Base.blocked.count,
compliance_check_sets_blocked: ComplianceCheckSet.blocked.count
}
status[:status] = global_status status
diff --git a/app/decorators/import_decorator.rb b/app/decorators/import/base_decorator.rb
index 1964365ae..8c10479c6 100644
--- a/app/decorators/import_decorator.rb
+++ b/app/decorators/import/base_decorator.rb
@@ -1,5 +1,5 @@
-class ImportDecorator < AF83::Decorator
- decorates Import
+class Import::BaseDecorator < AF83::Decorator
+ decorates Import::Base
set_scope { context[:workbench] }
diff --git a/app/models/concerns/iev_interfaces/message.rb b/app/models/concerns/iev_interfaces/message.rb
new file mode 100644
index 000000000..ad41e98b7
--- /dev/null
+++ b/app/models/concerns/iev_interfaces/message.rb
@@ -0,0 +1,9 @@
+module IevInterfaces::Message
+ extend ActiveSupport::Concern
+
+ included do
+ extend Enumerize
+ enumerize :criticity, in: %i(info warning error)
+ validates :criticity, presence: true
+ end
+end
diff --git a/app/models/concerns/iev_interfaces/resource.rb b/app/models/concerns/iev_interfaces/resource.rb
new file mode 100644
index 000000000..7f8c3eefd
--- /dev/null
+++ b/app/models/concerns/iev_interfaces/resource.rb
@@ -0,0 +1,9 @@
+module IevInterfaces::Resource
+ extend ActiveSupport::Concern
+
+ included do
+ extend Enumerize
+ enumerize :status, in: %i(OK ERROR WARNING IGNORED), scope: true
+ validates_presence_of :name, :resource_type, :reference
+ end
+end
diff --git a/app/models/concerns/iev_interfaces/task.rb b/app/models/concerns/iev_interfaces/task.rb
new file mode 100644
index 000000000..2eb0c532f
--- /dev/null
+++ b/app/models/concerns/iev_interfaces/task.rb
@@ -0,0 +1,51 @@
+module IevInterfaces::Task
+ extend ActiveSupport::Concern
+
+ included do
+ belongs_to :parent, polymorphic: true
+ belongs_to :workbench, class_name: "::Workbench"
+ belongs_to :referential
+
+ extend Enumerize
+ enumerize :status, in: %w(new pending successful warning failed running aborted canceled), scope: true, default: :new
+
+ validates :name, presence: true
+ validates_presence_of :workbench, :creator
+
+ has_many :messages, class_name: messages_class_name, dependent: :destroy, foreign_key: :import_id
+ has_many :resources, class_name: resources_class_name, dependent: :destroy, foreign_key: :import_id
+
+ scope :where_started_at_in, ->(period_range) do
+ where('started_at BETWEEN :begin AND :end', begin: period_range.begin, end: period_range.end)
+ end
+
+ scope :blocked, -> { where('created_at < ? AND status = ?', 4.hours.ago, 'running') }
+ end
+
+ module ClassMethods
+ def launched_statuses
+ %w(new pending)
+ end
+
+ def failed_statuses
+ %w(failed aborted canceled)
+ end
+
+ def finished_statuses
+ %w(successful failed warning aborted canceled)
+ end
+
+ def abort_old
+ where(
+ 'created_at < ? AND status NOT IN (?)',
+ 4.hours.ago,
+ finished_statuses
+ ).update_all(status: 'aborted')
+ end
+ end
+
+ def notify_parent
+ parent.child_change
+ update(notified_parent_at: DateTime.now)
+ end
+end
diff --git a/app/models/import.rb b/app/models/import.rb
deleted file mode 100644
index adad39b59..000000000
--- a/app/models/import.rb
+++ /dev/null
@@ -1,103 +0,0 @@
-class Import < ActiveRecord::Base
- mount_uploader :file, ImportUploader
- belongs_to :workbench
- belongs_to :referential
-
- belongs_to :parent, polymorphic: true
-
- has_many :messages, class_name: "ImportMessage", dependent: :destroy
- has_many :resources, class_name: "ImportResource", dependent: :destroy
- has_many :children, foreign_key: :parent_id, class_name: "Import", dependent: :destroy
-
- scope :where_started_at_in, ->(period_range) do
- where('started_at BETWEEN :begin AND :end', begin: period_range.begin, end: period_range.end)
- end
-
- scope :blocked, -> { where('created_at < ? AND status = ?', 4.hours.ago, 'running') }
-
- extend Enumerize
- enumerize :status, in: %w(new pending successful warning failed running aborted canceled), scope: true, default: :new
-
- validates :name, presence: true
- validates :file, presence: true
- validates_presence_of :workbench, :creator
-
- before_create :initialize_fields
-
- def self.model_name
- ActiveModel::Name.new Import, Import, "Import"
- end
-
- def children_succeedeed
- children.with_status(:successful, :warning).count
- end
-
- def self.launched_statuses
- %w(new pending)
- end
-
- def self.failed_statuses
- %w(failed aborted canceled)
- end
-
- def self.finished_statuses
- %w(successful failed warning aborted canceled)
- end
-
- def self.abort_old
- where(
- 'created_at < ? AND status NOT IN (?)',
- 4.hours.ago,
- finished_statuses
- ).update_all(status: 'aborted')
- end
-
- def notify_parent
- parent.child_change
- update(notified_parent_at: DateTime.now)
- end
-
- def child_change
- return if self.class.finished_statuses.include?(status)
-
- update_status
- update_referentials
- end
-
- def update_status
- status =
- if children.where(status: self.class.failed_statuses).count > 0
- 'failed'
- elsif children.where(status: "warning").count > 0
- 'warning'
- elsif children.where(status: "successful").count == children.count
- 'successful'
- end
-
- attributes = {
- current_step: children.count,
- status: status
- }
-
- if self.class.finished_statuses.include?(status)
- attributes[:ended_at] = Time.now
- end
-
- update attributes
- end
-
- def update_referentials
- return unless self.class.finished_statuses.include?(status)
-
- children.each do |import|
- import.referential.update(ready: true) if import.referential
- end
- end
-
- private
-
- def initialize_fields
- self.token_download = SecureRandom.urlsafe_base64
- end
-
-end
diff --git a/app/models/import/base.rb b/app/models/import/base.rb
new file mode 100644
index 000000000..0e1eae2c0
--- /dev/null
+++ b/app/models/import/base.rb
@@ -0,0 +1,73 @@
+class Import::Base < ActiveRecord::Base
+ self.table_name = "imports"
+
+ def self.messages_class_name
+ "Import::Message"
+ end
+
+ def self.resources_class_name
+ "Import::Resource"
+ end
+
+ include IevInterfaces::Task
+
+ mount_uploader :file, ImportUploader
+
+ has_many :children, foreign_key: :parent_id, class_name: "Import::Base", dependent: :destroy
+
+ validates :file, presence: true
+
+ before_create :initialize_fields
+
+ def self.model_name
+ ActiveModel::Name.new Import::Base, Import::Base, "Import::Base"
+ end
+
+ def children_succeedeed
+ children.with_status(:successful, :warning).count
+ end
+
+ def child_change
+ return if self.class.finished_statuses.include?(status)
+
+ update_status
+ update_referentials
+ end
+
+ def update_status
+ status =
+ if children.where(status: self.class.failed_statuses).count > 0
+ 'failed'
+ elsif children.where(status: "warning").count > 0
+ 'warning'
+ elsif children.where(status: "successful").count == children.count
+ 'successful'
+ end
+
+ attributes = {
+ current_step: children.count,
+ status: status
+ }
+
+ if self.class.finished_statuses.include?(status)
+ attributes[:ended_at] = Time.now
+ end
+
+ update attributes
+ end
+
+ def update_referentials
+ return unless self.class.finished_statuses.include?(status)
+
+ children.each do |import|
+ import.referential.update(ready: true) if import.referential
+ end
+ end
+
+ private
+
+ def initialize_fields
+ self.token_download = SecureRandom.urlsafe_base64
+ end
+
+end
diff --git a/app/models/gtfs_import.rb b/app/models/import/gtfs.rb
index d09ca4cb3..03cf49e60 100644
--- a/app/models/gtfs_import.rb
+++ b/app/models/import/gtfs.rb
@@ -1,5 +1,5 @@
require 'net/http'
-class GtfsImport < Import
+class Import::Gtfs < Import::Base
before_destroy :destroy_non_ready_referential
after_commit :launch_java_import, on: :create
diff --git a/app/models/import/message.rb b/app/models/import/message.rb
new file mode 100644
index 000000000..c1900a718
--- /dev/null
+++ b/app/models/import/message.rb
@@ -0,0 +1,8 @@
+class Import::Message < ActiveRecord::Base
+ self.table_name = :import_messages
+
+ include IevInterfaces::Message
+
+ belongs_to :import, class_name: Import::Base
+ belongs_to :resource, class_name: Import::Resource
+end
diff --git a/app/models/netex_import.rb b/app/models/import/netex.rb
index b21af3408..a4bf0920d 100644
--- a/app/models/netex_import.rb
+++ b/app/models/import/netex.rb
@@ -1,5 +1,5 @@
require 'net/http'
-class NetexImport < Import
+class Import::Netex < Import::Base
before_destroy :destroy_non_ready_referential
after_commit :launch_java_import, on: :create
diff --git a/app/models/import/resource.rb b/app/models/import/resource.rb
new file mode 100644
index 000000000..73be04d0e
--- /dev/null
+++ b/app/models/import/resource.rb
@@ -0,0 +1,8 @@
+class Import::Resource < ActiveRecord::Base
+ self.table_name = :import_resources
+
+ include IevInterfaces::Resource
+
+ belongs_to :import, class_name: Import::Base
+ has_many :messages, class_name: "ImportMessage", foreign_key: :resource_id
+end
diff --git a/app/models/workbench_import.rb b/app/models/import/workbench.rb
index 27f53a44f..f6e15cb89 100644
--- a/app/models/workbench_import.rb
+++ b/app/models/import/workbench.rb
@@ -1,4 +1,4 @@
-class WorkbenchImport < Import
+class Import::Workbench < Import::Base
after_commit :launch_worker, :on => :create
def launch_worker
diff --git a/app/models/import_message.rb b/app/models/import_message.rb
deleted file mode 100644
index de70c35d1..000000000
--- a/app/models/import_message.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-class ImportMessage < ActiveRecord::Base
- extend Enumerize
- belongs_to :import
- belongs_to :resource, class_name: ImportResource
- enumerize :criticity, in: %i(info warning error)
-
- validates :criticity, presence: true
-end
diff --git a/app/models/import_resource.rb b/app/models/import_resource.rb
deleted file mode 100644
index 55e752e74..000000000
--- a/app/models/import_resource.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-class ImportResource < ActiveRecord::Base
- belongs_to :import
-
- extend Enumerize
- enumerize :status, in: %i(OK ERROR WARNING IGNORED), scope: true
-
- validates_presence_of :name, :resource_type, :reference
-
- has_many :messages, class_name: "ImportMessage", foreign_key: :resource_id
-
-end
diff --git a/app/models/workbench.rb b/app/models/workbench.rb
index b6f90c7dc..44415f102 100644
--- a/app/models/workbench.rb
+++ b/app/models/workbench.rb
@@ -13,8 +13,8 @@ class Workbench < ActiveRecord::Base
has_many :companies, through: :line_referential
has_many :group_of_lines, through: :line_referential
has_many :stop_areas, through: :stop_area_referential
- has_many :imports
- has_many :workbench_imports
+ has_many :imports, class_name: Import::Base
+ has_many :workbench_imports, class_name: Import::Workbench
has_many :compliance_check_sets
has_many :compliance_control_sets
has_many :merges
diff --git a/app/policies/import_policy.rb b/app/policies/import/base_policy.rb
index 512bfc8ac..62345e452 100644
--- a/app/policies/import_policy.rb
+++ b/app/policies/import/base_policy.rb
@@ -1,4 +1,4 @@
-class ImportPolicy < ApplicationPolicy
+class Import::BasePolicy < ApplicationPolicy
class Scope < Scope
def resolve
scope
diff --git a/app/views/compliance_control_sets/_filters.html.slim b/app/views/compliance_control_sets/_filters.html.slim
index 4348defac..5cf282559 100644
--- a/app/views/compliance_control_sets/_filters.html.slim
+++ b/app/views/compliance_control_sets/_filters.html.slim
@@ -11,7 +11,7 @@
= f.input :organisation_name_eq_any, collection: organisations_filters_values, as: :check_boxes, label: false, label_method: lambda {|w| ("<span>#{w.name}</span>").html_safe}, required: false, wrapper_html: {class: 'checkbox_list'}
.form-group.togglable class=filter_item_class(params[:q], :updated_at)
- = f.label Import.human_attribute_name(:updated_at), required: false, class: 'control-label'
+ = f.label Import::Base.human_attribute_name(:updated_at), required: false, class: 'control-label'
.filter_menu
= f.simple_fields_for :updated_at do |p|
= p.input :start_date, as: :date, label: false, wrapper_html: {class: 'date smart_date filter_menu-item'}, default: @begin_range, include_blank: @begin_range ? false : true
diff --git a/app/workers/workbench_import_worker.rb b/app/workers/workbench_import_worker.rb
index 53cbb222a..fd2a888f0 100644
--- a/app/workers/workbench_import_worker.rb
+++ b/app/workers/workbench_import_worker.rb
@@ -12,7 +12,7 @@ class WorkbenchImportWorker
def perform(import_id)
@entries = 0
- @workbench_import ||= WorkbenchImport.find(import_id)
+ @workbench_import ||= Import::Workbench.find(import_id)
workbench_import.update(status: 'running', started_at: Time.now)
zip_service = ZipService.new(downloaded, allowed_lines)
@@ -44,7 +44,6 @@ class WorkbenchImportWorker
raise
end
-
def upload_entry_group entry, element_count
update_object_state entry, element_count.succ
return unless entry.ok?
@@ -80,7 +79,6 @@ class WorkbenchImportWorker
File.unlink(eg_file.path)
end
-
# Queries
# =======
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index f5fb8cd5e..53b27006a 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -18,72 +18,73 @@ Apartment.configure do |config|
# config.excluded_models = %w{Tenant}
#
config.excluded_models = [
- 'Referential',
- 'ReferentialMetadata',
- 'ReferentialSuite',
- 'Organisation',
- 'User',
'Api::V1::ApiKey',
- 'StopAreaReferential',
- 'StopAreaReferentialMembership',
- 'StopAreaReferentialSync',
- 'StopAreaReferentialSyncMessage',
- 'Chouette::StopArea',
- 'LineReferential',
- 'LineReferentialMembership',
- 'LineReferentialSync',
- 'LineReferentialSyncMessage',
- 'Chouette::Line',
- 'Chouette::GroupOfLine',
+ 'Calendar',
'Chouette::Company',
+ 'Chouette::GroupOfLine',
+ 'Chouette::Line',
'Chouette::Network',
- 'ReferentialCloning',
- 'Workbench',
- 'Workgroup',
+ 'Chouette::StopArea',
'CleanUp',
'CleanUpResult',
- 'Calendar',
- 'Import',
- 'NetexImport',
- 'WorkbenchImport',
- 'ImportMessage',
- 'ImportResource',
+ 'ComplianceCheck',
+ 'ComplianceCheckBlock',
+ 'ComplianceCheckMessage',
+ 'ComplianceCheckResource',
+ 'ComplianceCheckSet',
'ComplianceControl',
+ 'ComplianceControlBlock',
+ 'ComplianceControlSet',
+ 'CustomField',
'GenericAttributeControl::MinMax',
'GenericAttributeControl::Pattern',
'GenericAttributeControl::Uniqueness',
+ 'Import::Base',
+ 'Import::Gtfs',
+ 'Import::Message',
+ 'Import::Netex',
+ 'Import::Resource',
+ 'Import::Workbench',
'JourneyPatternControl::Duplicates',
'JourneyPatternControl::VehicleJourney',
'LineControl::Route',
+ 'LineReferential',
+ 'LineReferentialMembership',
+ 'LineReferentialSync',
+ 'LineReferentialSyncMessage',
+ 'Merge',
+ 'Organisation',
+ 'Referential',
+ 'ReferentialCloning',
+ 'ReferentialMetadata',
+ 'ReferentialSuite',
'RouteControl::Duplicates',
'RouteControl::JourneyPattern',
'RouteControl::MinimumLength',
'RouteControl::OmnibusJourneyPattern',
- 'RouteControl::OppositeRouteTerminus',
'RouteControl::OppositeRoute',
+ 'RouteControl::OppositeRouteTerminus',
'RouteControl::StopPointsInJourneyPattern',
'RouteControl::UnactivatedStopPoint',
'RouteControl::ZDLStopArea',
'RoutingConstraintZoneControl::MaximumLength',
'RoutingConstraintZoneControl::MinimumLength',
'RoutingConstraintZoneControl::UnactivatedStopPoint',
+ 'SimpleExporter',
+ 'SimpleImporter',
+ 'SimpleInterface',
+ 'StopAreaReferential',
+ 'StopAreaReferentialMembership',
+ 'StopAreaReferentialSync',
+ 'StopAreaReferentialSyncMessage',
+ 'User',
'VehicleJourneyControl::Delta',
- 'VehicleJourneyControl::WaitingTime',
'VehicleJourneyControl::Speed',
'VehicleJourneyControl::TimeTable',
'VehicleJourneyControl::VehicleJourneyAtStops',
- 'ComplianceControlSet',
- 'ComplianceControlBlock',
- 'ComplianceCheck',
- 'ComplianceCheckSet',
- 'ComplianceCheckBlock',
- 'ComplianceCheckResource',
- 'ComplianceCheckMessage',
- 'Merge',
- 'CustomField',
- 'SimpleInterface',
- 'SimpleImporter',
- 'SimpleExporter',
+ 'VehicleJourneyControl::WaitingTime',
+ 'Workbench',
+ 'Workgroup',
]
# use postgres schemas?
diff --git a/db/migrate/20171106111448_update_import_message_criticity_type_to_string.rb b/db/migrate/20171106111448_update_import_message_criticity_type_to_string.rb
index c14450387..a08a10b9a 100644
--- a/db/migrate/20171106111448_update_import_message_criticity_type_to_string.rb
+++ b/db/migrate/20171106111448_update_import_message_criticity_type_to_string.rb
@@ -7,10 +7,10 @@ class UpdateImportMessageCriticityTypeToString < ActiveRecord::Migration
when 0 then "info"
when 1 then "warning"
when 2 then "error"
- else
+ else
"info"
end
end
- ImportMessage.all.each { |im| im.update_attribute(:criticity, change_criticity_value(im.criticity)) }
+ Import::Message.all.each { |im| im.update_attribute(:criticity, change_criticity_value(im.criticity)) }
end
end
diff --git a/db/migrate/20180306152953_update_imports_names.rb b/db/migrate/20180306152953_update_imports_names.rb
new file mode 100644
index 000000000..086d5ce5a
--- /dev/null
+++ b/db/migrate/20180306152953_update_imports_names.rb
@@ -0,0 +1,8 @@
+class UpdateImportsNames < ActiveRecord::Migration
+ def change
+ Import::Base.all.pluck(:type).uniq.each do |type|
+ next if type =~ /^Imports/
+ Import::Base.where(type: type).update_all type: "Import::#{type.gsub 'Import', ''}"
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 276d7f79a..53dbaceb2 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,14 +11,13 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20180306135204) do
+ActiveRecord::Schema.define(version: 20180306152953) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
- enable_extension "hstore"
enable_extension "postgis"
+ enable_extension "hstore"
enable_extension "unaccent"
- enable_extension "objectid"
create_table "access_links", id: :bigserial, force: :cascade do |t|
t.integer "access_point_id", limit: 8
@@ -91,9 +90,9 @@ ActiveRecord::Schema.define(version: 20180306135204) do
t.integer "organisation_id", limit: 8
t.datetime "created_at"
t.datetime "updated_at"
+ t.integer "workgroup_id", limit: 8
t.integer "int_day_types"
t.date "excluded_dates", array: true
- t.integer "workgroup_id", limit: 8
end
add_index "calendars", ["organisation_id"], name: "index_calendars_on_organisation_id", using: :btree
@@ -120,7 +119,6 @@ ActiveRecord::Schema.define(version: 20180306135204) do
t.datetime "updated_at"
t.date "end_date"
t.string "date_type"
- t.string "mode"
end
add_index "clean_ups", ["referential_id"], name: "index_clean_ups_on_referential_id", using: :btree
@@ -755,7 +753,6 @@ ActiveRecord::Schema.define(version: 20180306135204) do
t.datetime "created_at"
t.datetime "updated_at"
t.string "objectid_format"
- t.string "registration_number_format"
end
create_table "stop_areas", id: :bigserial, force: :cascade do |t|
diff --git a/spec/controllers/api/v1/imports_controller_spec.rb b/spec/controllers/api/v1/imports_controller_spec.rb
index 8077dd052..f7022115a 100644
--- a/spec/controllers/api/v1/imports_controller_spec.rb
+++ b/spec/controllers/api/v1/imports_controller_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe Api::V1::ImportsController, type: :controller do
it 'should be successful' do
expect {
post :create, workbench_id: workbench.id, workbench_import: {name: "test", file: file, creator: 'test'}, format: :json
- }.to change{WorkbenchImport.count}.by(1)
+ }.to change{Import::Workbench.count}.by(1)
expect(response).to be_success
end
end
diff --git a/spec/controllers/vehicle_journey_imports_controller_spec.rb b/spec/controllers/vehicle_journey_imports_controller_spec.rb
deleted file mode 100644
index 633f90b70..000000000
--- a/spec/controllers/vehicle_journey_imports_controller_spec.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'spec_helper'
-
-describe ImportTasksController, :type => :controller do
- login_user
-end
diff --git a/spec/factories/import_messages.rb b/spec/factories/imports/import_messages.rb
index 5d936679a..f5edf1685 100644
--- a/spec/factories/import_messages.rb
+++ b/spec/factories/imports/import_messages.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
- factory :import_message do
+ factory :import_message, class: Import::Message do
association :import
association :resource, factory: :import_resource
criticity :info
diff --git a/spec/factories/import_resources.rb b/spec/factories/imports/import_resources.rb
index 76afcc486..aaf7e3111 100644
--- a/spec/factories/import_resources.rb
+++ b/spec/factories/imports/import_resources.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
- factory :import_resource do
+ factory :import_resource, class: Import::Resource do
association :import
status :WARNING
sequence(:name) { |n| "Import resource #{n}" }
diff --git a/spec/factories/imports.rb b/spec/factories/imports/imports.rb
index e07447b60..cb7764cc6 100644
--- a/spec/factories/imports.rb
+++ b/spec/factories/imports/imports.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
- factory :import do
+ factory :import, class: Import::Base do
sequence(:name) { |n| "Import #{n}" }
current_step_id "MyString"
current_step_progress 1.5
@@ -16,7 +16,7 @@ FactoryGirl.define do
end
end
- factory :bad_import do
+ factory :bad_import, class: Import::Base do
sequence(:name) { |n| "Import #{n}" }
current_step_id "MyString"
current_step_progress 1.5
diff --git a/spec/factories/netex_imports.rb b/spec/factories/imports/netex_imports.rb
index b59267a0a..7ee6839e8 100644
--- a/spec/factories/netex_imports.rb
+++ b/spec/factories/imports/netex_imports.rb
@@ -1,7 +1,7 @@
FactoryGirl.define do
- factory :netex_import, class: NetexImport, parent: :import do
+ factory :netex_import, class: Import::Netex, parent: :import do
file { File.open(Rails.root.join('spec', 'fixtures', 'OFFRE_TRANSDEV_2017030112251.zip')) }
association :parent, factory: :workbench_import
-
+
end
end
diff --git a/spec/factories/workbench_imports.rb b/spec/factories/imports/workbench_imports.rb
index 466bfe688..5ed1ee4e5 100644
--- a/spec/factories/workbench_imports.rb
+++ b/spec/factories/imports/workbench_imports.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
- factory :workbench_import, class: WorkbenchImport, parent: :import do
+ factory :workbench_import, class: Import::Workbench, parent: :import do
file { File.open(Rails.root.join('spec', 'fixtures', 'OFFRE_TRANSDEV_2017030112251.zip')) }
end
end
diff --git a/spec/models/export_log_message_spec.rb b/spec/models/export_log_message_spec.rb
deleted file mode 100644
index 5ab32dec0..000000000
--- a/spec/models/export_log_message_spec.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-require 'spec_helper'
-
-describe ExportLogMessage, :type => :model do
-
- # describe "#attributes" do
-
- # subject { create :export_log_message }
-
- # it "should read json stored in database" do
- # subject.update_attribute :arguments, { "key" => "value"}
- # expect(subject.raw_attributes).to eq({ "key" => "value"}.to_json)
- # end
-
- # end
-
-end
diff --git a/spec/models/gtfs_export_spec.rb b/spec/models/gtfs_export_spec.rb
index ccc98e872..0ef3660f5 100644
--- a/spec/models/gtfs_export_spec.rb
+++ b/spec/models/gtfs_export_spec.rb
@@ -1,33 +1,33 @@
require 'spec_helper'
-describe GtfsExport, :type => :model do
-
- describe "#time_zone" do
-
- context "when exported data are not StopAreas" do
-
- before do
- subject.references_type = "network"
- end
-
- it "should be mandatory" do
- should validate_presence_of(:time_zone)
- end
-
- end
-
- context "when export data are StopArea" do
-
- before do
- subject.references_type = "stop_area"
- end
-
- it "should be mandatory" do
- should_not validate_presence_of(:time_zone)
- end
-
- end
-
- end
-
-end
+# describe GtfsExport, :type => :model do
+#
+# describe "#time_zone" do
+#
+# context "when exported data are not StopAreas" do
+#
+# before do
+# subject.references_type = "network"
+# end
+#
+# it "should be mandatory" do
+# should validate_presence_of(:time_zone)
+# end
+#
+# end
+#
+# context "when export data are StopArea" do
+#
+# before do
+# subject.references_type = "stop_area"
+# end
+#
+# it "should be mandatory" do
+# should_not validate_presence_of(:time_zone)
+# end
+#
+# end
+#
+# end
+#
+# end
diff --git a/spec/models/gtfs_import_spec.rb b/spec/models/gtfs_import_spec.rb
index 07cc1905d..5cb69332c 100644
--- a/spec/models/gtfs_import_spec.rb
+++ b/spec/models/gtfs_import_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-describe GtfsImport, :type => :model do
+describe Import::Gtfs, :type => :model do
# describe "#object_id_prefix" do
diff --git a/spec/models/import/netex_import_spec.rb b/spec/models/import/netex_import_spec.rb
index 8ffeed1f4..9b9f50117 100644
--- a/spec/models/import/netex_import_spec.rb
+++ b/spec/models/import/netex_import_spec.rb
@@ -1,4 +1,4 @@
-RSpec.describe NetexImport, type: [:model, :with_commit] do
+RSpec.describe Import::Netex, type: [:model, :with_commit] do
let( :boiv_iev_uri ){ URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{subject.id}")}
@@ -30,4 +30,42 @@ RSpec.describe NetexImport, type: [:model, :with_commit] do
end
end
+ describe "#destroy" do
+ it "must destroy its associated Referential if ready: false" do
+ workbench_import = create(:workbench_import)
+ referential_ready_false = create(:referential, ready: false)
+ referential_ready_true = create(:referential, ready: true)
+ create(
+ :netex_import,
+ parent: workbench_import,
+ referential: referential_ready_false
+ )
+ create(
+ :netex_import,
+ parent: workbench_import,
+ referential: referential_ready_true
+ )
+
+ workbench_import.destroy
+
+ expect(
+ Referential.where(id: referential_ready_false.id).exists?
+ ).to be false
+ expect(
+ Referential.where(id: referential_ready_true.id).exists?
+ ).to be true
+ end
+
+ it "doesn't try to destroy nil referentials" do
+ workbench_import = create(:workbench_import)
+ create(
+ :netex_import,
+ parent: workbench_import,
+ referential: nil
+ )
+
+ expect { workbench_import.destroy }.not_to raise_error
+ end
+ end
+
end
diff --git a/spec/models/import_message_spec.rb b/spec/models/import_message_spec.rb
index 2d8aac2b7..48e03a2cc 100644
--- a/spec/models/import_message_spec.rb
+++ b/spec/models/import_message_spec.rb
@@ -1,6 +1,6 @@
require 'rails_helper'
-RSpec.describe ImportMessage, :type => :model do
+RSpec.describe Import::Message, :type => :model do
it { should validate_presence_of(:criticity) }
it { should belong_to(:import) }
it { should belong_to(:resource) }
diff --git a/spec/models/import_resource_spec.rb b/spec/models/import_resource_spec.rb
index c88bb5dd2..7d2eab8f1 100644
--- a/spec/models/import_resource_spec.rb
+++ b/spec/models/import_resource_spec.rb
@@ -1,6 +1,6 @@
require 'rails_helper'
-RSpec.describe ImportResource, :type => :model do
+RSpec.describe Import::Resource, :type => :model do
it { should belong_to(:import) }
it { should enumerize(:status).in("OK", "ERROR", "WARNING", "IGNORED") }
diff --git a/spec/models/import_service_spec.rb b/spec/models/import_service_spec.rb
deleted file mode 100644
index e7ee062d6..000000000
--- a/spec/models/import_service_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'spec_helper'
-
-describe ImportService, :type => :model do
-
- let(:referential) { create(:referential, :slug => "test") }
-
- subject { ImportService.new(referential) }
-
- describe '.find' do
-
- it "should build an import with a scheduled job" do
- end
-
- it "should build an import with a terminated job" do
- end
-
- end
-
-end
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index 8b85f151b..cbc5907fa 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -1,4 +1,4 @@
-RSpec.describe Import, type: :model do
+RSpec.describe Import::Base, type: :model do
it { should belong_to(:referential) }
it { should belong_to(:workbench) }
@@ -39,7 +39,7 @@ RSpec.describe Import, type: :model do
)
current_import = create(:workbench_import, status: 'pending')
- Import.abort_old
+ Import::Base.abort_old
expect(current_import.reload.status).to eq('pending')
expect(old_import.reload.status).to eq('aborted')
@@ -54,7 +54,7 @@ RSpec.describe Import, type: :model do
created_at: 4.hours.ago - 1.minute
)
- Import.abort_old
+ Import::Base.abort_old
expect(import.reload.status).to eq('successful')
end
@@ -73,7 +73,7 @@ RSpec.describe Import, type: :model do
created_at: 4.hours.ago - 1.minute
)
- NetexImport.abort_old
+ Import::Netex.abort_old
expect(workbench_import.reload.status).to eq('pending')
expect(netex_import.reload.status).to eq('aborted')
@@ -88,25 +88,25 @@ RSpec.describe Import, type: :model do
netex_import.parent.destroy
expect(netex_import.parent).to be_destroyed
- expect(NetexImport.count).to eq(0)
+ expect(Import::Netex.count).to eq(0)
end
- it "must destroy all associated ImportMessages" do
+ it "must destroy all associated Import::Messages" do
import = create(:import)
create(:import_resource, import: import)
import.destroy
- expect(ImportResource.count).to eq(0)
+ expect(Import::Resource.count).to eq(0)
end
- it "must destroy all associated ImportResources" do
+ it "must destroy all associated Import::Resources" do
import = create(:import)
create(:import_message, import: import)
import.destroy
- expect(ImportMessage.count).to eq(0)
+ expect(Import::Message.count).to eq(0)
end
end
diff --git a/spec/models/netex_export_spec.rb b/spec/models/netex_export_spec.rb
index 1d09fa07f..345bf4d5a 100644
--- a/spec/models/netex_export_spec.rb
+++ b/spec/models/netex_export_spec.rb
@@ -1,10 +1,10 @@
require 'spec_helper'
-describe NetexExport, :type => :model do
-
- # describe '#export_options' do
- # subject { super().export_options }
- # it { is_expected.to include(:format => :netex) }
- # end
-
-end
+# describe NetexExport, :type => :model do
+#
+# # describe '#export_options' do
+# # subject { super().export_options }
+# # it { is_expected.to include(:format => :netex) }
+# # end
+#
+# end
diff --git a/spec/models/netex_import_spec.rb b/spec/models/netex_import_spec.rb
deleted file mode 100644
index c6051a869..000000000
--- a/spec/models/netex_import_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-RSpec.describe NetexImport, type: :model do
- describe "#destroy" do
- it "must destroy its associated Referential if ready: false" do
- workbench_import = create(:workbench_import)
- referential_ready_false = create(:referential, ready: false)
- referential_ready_true = create(:referential, ready: true)
- create(
- :netex_import,
- parent: workbench_import,
- referential: referential_ready_false
- )
- create(
- :netex_import,
- parent: workbench_import,
- referential: referential_ready_true
- )
-
- workbench_import.destroy
-
- expect(
- Referential.where(id: referential_ready_false.id).exists?
- ).to be false
- expect(
- Referential.where(id: referential_ready_true.id).exists?
- ).to be true
- end
-
- it "doesn't try to destroy nil referentials" do
- workbench_import = create(:workbench_import)
- create(
- :netex_import,
- parent: workbench_import,
- referential: nil
- )
-
- expect { workbench_import.destroy }.not_to raise_error
- end
- end
-end
diff --git a/spec/policies/import_policy_spec.rb b/spec/policies/import_policy_spec.rb
index 9c7fca8a5..f9effd21a 100644
--- a/spec/policies/import_policy_spec.rb
+++ b/spec/policies/import_policy_spec.rb
@@ -1,4 +1,4 @@
-RSpec.describe ImportPolicy, type: :policy do
+RSpec.describe Import::BasePolicy, type: :policy do
let( :record ){ build_stubbed :import }
before { stub_policy_scope(record) }
diff --git a/spec/requests/api/v1/netex_import_spec.rb b/spec/requests/api/v1/netex_import_spec.rb
index 8597c1d32..14dac9a25 100644
--- a/spec/requests/api/v1/netex_import_spec.rb
+++ b/spec/requests/api/v1/netex_import_spec.rb
@@ -1,4 +1,4 @@
-RSpec.describe "NetexImport", type: :request do
+RSpec.describe "Import::Netex", type: :request do
describe 'POST netex_imports' do
@@ -39,7 +39,7 @@ RSpec.describe "NetexImport", type: :request do
post_request.(netex_import: legal_attributes)
expect( response ).to be_success
expect( json_response_body ).to eq(
- 'id' => NetexImport.last.id,
+ 'id' => Import::Netex.last.id,
'referential_id' => Referential.last.id,
'workbench_id' => workbench.id
)
@@ -51,7 +51,7 @@ RSpec.describe "NetexImport", type: :request do
create(:line, objectid: 'STIF:CODIFLIGNE:Line:C00108', line_referential: workbench.line_referential)
create(:line, objectid: 'STIF:CODIFLIGNE:Line:C00109', line_referential: workbench.line_referential)
- expect{ post_request.(netex_import: legal_attributes) }.to change{NetexImport.count}.by(1)
+ expect{ post_request.(netex_import: legal_attributes) }.to change{Import::Netex.count}.by(1)
end
it 'creates a correct Referential', pending: 'see #5073' do
@@ -96,7 +96,7 @@ RSpec.describe "NetexImport", type: :request do
end
it 'does not create an Import object' do
- expect{ post_request.(netex_import: illegal_attributes) }.not_to change{Import.count}
+ expect{ post_request.(netex_import: illegal_attributes) }.not_to change{Import::Base.count}
end
it 'might not create a referential' do
diff --git a/spec/services/parent_notifier_spec.rb b/spec/services/parent_notifier_spec.rb
index ecf508fcd..d4ca73ab3 100644
--- a/spec/services/parent_notifier_spec.rb
+++ b/spec/services/parent_notifier_spec.rb
@@ -20,7 +20,7 @@ RSpec.describe ParentNotifier do
expect(netex_import).to receive(:notify_parent)
end
- ParentNotifier.new(Import).notify_when_finished(netex_imports)
+ ParentNotifier.new(Import::Base).notify_when_finished(netex_imports)
end
it "doesn't call #notify_parent if its `notified_parent_at` is set" do
@@ -33,7 +33,7 @@ RSpec.describe ParentNotifier do
expect(netex_import).not_to receive(:notify_parent)
- ParentNotifier.new(Import).notify_when_finished
+ ParentNotifier.new(Import::Base).notify_when_finished
end
end
@@ -47,7 +47,7 @@ RSpec.describe ParentNotifier do
)
expect(
- ParentNotifier.new(Import).objects_pending_notification
+ ParentNotifier.new(Import::Base).objects_pending_notification
).to eq([netex_import])
end
@@ -55,7 +55,7 @@ RSpec.describe ParentNotifier do
create(:import, parent: nil)
expect(
- ParentNotifier.new(Import).objects_pending_notification
+ ParentNotifier.new(Import::Base).objects_pending_notification
).to be_empty
end
@@ -70,7 +70,7 @@ RSpec.describe ParentNotifier do
end
expect(
- ParentNotifier.new(Import).objects_pending_notification
+ ParentNotifier.new(Import::Base).objects_pending_notification
).to be_empty
end
@@ -83,7 +83,7 @@ RSpec.describe ParentNotifier do
)
expect(
- ParentNotifier.new(Import).objects_pending_notification
+ ParentNotifier.new(Import::Base).objects_pending_notification
).to be_empty
end
end