diff options
author | Robert Speicher <robert@gitlab.com> | 2018-05-07 22:30:13 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2018-05-07 22:30:13 +0000 |
commit | f9fcd2b4100d54255c2508439e9f924543aed7a7 (patch) | |
tree | a35df4ca43ca21ac3f98d36da28f147351afc398 | |
parent | b69ade5dd1eca99bff388240a184b6a579196f9d (diff) | |
parent | cfa798da5361128d9473ed170062586dea9525ae (diff) | |
download | gitlab-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.rb | 36 | ||||
-rw-r--r-- | spec/factories/projects.rb | 32 |
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 |