summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@gmail.com>2014-10-20 17:50:53 +0200
committerCiro Santilli <ciro.santilli@gmail.com>2014-10-26 11:34:50 +0100
commita9fadce361163e97eb1de0ec62e4235ff0fa3daa (patch)
tree73d82c66a0f3783a576e2c07ba3ab98451fd0dfb /db
parent47064ea55cf82ee4e38b616348243a53fae12ce2 (diff)
downloadgitlab-ce-a9fadce361163e97eb1de0ec62e4235ff0fa3daa.tar.gz
Create dev fixture projects with fixed visibility
Diffstat (limited to 'db')
-rw-r--r--db/fixtures/development/04_project.rb94
-rw-r--r--db/fixtures/development/07_projects_visibility.rb38
-rw-r--r--db/fixtures/development/08_milestones.rb (renamed from db/fixtures/development/07_milestones.rb)0
-rw-r--r--db/fixtures/development/fixtures_development_helper.rb8
4 files changed, 91 insertions, 49 deletions
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_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/07_milestones.rb b/db/fixtures/development/08_milestones.rb
index 2296821e528..2296821e528 100644
--- a/db/fixtures/development/07_milestones.rb
+++ b/db/fixtures/development/08_milestones.rb
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