Commit e779b68a authored by Andrejs Cunskis's avatar Andrejs Cunskis

E2E: Large project github import test debug improvements

parent 1c2f4bae
......@@ -12,13 +12,13 @@ module QA
:auto_devops_enabled,
:github_personal_access_token,
:github_repository_path,
:gitlab_repository_path
:gitlab_repository_path,
:personal_namespace
attributes :id,
:name,
:add_name_uuid,
:description,
:personal_namespace,
:runners_token,
:visibility,
:template_name,
......@@ -31,13 +31,15 @@ module QA
end
attribute :path_with_namespace do
"#{group.full_path}/#{name}"
"#{personal_namespace || group.full_path}/#{name}"
end
alias_method :full_path, :path_with_namespace
def sandbox_path
group.respond_to?('sandbox') ? "#{group.sandbox.path}/" : ''
return '' if personal_namespace || !group.respond_to?('sandbox')
"#{group.sandbox.path}/"
end
attribute :repository_ssh_location do
......@@ -50,12 +52,12 @@ module QA
def initialize
@add_name_uuid = true
@personal_namespace = false
@description = 'My awesome project'
@initialize_with_readme = false
@auto_devops_enabled = false
@visibility = :public
@template_name = nil
@personal_namespace = nil
@import = false
self.name = "the_awesome_project"
......@@ -68,7 +70,7 @@ module QA
def fabricate!
return if @import
if @personal_namespace
if personal_namespace
Page::Dashboard::Projects.perform(&:click_new_project_button)
else
group.visit!
......
......@@ -34,7 +34,7 @@ module QA
def fabricate_via_api!
super
rescue ResourceURLMissingError
"#{Runtime::Scenario.gitlab_address}/#{group.full_path}/#{name}"
"#{Runtime::Scenario.gitlab_address}/#{full_path}"
end
def api_post_path
......@@ -49,7 +49,7 @@ module QA
{
repo_id: github_repo_id,
new_name: name,
target_namespace: group.full_path,
target_namespace: @personal_namespace || group.full_path,
personal_access_token: github_personal_access_token,
ci_cd_only: false
}
......
......@@ -9,11 +9,6 @@ module QA
let(:differ) { RSpec::Support::Differ.new(color: true) }
let(:api_client) { Runtime::API::Client.as_admin }
let(:group) do
Resource::Group.fabricate_via_api! do |resource|
resource.api_client = api_client
end
end
let(:user) do
Resource::User.fabricate_via_api! do |resource|
......@@ -86,19 +81,15 @@ module QA
Resource::ProjectImportedFromGithub.fabricate_via_api! do |project|
project.add_name_uuid = false
project.name = 'imported-project'
project.group = group
project.github_personal_access_token = Runtime::Env.github_access_token
project.github_repository_path = github_repo
project.personal_namespace = user.username
project.api_client = api_client
end
end
before do
group.add_member(user, Resource::Members::AccessLevel::MAINTAINER)
end
after do |example|
user.remove_via_api!
user.remove_via_api! unless example.exception
next unless defined?(@import_time)
# save data for comparison after run finished
......@@ -128,7 +119,10 @@ module QA
)
end
it 'imports large Github repo via api', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1880' do
it(
'imports large Github repo via api',
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1880'
) do
start = Time.now
Runtime::Logger.info("Importing project '#{imported_project.full_path}'") # import the project and log path
......
......@@ -46,10 +46,9 @@ module QA
def create_project(user, api_client, project_name)
project = Resource::Project.fabricate_via_api! do |project|
project.personal_namespace = true
project.personal_namespace = user.username
project.add_name_uuid = false
project.name = project_name
project.path_with_namespace = "#{user.username}/#{project_name}"
project.api_client = api_client
end
......
......@@ -39,7 +39,7 @@ module QA
Resource::Project.fabricate_via_browser_ui! do |project|
project.name = project_name
project.description = 'create awesome project test'
project.personal_namespace = true
project.personal_namespace = Runtime::User.username
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment