From a9fadce361163e97eb1de0ec62e4235ff0fa3daa Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Mon, 20 Oct 2014 17:50:53 +0200 Subject: Create dev fixture projects with fixed visibility --- db/fixtures/development/04_project.rb | 94 +++++++++++----------- db/fixtures/development/07_milestones.rb | 16 ---- db/fixtures/development/07_projects_visibility.rb | 38 +++++++++ db/fixtures/development/08_milestones.rb | 16 ++++ .../development/fixtures_development_helper.rb | 8 ++ lib/gitlab/seeder.rb | 6 +- 6 files changed, 112 insertions(+), 66 deletions(-) delete mode 100644 db/fixtures/development/07_milestones.rb create mode 100644 db/fixtures/development/07_projects_visibility.rb create mode 100644 db/fixtures/development/08_milestones.rb create mode 100644 db/fixtures/development/fixtures_development_helper.rb diff --git a/db/fixtures/development/04_project.rb b/db/fixtures/development/04_project.rb index ae4c0550a4f..a39e7ac028c 100644 --- a/db/fixtures/development/04_project.rb +++ b/db/fixtures/development/04_project.rb @@ -1,52 +1,48 @@ -require 'sidekiq/testing' - -Sidekiq::Testing.inline! do - Gitlab::Seeder.quiet do - project_urls = [ - 'https://github.com/documentcloud/underscore.git', - 'https://gitlab.com/gitlab-org/gitlab-ce.git', - 'https://gitlab.com/gitlab-org/gitlab-ci.git', - 'https://gitlab.com/gitlab-org/gitlab-shell.git', - 'https://gitlab.com/gitlab-org/gitlab-test.git', - 'https://github.com/twitter/flight.git', - 'https://github.com/twitter/typeahead.js.git', - 'https://github.com/h5bp/html5-boilerplate.git', - ] - - project_urls.each_with_index do |url, i| - group_path, project_path = url.split('/')[-2..-1] - - group = Group.find_by(path: group_path) - - unless group - group = Group.new( - name: group_path.titleize, - path: group_path - ) - group.description = Faker::Lorem.sentence - group.save - - group.add_owner(User.first) - end - - project_path.gsub!(".git", "") - - params = { - import_url: url, - namespace_id: group.id, - name: project_path.titleize, - description: Faker::Lorem.sentence, - visibility_level: Gitlab::VisibilityLevel.values.sample - } - - project = Projects::CreateService.new(User.first, params).execute - - if project.valid? - print '.' - else - puts project.errors.full_messages - print 'F' - end +Gitlab::Seeder.quiet do + project_urls = [ + 'https://github.com/documentcloud/underscore.git', + 'https://gitlab.com/gitlab-org/gitlab-ce.git', + 'https://gitlab.com/gitlab-org/gitlab-ci.git', + 'https://gitlab.com/gitlab-org/gitlab-shell.git', + 'https://gitlab.com/gitlab-org/gitlab-test.git', + 'https://github.com/twitter/flight.git', + 'https://github.com/twitter/typeahead.js.git', + 'https://github.com/h5bp/html5-boilerplate.git', + ] + + project_urls.each do |url| + group_path, project_path = url.split('/')[-2..-1] + + group = Group.find_by(path: group_path) + + unless group + group = Group.new( + name: group_path.titleize, + path: group_path + ) + group.description = Faker::Lorem.sentence + group.save + + group.add_owner(User.first) + end + + project_path.gsub!('.git', '') + + params = { + import_url: url, + namespace_id: group.id, + name: project_path.titleize, + description: Faker::Lorem.sentence, + visibility_level: Gitlab::VisibilityLevel.values.sample + } + + project = Projects::CreateService.new(User.first, params).execute + + if project.valid? + print '.' + else + puts project.errors.full_messages + print 'F' end end end diff --git a/db/fixtures/development/07_milestones.rb b/db/fixtures/development/07_milestones.rb deleted file mode 100644 index 2296821e528..00000000000 --- a/db/fixtures/development/07_milestones.rb +++ /dev/null @@ -1,16 +0,0 @@ -Gitlab::Seeder.quiet do - Project.all.each do |project| - (1..5).each do |i| - milestone_params = { - title: "v#{i}.0", - description: Faker::Lorem.sentence, - state: ['opened', 'closed'].sample, - } - - milestone = Milestones::CreateService.new( - project, project.team.users.sample, milestone_params).execute - - print '.' - end - end -end diff --git a/db/fixtures/development/07_projects_visibility.rb b/db/fixtures/development/07_projects_visibility.rb new file mode 100644 index 00000000000..c3287584a07 --- /dev/null +++ b/db/fixtures/development/07_projects_visibility.rb @@ -0,0 +1,38 @@ +require Rails.root.join('db', 'fixtures', Rails.env, 'fixtures_development_helper') + +Gitlab::Seeder.quiet do + Gitlab::VisibilityLevel.options.each do |visibility_label, visibility_value| + visibility_label_downcase = visibility_label.downcase + begin + user = User.seed(:username) do |s| + username = "#{visibility_label_downcase}-owner" + s.username = username + s.name = "#{visibility_label} Owner" + s.email = "#{username}@example.com" + s.password = '12345678' + s.confirmed_at = DateTime.now + end[0] + + # import_url does not work for local paths, + # so we just copy the template repository in. + unless Project.find_with_namespace("#{user.namespace.id}/"\ + "#{visibility_label_downcase}") + params = { + name: "#{visibility_label} Project", + description: "#{visibility_label} Project description", + namespace_id: user.namespace.id, + visibility_level: visibility_value, + } + project = Projects::CreateService.new(user, params).execute + new_path = project.repository.path + FileUtils.rm_rf(new_path) + FileUtils.cp_r(FixturesDevelopmentHelper.template_project.repository.path, + new_path) + end + + print '.' + rescue ActiveRecord::RecordNotSaved + print 'F' + end + end +end diff --git a/db/fixtures/development/08_milestones.rb b/db/fixtures/development/08_milestones.rb new file mode 100644 index 00000000000..2296821e528 --- /dev/null +++ b/db/fixtures/development/08_milestones.rb @@ -0,0 +1,16 @@ +Gitlab::Seeder.quiet do + Project.all.each do |project| + (1..5).each do |i| + milestone_params = { + title: "v#{i}.0", + description: Faker::Lorem.sentence, + state: ['opened', 'closed'].sample, + } + + milestone = Milestones::CreateService.new( + project, project.team.users.sample, milestone_params).execute + + print '.' + end + end +end diff --git a/db/fixtures/development/fixtures_development_helper.rb b/db/fixtures/development/fixtures_development_helper.rb new file mode 100644 index 00000000000..22a7834bbee --- /dev/null +++ b/db/fixtures/development/fixtures_development_helper.rb @@ -0,0 +1,8 @@ +module FixturesDevelopmentHelper + class << self + def template_project + @template_project ||= Project. + find_with_namespace('gitlab-org/gitlab-test') + end + end +end diff --git a/lib/gitlab/seeder.rb b/lib/gitlab/seeder.rb index 31aa3528c4c..e816eedab9e 100644 --- a/lib/gitlab/seeder.rb +++ b/lib/gitlab/seeder.rb @@ -1,9 +1,13 @@ +require 'sidekiq/testing' + module Gitlab class Seeder def self.quiet mute_mailer SeedFu.quiet = true - yield + Sidekiq::Testing.inline! do + yield + end SeedFu.quiet = false puts "\nOK".green end -- cgit v1.2.1