diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-04 20:19:12 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-04 20:19:12 +0300 |
commit | a761a28a03863e85b958f61700a2b9dddeb5e3bd (patch) | |
tree | 4528765b166f492a31a3ce6679e39f87ffe84b81 /spec | |
parent | 45dda602ee61587a5366f0b555375eaa8cd5b94e (diff) |
Add latest changes from gitlab-org/gitlab@16-6-stable-ee
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/pypi_packages_spec.rb | 13 | ||||
-rw-r--r-- | spec/services/packages/pypi/create_package_service_spec.rb | 17 |
2 files changed, 30 insertions, 0 deletions
diff --git a/spec/requests/api/pypi_packages_spec.rb b/spec/requests/api/pypi_packages_spec.rb index 9305155d285..2fc77f7f64f 100644 --- a/spec/requests/api/pypi_packages_spec.rb +++ b/spec/requests/api/pypi_packages_spec.rb @@ -330,6 +330,19 @@ RSpec.describe API::PypiPackages, feature_category: :package_registry do it_behaves_like 'process PyPI api request', :developer, :bad_request, true end + context 'with description too big' do + let(:description) { 'x' * ::Packages::Pypi::Metadatum::MAX_DESCRIPTION_LENGTH + 1 } + let(:token) { personal_access_token.token } + let(:user_headers) { basic_auth_header(user.username, token) } + let(:headers) { user_headers.merge(workhorse_headers) } + + before do + project.update_column(:visibility_level, Gitlab::VisibilityLevel::PRIVATE) + end + + it_behaves_like 'process PyPI api request', :developer, :created, true + end + context 'with an invalid package' do let(:token) { personal_access_token.token } let(:user_headers) { basic_auth_header(user.username, token) } diff --git a/spec/services/packages/pypi/create_package_service_spec.rb b/spec/services/packages/pypi/create_package_service_spec.rb index abff91d1878..d052a465442 100644 --- a/spec/services/packages/pypi/create_package_service_spec.rb +++ b/spec/services/packages/pypi/create_package_service_spec.rb @@ -93,6 +93,23 @@ RSpec.describe Packages::Pypi::CreatePackageService, :aggregate_failures, featur end end + context 'with a very long metadata description field' do + let(:max_length) { ::Packages::Pypi::Metadatum::MAX_DESCRIPTION_LENGTH } + let(:truncated_description) { ('x' * (max_length + 1)).truncate(max_length) } + + before do + params.merge!( + description: 'x' * (max_length + 1) + ) + end + + it 'truncates the description field' do + expect { subject }.to change { Packages::Package.pypi.count }.by(1) + + expect(created_package.pypi_metadatum.description).to eq(truncated_description) + end + end + context 'with an invalid metadata' do let(:requires_python) { 'x' * 256 } |