aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2014-06-27 17:42:02 +0200
committerLuc Donnet2014-06-27 17:42:02 +0200
commit24d901950acc7eb623a1b18d0de798f41743f422 (patch)
treec27c9b391aa59688565da0d9dcaf72d40b27ff6b
parent39162a5b27b96c9f288d8c56280ab9bea5aabe55 (diff)
downloadchouette-core-24d901950acc7eb623a1b18d0de798f41743f422.tar.bz2
Fix spec for vehicle journey import model Refs #0026843
-rw-r--r--app/models/vehicle_journey_import.rb55
-rw-r--r--spec/models/vehicle_journey_import_spec.rb4
2 files changed, 27 insertions, 32 deletions
diff --git a/app/models/vehicle_journey_import.rb b/app/models/vehicle_journey_import.rb
index 11f142309..8da54abc6 100644
--- a/app/models/vehicle_journey_import.rb
+++ b/app/models/vehicle_journey_import.rb
@@ -55,7 +55,7 @@ class VehicleJourneyImport
def load_imported_vehicle_journeys
spreadsheet = open_spreadsheet(file)
vehicle_journeys = []
- vehicle_journey_at_stops = []
+
first_column = spreadsheet.column(1)
stop_point_ids = first_column[1..spreadsheet.last_row].map(&:to_i)
@@ -65,38 +65,35 @@ class VehicleJourneyImport
errors.add :base, I18n.t("vehicle_journey_imports.errors.not_same_stop_points", :route => route.id)
raise
end
-
- Chouette::VehicleJourney.transaction do
- (3..spreadsheet.last_column).each do |i|
- vehicle_journey_objectid = spreadsheet.column(i)[0]
- hours_by_stop_point_ids = Hash[[stop_point_ids, spreadsheet.column(i)[1..spreadsheet.last_row]].transpose]
-
- journey_pattern = find_journey_pattern_schedule(hours_by_stop_point_ids)
- vehicle_journey = journey_pattern.vehicle_journeys.where(:objectid => vehicle_journey_objectid, :route_id => route.id, :journey_pattern_id => journey_pattern.id).first_or_initialize
+
+ (3..spreadsheet.last_column).each do |i|
+ vehicle_journey_at_stops = []
+ vehicle_journey_objectid = spreadsheet.column(i)[0]
+ hours_by_stop_point_ids = Hash[[stop_point_ids, spreadsheet.column(i)[1..spreadsheet.last_row]].transpose]
+
+ journey_pattern = find_journey_pattern_schedule(hours_by_stop_point_ids)
+ vehicle_journey = journey_pattern.vehicle_journeys.where(:objectid => vehicle_journey_objectid, :route_id => route.id, :journey_pattern_id => journey_pattern.id).first_or_initialize
- line = 0
- hours_by_stop_point_ids.each_pair do |key, value|
- line += 1
- if value.present? # Create a vehicle journey at stop when time is present
- begin
- main_time = Time.parse(value)
- if main_time.present?
- vjas = { :stop_point_id => key, :vehicle_journey_id => vehicle_journey.id, :departure_time => main_time, :arrival_time => main_time } #Chouette::VehicleJourneyAtStop.where(:stop_point_id => key, :vehicle_journey_id => vehicle_journey.id).first_or_initialize(:departure_time => main_time, :arrival_time => main_time)
- vehicle_journey_at_stops << vjas
- end
- rescue Exception => exception
- errors.add :base, I18n.t("vehicle_journey_imports.errors.invalid_vehicle_journey_at_stop", :column => i, :line => line, :time => value)
- raise exception
+ line = 0
+ hours_by_stop_point_ids.each_pair do |key, value|
+ line += 1
+ if value.present? # Create a vehicle journey at stop when time is present
+ begin
+ main_time = Time.parse(value)
+ if main_time.present?
+ vjas = { :stop_point_id => key, :vehicle_journey_id => vehicle_journey.id, :departure_time => main_time, :arrival_time => main_time }
+ vehicle_journey_at_stops << vjas
end
- end
- end
- vehicle_journey.vehicle_journey_at_stops_attributes = vehicle_journey_at_stops
- vehicle_journeys << vehicle_journey
+ rescue Exception => exception
+ errors.add :base, I18n.t("vehicle_journey_imports.errors.invalid_vehicle_journey_at_stop", :column => i, :line => line, :time => value)
+ raise exception
+ end
+ end
end
+ vehicle_journey.vehicle_journey_at_stops_attributes = vehicle_journey_at_stops
+ vehicle_journeys << vehicle_journey
end
-
- vehicle_journeys
- puts vehicle_journeys.inspect
+
vehicle_journeys
end
diff --git a/spec/models/vehicle_journey_import_spec.rb b/spec/models/vehicle_journey_import_spec.rb
index 7a2b94208..07cd921bb 100644
--- a/spec/models/vehicle_journey_import_spec.rb
+++ b/spec/models/vehicle_journey_import_spec.rb
@@ -73,14 +73,12 @@ describe VehicleJourneyImport do
it "should import vehicle_journeys and create the right number of objects" do
expect(VehicleJourneyImport.new(:file => valid_file, :route => route).save).to be_true
expect(Chouette::VehicleJourney.all.size).to eq(4)
- puts Chouette::VehicleJourneyAtStop.all.inspect
- expect(Chouette::VehicleJourneyAtStop.all.size).to eq(19)
+ expect(Chouette::VehicleJourneyAtStop.all.size).to eq(17)
end
it "should not import vehicle_journeys and not create objects when vehicle journey at stops are not in ascendant order" do
expect(VehicleJourneyImport.new(:route => route, :file => invalid_file_on_vjas_object).save).to be_false
expect(Chouette::VehicleJourney.all.size).to eq(3)
- puts Chouette::VehicleJourneyAtStop.all.inspect
expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0)
end