Upstream sync

This commit is contained in:
Senad Uka
2020-09-13 20:09:48 +02:00
parent 3db230de9b
commit 5cf7be6f13
59 changed files with 613 additions and 188 deletions

View File

@@ -86,34 +86,36 @@ describe GenerateContractsZipJob do
end
it "generates ZIP containing CSV file with all filtered releases data for filtered releases" do
lowercase_plural = subject.constantize.model_name.plural
GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
if subject.respond_to?(:complete) && subject.respond_to?(:incomplete)
lowercase_plural = subject.constantize.model_name.plural
GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
complete_releases = project.public_send(lowercase_plural).complete
incomplete_releases = project.public_send(lowercase_plural).incomplete
complete_releases = project.public_send(lowercase_plural).complete
incomplete_releases = project.public_send(lowercase_plural).incomplete
generated_zip = download.file.blob.download
csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
while entry = io.get_next_entry
next unless entry.name == csv_file_name
generated_zip = download.file.blob.download
csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
while entry = io.get_next_entry
next unless entry.name == csv_file_name
csv_file = entry.get_input_stream.read
csv_file = entry.get_input_stream.read
release_class = Object.const_get subject
release_headers = release_class.csv_headers
release_class = Object.const_get subject
release_headers = release_class.csv_headers
release_headers.each do |header|
expect(csv_file).to match header
expect(csv_file).not_to match translation_missing
end
release_headers.each do |header|
expect(csv_file).to match header
expect(csv_file).not_to match translation_missing
end
complete_releases.each do |release|
expect(csv_file).to match release.person_first_name
end
complete_releases.each do |release|
expect(csv_file).to match release.person_first_name
end
incomplete_releases.each do |release|
expect(csv_file).not_to match release.person_first_name
incomplete_releases.each do |release|
expect(csv_file).not_to match release.person_first_name
end
end
end
end
@@ -164,16 +166,19 @@ describe GenerateContractsZipJob do
end
context "generates ZIP for acquired media releases" do
let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project) }
let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "John Doe") }
let(:release2) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Jane Doe") }
let(:release3) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Brad Doe") }
subject { 'AcquiredMediaRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for appearance releases" do
let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John Doe") }
let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane Doe") }
let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad Doe") }
let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John") }
let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane") }
let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad") }
subject { 'AppearanceRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
@@ -181,45 +186,63 @@ describe GenerateContractsZipJob do
end
context "generates ZIP for location releases" do
let(:release) { create(:location_release_with_contract_template, :native, project: project) }
let(:release) { create(:location_release_with_contract_template, :native, project: project, name: "John") }
let(:release2) { create(:location_release_with_contract_template, :native, project: project, name: "Jane") }
let(:release3) { create(:location_release_with_contract_template, :native, project: project, name: "Brad") }
subject { 'LocationRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for material releases" do
let(:release) { create(:material_release_with_contract_template, :native, project: project) }
let(:release) { create(:material_release_with_contract_template, :native, project: project, name: "John") }
let(:release2) { create(:material_release_with_contract_template, :native, project: project, name: "Jane") }
let(:release3) { create(:material_release_with_contract_template, :native, project: project, name: "Brad") }
subject { 'MaterialRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for medical releases" do
let(:release) { create(:medical_release_with_contract_template, :native, project: project) }
let(:release) { create(:medical_release_with_contract_template, :native, project: project, person_name: "John Doe") }
let(:release2) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
let(:release3) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'MedicalRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for misc releases" do
let(:release) { create(:misc_release_with_contract_template, :native, project: project) }
let(:release) { create(:misc_release_with_contract_template, :native, project: project, person_name: "John Doe") }
let(:release2) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
let(:release3) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'MiscRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for music releases" do
let(:release) { create(:music_release_with_contract_template, project: project) }
let(:release) { create(:music_release_with_contract_template, project: project, name: "John") }
let(:release2) { create(:music_release_with_contract_template, project: project, name: "Jane") }
let(:release3) { create(:music_release_with_contract_template, project: project, name: "Brad") }
subject { 'MusicRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for talent releases" do
let(:release) { create(:talent_release_with_contract_template, :native, project: project) }
let(:release) { create(:talent_release_with_contract_template, :native, project: project, person_name: "John Doe") }
let(:release2) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
let(:release3) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'TalentRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "When there are errors" do