diff options
| author | Alban Peignier | 2017-09-07 15:38:34 +0200 |
|---|---|---|
| committer | Alban Peignier | 2017-09-07 15:38:34 +0200 |
| commit | 7603900279d8578724944d4e20e910c7fc7f0549 (patch) | |
| tree | 3ff27d466566c8c6975d92338236505980cb27fc | |
| parent | 1ec6f453f34e2475cc5a022d516e484131461025 (diff) | |
| download | chouette-core-7603900279d8578724944d4e20e910c7fc7f0549.tar.bz2 | |
Avoid Appartment schema creation when cloning is pending. Add a spec which performs a real referential clone. Refs #4335
| -rw-r--r-- | app/models/referential.rb | 7 | ||||
| -rw-r--r-- | spec/workers/referential_cloning_worker_spec.rb | 18 |
2 files changed, 21 insertions, 4 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb index ecfc69c4a..45032cd84 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -1,3 +1,4 @@ +# coding: utf-8 class Referential < ActiveRecord::Base include DataFormatEnumerations @@ -186,8 +187,6 @@ class Referential < ActiveRecord::Base before_validation :assign_prefix, :on => :create before_create :create_schema - after_create :clone_schema, if: :created_from - before_destroy :destroy_schema before_destroy :destroy_jobs @@ -289,7 +288,9 @@ class Referential < ActiveRecord::Base end def create_schema - Apartment::Tenant.create slug + unless created_from + Apartment::Tenant.create slug + end end def assign_slug diff --git a/spec/workers/referential_cloning_worker_spec.rb b/spec/workers/referential_cloning_worker_spec.rb index 52ed8913b..7e4a2357a 100644 --- a/spec/workers/referential_cloning_worker_spec.rb +++ b/spec/workers/referential_cloning_worker_spec.rb @@ -3,7 +3,7 @@ require 'ostruct' RSpec.describe ReferentialCloningWorker do - context "given a refererntial cloning" do + context "given a referential cloning" do let( :id ){ double } @@ -34,4 +34,20 @@ RSpec.describe ReferentialCloningWorker do end end + it "should clone an existing Referential" do + source_referential = create :referential + + source_referential.switch + source_time_table = create :time_table + + target_referential = create :referential, created_from: source_referential + + cloning = ReferentialCloning.create source_referential: source_referential, target_referential: target_referential + ReferentialCloningWorker.new.perform(cloning) + + target_referential.switch + expect(Chouette::TimeTable.where(objectid: source_time_table.objectid).exists?) + end + + end |
