summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2018-05-07 22:30:13 +0000
committerRobert Speicher <robert@gitlab.com>2018-05-07 22:30:13 +0000
commitf9fcd2b4100d54255c2508439e9f924543aed7a7 (patch)
treea35df4ca43ca21ac3f98d36da28f147351afc398
parentb69ade5dd1eca99bff388240a184b6a579196f9d (diff)
parentcfa798da5361128d9473ed170062586dea9525ae (diff)
downloadgitlab-ce-f9fcd2b4100d54255c2508439e9f924543aed7a7.tar.gz
Merge branch 'dm-project-factory-import-state' into 'master'
Fix project factory `import_*` traits Closes gitlab-ee#5904 See merge request gitlab-org/gitlab-ce!18780
-rw-r--r--app/models/project.rb36
-rw-r--r--spec/factories/projects.rb32
2 files changed, 22 insertions, 46 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 0a549d843f3..f6ac1802846 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -657,8 +657,8 @@ class Project < ActiveRecord::Base
}
end
- def ensure_import_state
- return if self[:import_status] == 'none' || self[:import_status].nil?
+ def ensure_import_state(force: false)
+ return if !force && (self[:import_status] == 'none' || self[:import_status].nil?)
return unless import_state.nil?
create_import_state(import_state_args)
@@ -667,39 +667,39 @@ class Project < ActiveRecord::Base
end
def import_schedule
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.schedule
+ import_state.schedule
end
def force_import_start
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.force_start
+ import_state.force_start
end
def import_start
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.start
+ import_state.start
end
def import_fail
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.fail_op
+ import_state.fail_op
end
def import_finish
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.finish
+ import_state.finish
end
def import_jid=(new_jid)
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.jid = new_jid
+ import_state.jid = new_jid
end
def import_jid
@@ -709,9 +709,9 @@ class Project < ActiveRecord::Base
end
def import_error=(new_error)
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.last_error = new_error
+ import_state.last_error = new_error
end
def import_error
@@ -721,9 +721,9 @@ class Project < ActiveRecord::Base
end
def import_status=(new_status)
- ensure_import_state
+ ensure_import_state(force: true)
- import_state&.status = new_status
+ import_state.status = new_status
end
def import_status
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
index d129815aeac..16e025618a6 100644
--- a/spec/factories/projects.rb
+++ b/spec/factories/projects.rb
@@ -69,43 +69,19 @@ FactoryBot.define do
end
trait :import_scheduled do
- transient do
- status :scheduled
- end
-
- before(:create) do |project, evaluator|
- project.create_import_state(status: evaluator.status)
- end
+ import_status :scheduled
end
trait :import_started do
- transient do
- status :started
- end
-
- before(:create) do |project, evaluator|
- project.create_import_state(status: evaluator.status)
- end
+ import_status :started
end
trait :import_finished do
- transient do
- status :finished
- end
-
- before(:create) do |project, evaluator|
- project.create_import_state(status: evaluator.status)
- end
+ import_status :finished
end
trait :import_failed do
- transient do
- status :failed
- end
-
- before(:create) do |project, evaluator|
- project.create_import_state(status: evaluator.status)
- end
+ import_status :failed
end
trait :archived do