aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2017-09-07 15:38:34 +0200
committerAlban Peignier2017-09-07 15:38:34 +0200
commit7603900279d8578724944d4e20e910c7fc7f0549 (patch)
tree3ff27d466566c8c6975d92338236505980cb27fc
parent1ec6f453f34e2475cc5a022d516e484131461025 (diff)
downloadchouette-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.rb7
-rw-r--r--spec/workers/referential_cloning_worker_spec.rb18
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