diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-26 12:07:25 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-26 12:07:25 +0000 |
commit | 78ba5338e29e1e30f82ecc36ace7c8ccd93e8ff0 (patch) | |
tree | 102508e9685095a30e850b9f767b9f4552a66f09 /spec | |
parent | 7cdda90e12eb4678910db9bccd6eb68c2d4909e9 (diff) | |
download | gitlab-ce-78ba5338e29e1e30f82ecc36ace7c8ccd93e8ff0.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/pypi_packages_spec.rb | 22 | ||||
-rw-r--r-- | spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb | 8 |
2 files changed, 21 insertions, 9 deletions
diff --git a/spec/requests/api/pypi_packages_spec.rb b/spec/requests/api/pypi_packages_spec.rb index 59d93cd48e3..978d4f72a4a 100644 --- a/spec/requests/api/pypi_packages_spec.rb +++ b/spec/requests/api/pypi_packages_spec.rb @@ -256,19 +256,35 @@ RSpec.describe API::PypiPackages, feature_category: :package_registry do let(:headers) { user_headers.merge(workhorse_headers) } it_behaves_like 'PyPI package creation', :developer, :created, true + + context 'with FIPS mode', :fips_mode do + it_behaves_like 'PyPI package creation', :developer, :created, true, false + end end - context 'without md5_digest' do + context 'without sha256_digest' do let(:token) { personal_access_token.token } let(:user_headers) { basic_auth_header(user.username, token) } let(:headers) { user_headers.merge(workhorse_headers) } let(:params) { base_params.merge(content: temp_file(file_name)) } before do - params.delete(:md5_digest) + params.delete(:sha256_digest) end - it_behaves_like 'PyPI package creation', :developer, :created, true, false + it_behaves_like 'PyPI package creation', :developer, :created, true, true + + context 'with FIPS mode', :fips_mode do + before do + project.add_developer(user) + end + + it 'returns 422 and does not create a package' do + expect { subject }.not_to change { project.packages.pypi.count } + + expect(response).to have_gitlab_http_status(:unprocessable_entity) + end + end end end diff --git a/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb b/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb index a267476b7cb..6065b1163c4 100644 --- a/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb @@ -14,18 +14,14 @@ RSpec.shared_examples 'PyPI package creation' do |user_type, status, add_member expect(package.name).to eq params[:name] expect(package.version).to eq params[:version] expect(package.pypi_metadatum.required_python).to eq params[:requires_python] + expect(package.package_files.first.file_sha256).to eq params[:sha256_digest] if md5_digest - expect(package.package_files.first.file_md5).not_to be_nil + expect(package.package_files.first.file_md5).to be_present else expect(package.package_files.first.file_md5).to be_nil end end - - context 'with FIPS mode', :fips_mode do - it_behaves_like 'returning response status', :unprocessable_entity if md5_digest - it_behaves_like 'returning response status', status unless md5_digest - end end context "for user type #{user_type}" do |