diff options
Diffstat (limited to 'spec/factories/packages')
-rw-r--r-- | spec/factories/packages/debian/component_file.rb | 7 | ||||
-rw-r--r-- | spec/factories/packages/debian/distribution.rb | 6 | ||||
-rw-r--r-- | spec/factories/packages/debian/file_metadatum.rb | 80 | ||||
-rw-r--r-- | spec/factories/packages/npm/metadata_cache.rb | 10 | ||||
-rw-r--r-- | spec/factories/packages/package_files.rb | 30 | ||||
-rw-r--r-- | spec/factories/packages/packages.rb | 7 |
6 files changed, 94 insertions, 46 deletions
diff --git a/spec/factories/packages/debian/component_file.rb b/spec/factories/packages/debian/component_file.rb index a2422e4a126..0a134ee16c4 100644 --- a/spec/factories/packages/debian/component_file.rb +++ b/spec/factories/packages/debian/component_file.rb @@ -20,7 +20,6 @@ FactoryBot.define do component_file.file = fixture_file_upload(evaluator.file_fixture) if evaluator.file_fixture.present? end - file_md5 { '12345abcde' } file_sha256 { 'be93151dc23ac34a82752444556fe79b32c7a1ad' } trait(:packages) do @@ -47,5 +46,11 @@ FactoryBot.define do trait(:object_storage) do file_store { Packages::PackageFileUploader::Store::REMOTE } end + + trait(:empty) do + file_sha256 { 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' } + file_fixture { nil } + size { 0 } + end end end diff --git a/spec/factories/packages/debian/distribution.rb b/spec/factories/packages/debian/distribution.rb index 48892d16efb..7a9d8561a9c 100644 --- a/spec/factories/packages/debian/distribution.rb +++ b/spec/factories/packages/debian/distribution.rb @@ -4,14 +4,14 @@ FactoryBot.define do factory :debian_project_distribution, class: 'Packages::Debian::ProjectDistribution' do container { association(:project) } - sequence(:codename) { |n| "#{FFaker::Lorem.word}#{n}" } + sequence(:codename) { |n| "codename-#{n}" } factory :debian_group_distribution, class: 'Packages::Debian::GroupDistribution' do container { association(:group) } end trait(:with_suite) do - sequence(:suite) { |n| "#{FFaker::Lorem.word}#{n}" } + sequence(:suite) { |n| "suite-#{n}" } end trait(:with_file) do @@ -24,7 +24,7 @@ FactoryBot.define do FILESIGNATURE end - after(:build) do |distribution, evaluator| + after(:build) do |distribution, _evaluator| distribution.file = fixture_file_upload('spec/fixtures/packages/debian/distribution/Release') distribution.signed_file = fixture_file_upload('spec/fixtures/packages/debian/distribution/InRelease') end diff --git a/spec/factories/packages/debian/file_metadatum.rb b/spec/factories/packages/debian/file_metadatum.rb index 505b9975f79..6b6cd9c51f3 100644 --- a/spec/factories/packages/debian/file_metadatum.rb +++ b/spec/factories/packages/debian/file_metadatum.rb @@ -2,11 +2,18 @@ FactoryBot.define do factory :debian_file_metadatum, class: 'Packages::Debian::FileMetadatum' do - package_file { association(:debian_package_file, without_loaded_metadatum: true) } + package_file do + if file_type == 'unknown' + association(:debian_package_file, :unknown, without_loaded_metadatum: true) + else + association(:debian_package_file, without_loaded_metadatum: true) + end + end + file_type { 'deb' } component { 'main' } architecture { 'amd64' } - fields { { 'a': 'b' } } + fields { { 'a' => 'b' } } trait(:unknown) do file_type { 'unknown' } @@ -30,21 +37,23 @@ FactoryBot.define do { 'Format' => '3.0 (native)', 'Source' => package_file.package.name, - 'Binary' => 'sample-dev, libsample0, sample-udeb', + 'Binary' => 'sample-dev, libsample0, sample-udeb, sample-ddeb', 'Architecture' => 'any', - 'Version': package_file.package.version, + 'Version' => package_file.package.version, 'Maintainer' => "#{FFaker::Name.name} <#{FFaker::Internet.email}>", 'Homepage' => FFaker::Internet.http_url, 'Standards-Version' => '4.5.0', 'Build-Depends' => 'debhelper-compat (= 13)', - 'Package-List' => <<~EOF.rstrip, - libsample0 deb libs optional arch=any', - sample-dev deb libdevel optional arch=any', - sample-udeb udeb libs optional arch=any', - EOF - 'Checksums-Sha1' => "\nc5cfc111ea924842a89a06d5673f07dfd07de8ca 864 sample_1.2.3~alpha2.tar.xz", - 'Checksums-Sha256' => "\n40e4682bb24a73251ccd7c7798c0094a649091e5625d6a14bcec9b4e7174f3da 864 sample_1.2.3~alpha2.tar.xz", - 'Files' => "\nd5ca476e4229d135a88f9c729c7606c9 864 sample_1.2.3~alpha2.tar.xz" + 'Package-List' => <<~PACKAGELIST.rstrip, + libsample0 deb libs optional arch=any + sample-ddeb deb libs optional arch=any + sample-dev deb libdevel optional arch=any + sample-udeb udeb libs optional arch=any + PACKAGELIST + 'Checksums-Sha1' => "\n4a9cb2a7c77a68dc0fe54ba8ecef133a7c949e9d 964 sample_1.2.3~alpha2.tar.xz", + 'Checksums-Sha256' => + "\nc9d05185ca158bb804977fa9d7b922e8a0f644a2da41f99d2787dd61b1e2e2c5 964 sample_1.2.3~alpha2.tar.xz", + 'Files' => "\nadc69e57cda38d9bb7c8d59cacfb6869 964 sample_1.2.3~alpha2.tar.xz" } end end @@ -55,22 +64,22 @@ FactoryBot.define do architecture { 'amd64' } fields do { - 'Package' => 'libsample0', - 'Source' => package_file.package.name, - 'Version' => package_file.package.version, - 'Architecture' => 'amd64', - 'Maintainer' => "#{FFaker::Name.name} <#{FFaker::Internet.email}>", - 'Installed-Size' => '7', - 'Section' => 'libs', - 'Priority' => 'optional', - 'Multi-Arch' => 'same', - 'Homepage' => FFaker::Internet.http_url, - 'Description' => <<~EOF.rstrip - Some mostly empty lib - Used in GitLab tests. + 'Package' => 'libsample0', + 'Source' => package_file.package.name, + 'Version' => package_file.package.version, + 'Architecture' => 'amd64', + 'Maintainer' => "#{FFaker::NameCN.name} #{FFaker::Name.name} <#{FFaker::Internet.email}>", + 'Installed-Size' => '7', + 'Section' => 'libs', + 'Priority' => 'optional', + 'Multi-Arch' => 'same', + 'Homepage' => FFaker::Internet.http_url, + 'Description' => <<~DESCRIPTION.rstrip + Some mostly empty lib + Used in GitLab tests. - Testing another paragraph. - EOF + Testing another paragraph. + DESCRIPTION } end end @@ -92,12 +101,12 @@ FactoryBot.define do 'Priority' => 'optional', 'Multi-Arch' => 'same', 'Homepage' => FFaker::Internet.http_url, - 'Description' => <<~EOF.rstrip + 'Description' => <<~DESCRIPTION.rstrip Some mostly empty development files Used in GitLab tests. Testing another paragraph. - EOF + DESCRIPTION } end end @@ -106,21 +115,28 @@ FactoryBot.define do file_type { 'udeb' } component { 'main' } architecture { 'amd64' } - fields { { 'a': 'b' } } + fields { { 'a' => 'b' } } + end + + trait(:ddeb) do + file_type { 'ddeb' } + component { 'main' } + architecture { 'amd64' } + fields { { 'a' => 'b' } } end trait(:buildinfo) do file_type { 'buildinfo' } component { 'main' } architecture { nil } - fields { { 'Architecture': 'amd64 source' } } + fields { { 'Architecture' => 'amd64 source' } } end trait(:changes) do file_type { 'changes' } component { nil } architecture { nil } - fields { { 'Architecture': 'source amd64' } } + fields { { 'Architecture' => 'source amd64' } } end end end diff --git a/spec/factories/packages/npm/metadata_cache.rb b/spec/factories/packages/npm/metadata_cache.rb new file mode 100644 index 00000000000..e76ddf3c983 --- /dev/null +++ b/spec/factories/packages/npm/metadata_cache.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :npm_metadata_cache, class: 'Packages::Npm::MetadataCache' do + project + sequence(:package_name) { |n| "@#{project.root_namespace.path}/package-#{n}" } + file { fixture_file_upload('spec/fixtures/packages/npm/metadata.json') } + size { 401.bytes } + end +end diff --git a/spec/factories/packages/package_files.rb b/spec/factories/packages/package_files.rb index 7d3dd274777..4a2d412832c 100644 --- a/spec/factories/packages/package_files.rb +++ b/spec/factories/packages/package_files.rb @@ -131,9 +131,9 @@ FactoryBot.define do trait(:source) do file_name { 'sample_1.2.3~alpha2.tar.xz' } - file_md5 { 'd5ca476e4229d135a88f9c729c7606c9' } - file_sha1 { 'c5cfc111ea924842a89a06d5673f07dfd07de8ca' } - file_sha256 { '40e4682bb24a73251ccd7c7798c0094a649091e5625d6a14bcec9b4e7174f3da' } + file_md5 { 'adc69e57cda38d9bb7c8d59cacfb6869' } + file_sha1 { '4a9cb2a7c77a68dc0fe54ba8ecef133a7c949e9d' } + file_sha256 { 'c9d05185ca158bb804977fa9d7b922e8a0f644a2da41f99d2787dd61b1e2e2c5' } transient do file_metadatum_trait { :source } @@ -142,9 +142,9 @@ FactoryBot.define do trait(:dsc) do file_name { 'sample_1.2.3~alpha2.dsc' } - file_md5 { 'ceccb6bb3e45ce6550b24234d4023e0f' } - file_sha1 { '375ba20ea1789e1e90d469c3454ce49a431d0442' } - file_sha256 { '81fc156ba937cdb6215362cc4bf6b8dc47be9b4253ba0f1a4ab10c7ea0c4c4e5' } + file_md5 { '629921cfc477bfa84adfd2ccaba89783' } + file_sha1 { '443c98a4cf4acd21e2259ae8f2d60fc9932de353' } + file_sha256 { 'f91070524a59bbb3a1f05a78409e92cb9ee86470b34018bc0b93bd5b2dd3868c' } transient do file_metadatum_trait { :dsc } @@ -184,11 +184,22 @@ FactoryBot.define do end end + trait(:ddeb) do + file_name { 'sample-ddeb_1.2.3~alpha2_amd64.ddeb' } + file_md5 { '90d1107471eed48c73ad78b19ac83639' } + file_sha1 { '9c5af97cf8dfbe8126c807f540c88757f382b307' } + file_sha256 { 'a6bcc8a4b010f99ce0ea566ac69088e1910e754593c77f2b4942e3473e784e4d' } + + transient do + file_metadatum_trait { :ddeb } + end + end + trait(:buildinfo) do file_name { 'sample_1.2.3~alpha2_amd64.buildinfo' } - file_md5 { '12a5ac4f16ad75f8741327ac23b4c0d7' } - file_sha1 { '661f7507efa6fdd3763c95581d0baadb978b7ef5' } - file_sha256 { 'd0c169e9caa5b303a914b27b5adf69768fe6687d4925905b7d0cd9c0f9d4e56c' } + file_md5 { 'cc07ff4d741aec132816f9bd67c6875d' } + file_sha1 { 'bcc4ca85f17a31066b726cd4e04485ab24a682c6' } + file_sha256 { '5a3dac17c4ff0d49fa5f47baa973902b59ad2ee05147062b8ed8f19d196731d1' } transient do file_metadatum_trait { :buildinfo } @@ -204,6 +215,7 @@ FactoryBot.define do end trait(:keep) do + # do not override attributes end end diff --git a/spec/factories/packages/packages.rb b/spec/factories/packages/packages.rb index d0fde0a16cd..283df3428db 100644 --- a/spec/factories/packages/packages.rb +++ b/spec/factories/packages/packages.rb @@ -78,19 +78,24 @@ FactoryBot.define do after :build do |package, evaluator| if evaluator.published_in == :create - create(:debian_publication, package: package) + build(:debian_publication, package: package) elsif !evaluator.published_in.nil? create(:debian_publication, package: package, distribution: evaluator.published_in) end end after :create do |package, evaluator| + if evaluator.published_in == :create + package.debian_publication.save! + end + unless evaluator.without_package_files create :debian_package_file, :source, evaluator.file_metadatum_trait, package: package create :debian_package_file, :dsc, evaluator.file_metadatum_trait, package: package create :debian_package_file, :deb, evaluator.file_metadatum_trait, package: package create :debian_package_file, :deb_dev, evaluator.file_metadatum_trait, package: package create :debian_package_file, :udeb, evaluator.file_metadatum_trait, package: package + create :debian_package_file, :ddeb, evaluator.file_metadatum_trait, package: package create :debian_package_file, :buildinfo, evaluator.file_metadatum_trait, package: package create :debian_package_file, :changes, evaluator.file_metadatum_trait, package: package end |