diff options
| author | Luc Donnet | 2014-06-27 17:42:02 +0200 |
|---|---|---|
| committer | Luc Donnet | 2014-06-27 17:42:02 +0200 |
| commit | 24d901950acc7eb623a1b18d0de798f41743f422 (patch) | |
| tree | c27c9b391aa59688565da0d9dcaf72d40b27ff6b | |
| parent | 39162a5b27b96c9f288d8c56280ab9bea5aabe55 (diff) | |
| download | chouette-core-24d901950acc7eb623a1b18d0de798f41743f422.tar.bz2 | |
Fix spec for vehicle journey import model Refs #0026843
| -rw-r--r-- | app/models/vehicle_journey_import.rb | 55 | ||||
| -rw-r--r-- | spec/models/vehicle_journey_import_spec.rb | 4 |
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 |
