Skip to content
Snippets Groups Projects
Verified Commit c6fbc3da authored by Vitali Tatarintev's avatar Vitali Tatarintev Committed by GitLab
Browse files

Merge branch...

Merge branch '323975-protected-packages-conan-push-protection-follow-up-rubocop-fixes-2' into 'master' 

chore: Fix rubocop offenses for conan package tests (ISOLATED BRANCH)

See merge request !181117



Merged-by: default avatarVitali Tatarintev <vtatarintev@gitlab.com>
Approved-by: default avatarVitali Tatarintev <vtatarintev@gitlab.com>
Co-authored-by: Gerardo Navarro's avatarGerardo Navarro <gerardo@b310.de>
parents 550286d1 e79b1884
No related branches found
No related tags found
3 merge requests!181325Fix ambiguous `created_at` in project.rb,!181117chore: Fix rubocop offenses for conan package tests (ISOLATED BRANCH),!180727Resolve "Extend job archival mechanism to the whole pipeline"
Pipeline #1668308091 passed
......@@ -4129,7 +4129,6 @@ Layout/LineLength:
- 'spec/support/shared_examples/quick_actions/issue/clone_quick_action_shared_examples.rb'
- 'spec/support/shared_examples/quick_actions/issue/move_quick_action_shared_examples.rb'
- 'spec/support/shared_examples/quick_actions/merge_request/rebase_quick_action_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/debian_distributions_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb'
......
......@@ -2611,7 +2611,6 @@ RSpec/ContextWording:
- 'spec/support/shared_contexts/prometheus/alert_shared_context.rb'
- 'spec/support/shared_contexts/rack_attack_shared_context.rb'
- 'spec/support/shared_contexts/read_ci_configuration_shared_context.rb'
- 'spec/support/shared_contexts/requests/api/conan_packages_shared_context.rb'
- 'spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb'
- 'spec/support/shared_contexts/requests/api/go_modules_shared_context.rb'
- 'spec/support/shared_contexts/requests/api/graphql/group_and_project_boards_query_shared_context.rb'
......
......@@ -176,7 +176,6 @@ RSpec/ReturnFromStub:
- 'spec/support/shared_examples/lib/gitlab/middleware/read_only_gitlab_instance_shared_examples.rb'
- 'spec/support/shared_examples/lib/gitlab/sidekiq_middleware/strategy_shared_examples.rb'
- 'spec/support/shared_examples/models/concerns/can_move_repository_storage_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb'
- 'spec/support/shared_examples/services/boards/boards_create_service_shared_examples.rb'
- 'spec/support/shared_examples/services/boards/create_service_shared_examples.rb'
- 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb'
......
......@@ -232,7 +232,6 @@ Style/FormatString:
- 'spec/support/helpers/javascript_fixtures_helpers.rb'
- 'spec/support/shared_contexts/bulk_imports_requests_shared_context.rb'
- 'spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb'
- 'spec/support/shared_examples/services/jira/requests/base_shared_examples.rb'
- 'spec/support/shared_examples/views/registration_features_prompt_shared_examples.rb'
- 'spec/validators/any_field_validator_spec.rb'
......
......@@ -2405,7 +2405,6 @@ Style/InlineDisableAnnotation:
- 'spec/support/shared_examples/models/member_shared_examples.rb'
- 'spec/support/shared_examples/models/packages/debian/component_file_shared_example.rb'
- 'spec/support/shared_examples/requests/api/award_emoji_todo_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/graphql/group_and_project_boards_query_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/helm_packages_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/ml_model_packages_shared_examples.rb'
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe API::Conan::V1::InstancePackages, feature_category: :package_registry do
include_context 'conan api setup'
include_context 'with conan api setup'
let_it_be_with_reload(:package) { create(:conan_package, project: project, without_recipe_revisions: true) }
let(:snowplow_gitlab_standard_context) do
......@@ -43,7 +43,7 @@
end
context 'with recipe endpoints' do
include_context 'conan recipe endpoints'
include_context 'for conan recipe endpoints'
let(:project_id) { 9999 }
let(:url_prefix) { "#{Settings.gitlab.base_url}/api/v4" }
......@@ -126,7 +126,7 @@
end
context 'with file download endpoints' do
include_context 'conan file download endpoints'
include_context 'for conan file download endpoints'
describe 'GET /api/v4/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel' \
'/:recipe_revision/export/:file_name' do
......@@ -155,7 +155,7 @@
end
context 'with file upload endpoints' do
include_context 'conan file upload endpoints'
include_context 'for conan file upload endpoints'
describe 'PUT /api/v4/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel' \
'/:recipe_revision/export/:file_name/authorize' do
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe API::Conan::V1::ProjectPackages, feature_category: :package_registry do
include_context 'conan api setup'
include_context 'with conan api setup'
let_it_be_with_reload(:package) { create(:conan_package, project: project, without_recipe_revisions: true) }
let(:project_id) { project.id }
......@@ -55,7 +55,7 @@
end
context 'with recipe endpoints' do
include_context 'conan recipe endpoints'
include_context 'for conan recipe endpoints'
let(:url_prefix) { "#{Settings.gitlab.base_url}/api/v4/projects/#{project_id}" }
let(:recipe_path) { package.conan_recipe_path }
......@@ -150,7 +150,7 @@
end
context 'with file download endpoints' do
include_context 'conan file download endpoints'
include_context 'for conan file download endpoints'
subject(:request) { get api(url), headers: headers }
......@@ -181,7 +181,7 @@
end
context 'with file upload endpoints' do
include_context 'conan file upload endpoints'
include_context 'for conan file upload endpoints'
describe 'PUT /api/v4/projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username' \
'/:package_channel/:recipe_revision/export/:file_name/authorize' do
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe API::Conan::V2::ProjectPackages, feature_category: :package_registry do
include_context 'conan api setup'
include_context 'with conan api setup'
let_it_be_with_reload(:package) { create(:conan_package, project: project) }
let(:project_id) { project.id }
......@@ -30,7 +30,7 @@
describe 'GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/' \
':package_channel/revisions/:recipe_revision/files/:file_name' do
include_context 'conan file download endpoints'
include_context 'for conan file download endpoints'
let(:file_name) { recipe_file.file_name }
let(:recipe_revision) { recipe_file_metadata.recipe_revision_value }
......
# frozen_string_literal: true
RSpec.shared_context 'conan api setup' do
RSpec.shared_context 'with conan api setup' do
include PackagesManagerApiSpecHelpers
include HttpBasicAuthHelpers
......@@ -44,7 +44,7 @@
end
end
RSpec.shared_context 'conan recipe endpoints' do
RSpec.shared_context 'for conan recipe endpoints' do
include PackagesManagerApiSpecHelpers
include HttpBasicAuthHelpers
......@@ -52,7 +52,7 @@
let(:headers) { build_token_auth_header(jwt.encoded) }
end
RSpec.shared_context 'conan file download endpoints' do
RSpec.shared_context 'for conan file download endpoints' do
include PackagesManagerApiSpecHelpers
include HttpBasicAuthHelpers
......@@ -65,7 +65,7 @@
let(:recipe_file_metadata) { recipe_file.conan_file_metadatum }
end
RSpec.shared_context 'conan file upload endpoints' do
RSpec.shared_context 'for conan file upload endpoints' do
include PackagesManagerApiSpecHelpers
include WorkhorseHelpers
include HttpBasicAuthHelpers
......
......@@ -63,7 +63,10 @@
end
it { expect(response).to have_gitlab_http_status(:bad_request) }
it { expect(json_response['message']).to eq('400 Bad request - Search term length must be less than 200 characters.') }
it 'returns an error message' do
expect(json_response['message']).to eq('400 Bad request - Search term length must be less than 200 characters.')
end
end
context 'returns error when search term has too many wildcards' do
......@@ -74,7 +77,10 @@
end
it { expect(response).to have_gitlab_http_status(:bad_request) }
it { expect(json_response['message']).to eq('400 Bad request - Too many wildcards in search term. Maximum is 5.') }
it 'returns an error message' do
expect(json_response['message']).to eq('400 Bad request - Too many wildcards in search term. Maximum is 5.')
end
end
end
......@@ -365,7 +371,8 @@
RSpec.shared_examples 'empty recipe for not found package' do
context 'with invalid recipe url' do
let(:recipe_path) do
'aa/bb/%{project}/ccc' % { project: ::Packages::Conan::Metadatum.package_username_from(full_path: project.full_path) }
format('aa/bb/%{project}/ccc',
project: ::Packages::Conan::Metadatum.package_username_from(full_path: project.full_path))
end
let(:presenter) { double('::Packages::Conan::PackagePresenter') }
......@@ -384,8 +391,7 @@
project,
any_args
).and_return(presenter)
allow(presenter).to receive(:recipe_snapshot) { {} }
allow(presenter).to receive(:package_snapshot) { {} }
allow(presenter).to receive_messages(recipe_snapshot: {}, package_snapshot: {})
subject
......@@ -412,13 +418,14 @@
RSpec.shared_examples 'recipe download_urls' do
let(:recipe_path) { package.conan_recipe_path }
let(:base_url_with_recipe_path) { "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}" }
it_behaves_like 'enforcing read_packages job token policy'
it 'returns the download_urls for the recipe files' do
expected_response = {
'conanfile.py' => "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanfile.py",
'conanmanifest.txt' => "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanmanifest.txt"
'conanfile.py' => "#{base_url_with_recipe_path}/0/export/conanfile.py",
'conanmanifest.txt' => "#{base_url_with_recipe_path}/0/export/conanmanifest.txt"
}
subject
......@@ -431,14 +438,15 @@
RSpec.shared_examples 'package download_urls' do
let(:recipe_path) { package.conan_recipe_path }
let(:base_url_with_recipe_path) { "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}" }
it_behaves_like 'enforcing read_packages job token policy'
it 'returns the download_urls for the package files' do
expected_response = {
'conaninfo.txt' => "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/#{conan_package_reference}/0/conaninfo.txt",
'conanmanifest.txt' => "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/#{conan_package_reference}/0/conanmanifest.txt",
'conan_package.tgz' => "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/#{conan_package_reference}/0/conan_package.tgz"
'conaninfo.txt' => "#{base_url_with_recipe_path}/0/package/#{conan_package_reference}/0/conaninfo.txt",
'conanmanifest.txt' => "#{base_url_with_recipe_path}/0/package/#{conan_package_reference}/0/conanmanifest.txt",
'conan_package.tgz' => "#{base_url_with_recipe_path}/0/package/#{conan_package_reference}/0/conan_package.tgz"
}
subject
......@@ -537,6 +545,7 @@
RSpec.shared_examples 'recipe upload_urls endpoint' do
let(:recipe_path) { package.conan_recipe_path }
let(:base_url_with_recipe_path) { "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}" }
let(:params) do
{ 'conanfile.py': 24,
......@@ -553,8 +562,8 @@
subject
expected_response = {
'conanfile.py': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanfile.py",
'conanmanifest.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanmanifest.txt"
'conanfile.py': "#{base_url_with_recipe_path}/0/export/conanfile.py",
'conanmanifest.txt': "#{base_url_with_recipe_path}/0/export/conanmanifest.txt"
}
expect(response.body).to eq(expected_response.to_json)
......@@ -571,9 +580,9 @@
subject
expected_response = {
'conan_sources.tgz': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conan_sources.tgz",
'conan_export.tgz': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conan_export.tgz",
'conanmanifest.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanmanifest.txt"
'conan_sources.tgz': "#{base_url_with_recipe_path}/0/export/conan_sources.tgz",
'conan_export.tgz': "#{base_url_with_recipe_path}/0/export/conan_export.tgz",
'conanmanifest.txt': "#{base_url_with_recipe_path}/0/export/conanmanifest.txt"
}
expect(response.body).to eq(expected_response.to_json)
......@@ -590,7 +599,7 @@
subject
expected_response = {
'conanmanifest.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/export/conanmanifest.txt"
'conanmanifest.txt': "#{base_url_with_recipe_path}/0/export/conanmanifest.txt"
}
expect(response.body).to eq(expected_response.to_json)
......@@ -600,6 +609,7 @@
RSpec.shared_examples 'package upload_urls endpoint' do
let(:recipe_path) { package.conan_recipe_path }
let(:base_url_with_recipe_path) { "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}" }
let(:params) do
{ 'conaninfo.txt': 24,
......@@ -615,9 +625,9 @@
it 'returns a set of upload urls for the files requested' do
expected_response = {
'conaninfo.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/123456789/0/conaninfo.txt",
'conanmanifest.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/123456789/0/conanmanifest.txt",
'conan_package.tgz': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/123456789/0/conan_package.tgz"
'conaninfo.txt': "#{base_url_with_recipe_path}/0/package/123456789/0/conaninfo.txt",
'conanmanifest.txt': "#{base_url_with_recipe_path}/0/package/123456789/0/conanmanifest.txt",
'conan_package.tgz': "#{base_url_with_recipe_path}/0/package/123456789/0/conan_package.tgz"
}
subject
......@@ -633,7 +643,7 @@
it 'returns upload urls only for the valid requested files' do
expected_response = {
'conaninfo.txt': "#{url_prefix}/packages/conan/v1/files/#{package.conan_recipe_path}/0/package/123456789/0/conaninfo.txt"
'conaninfo.txt': "#{base_url_with_recipe_path}/0/package/123456789/0/conaninfo.txt"
}
subject
......@@ -1010,10 +1020,13 @@
end
context 'with existing package' do
let!(:existing_package) { create(:conan_package, name: recipe_path_name, version: recipe_path_version, project: project) }
let!(:existing_package) do
create(:conan_package, name: recipe_path_name, version: recipe_path_version, project: project)
end
before do
existing_package.conan_metadatum.update!(package_username: recipe_path_username, package_channel: recipe_path_channel)
existing_package.conan_metadatum.update!(package_username: recipe_path_username,
package_channel: recipe_path_channel)
end
it 'does not create a new package' do
......@@ -1044,7 +1057,7 @@
end
let(:tmp_object) do
fog_connection.directories.new(key: 'packages').files.create( # rubocop:disable Rails/SaveBang
fog_connection.directories.new(key: 'packages').files.create( # rubocop:disable Rails/SaveBang -- Method #create! is undefined for class Fog::AWS::Storage::Files
key: "tmp/uploads/#{file_name}",
body: 'content'
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment