Skip to content

Commit 3384122

Browse files
authored
Merge pull request #1446 from PRX/fix/megaphone_import_no_override
Fix megaphone import no override, and keep breaks
2 parents 7bd2ba9 + 0dafe80 commit 3384122

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

app/models/imports/podcast_megaphone_import.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,8 @@ def import_drafts
187187
def import_drafts=(val)
188188
self.published_only = !ActiveModel::Type::Boolean.new.cast(val)
189189
end
190+
191+
def override_enclosures=(val)
192+
super(ActiveModel::Type::Boolean.new.cast(val))
193+
end
190194
end

app/models/tasks/copy_media_task.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def update_owner
3434
media_resource.channels = info[:Audio][:Channels].to_i
3535
media_resource.duration = info[:Audio][:Duration].to_f / 1000
3636
media_resource.bit_rate = info[:Audio][:Bitrate].to_i / 1000
37-
if info[:Audio][:Tags] && media_resource.is_a?(Uncut)
37+
if info[:Audio][:Tags] && media_resource.is_a?(Uncut) && media_resource.ad_breaks.blank?
3838
breaks = media_resource.breaks_from_tags(info[:Audio][:Tags])
3939
original_count = [media_resource.episode.segment_count.to_i, 1].max
4040
media_resource.ad_breaks = breaks

test/controllers/imports_controller_test.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,22 @@ class ImportsControllerTest < ActionDispatch::IntegrationTest
3838
assert_difference("PodcastImport.count") do
3939
post podcast_imports_url(@podcast), params: {podcast_import: params}
4040
end
41-
4241
assert_redirected_to podcast_import_url(@podcast, PodcastImport.last)
4342
end
4443

44+
test "should create megaphone import with false override_enclosures" do
45+
megaphone_params = {url: feed.url, type: "PodcastMegaphoneImport", override_enclosures: "0"}
46+
47+
assert_difference("PodcastImport.count") do
48+
post podcast_imports_url(@podcast), params: {podcast_import: megaphone_params}
49+
end
50+
51+
last_import = PodcastImport.last
52+
assert !last_import.override_enclosures
53+
54+
assert_redirected_to podcast_import_url(@podcast, last_import)
55+
end
56+
4557
test "authorizes creating imports" do
4658
@podcast.update(prx_account_uri: "/api/v1/accounts/456")
4759
post podcast_imports_url(@podcast), params: {podcast_import: params}

test/models/tasks/copy_media_task_test.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,24 @@
128128
end
129129
end
130130
end
131+
it "will not override ad breaks if already set" do
132+
slice = Minitest::Mock.new
133+
134+
episode = build(:episode, segment_count: 3)
135+
uncut = build(:uncut, episode: episode)
136+
uncut.ad_breaks = [1.0, 2.0]
137+
138+
task.stub(:media_resource, uncut) do
139+
uncut.stub(:slice_contents, slice) do
140+
assert_equal [1.0, 2.0], task.media_resource.ad_breaks
141+
assert_equal 3, task.media_resource.episode.segment_count
142+
143+
task.update_owner
144+
assert_equal [1.0, 2.0], task.media_resource.ad_breaks
145+
assert_equal 3, task.media_resource.episode.segment_count
146+
end
147+
end
148+
end
131149

132150
it "updates audio metadata on complete" do
133151
task.media_resource.reset_media_attributes

0 commit comments

Comments
 (0)