Skip to content

Commit

Permalink
Add Product#release_notes
Browse files Browse the repository at this point in the history
* Get product release notes.
* It relies on Y2Packager::ReleaseNotesReader.
  • Loading branch information
imobachgs committed Sep 14, 2017
1 parent 8c14206 commit 82c72e3
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/lib/y2packager/product.rb
Expand Up @@ -13,6 +13,7 @@
Yast.import "Pkg"
Yast.import "Language"
require "y2packager/product_reader"
require "y2packager/release_notes_reader"

module Y2Packager
# Represent a product which is present in a repository. At this
Expand Down Expand Up @@ -185,5 +186,16 @@ def license_confirmation=(confirmed)
def license_confirmed?
Yast::Pkg.PrdHasLicenseConfirmed(name)
end

# Return product's release notes
#
# @param format [Symbol] Release notes format (:txt, :rtf, etc.)
# @return pref_lang [String] Preferred language (fallback to english)
# @return [String] Release notes
# @see ReleaseNotesReader
def release_notes(format = :txt, lang = nil)
release_notes_lang = lang || Yast::Language.language
ReleaseNotesReader.new.for(self, lang: release_notes_lang, format: format)
end
end
end
26 changes: 26 additions & 0 deletions test/product_test.rb
Expand Up @@ -266,4 +266,30 @@
end
end
end

describe "#release_notes" do
let(:reader) { Y2Packager::ReleaseNotesReader.new }
let(:lang) { "en_US" }
let(:relnotes_content) { "Release Notes" }

before do
allow(Y2Packager::ReleaseNotesReader).to receive(:new)
.and_return(reader)
allow(Yast::Language).to receive(:language).and_return(lang)
end

it "returns release notes in the current language" do
expect(reader).to receive(:for).with(product, lang: lang, format: :txt)
.and_return(relnotes_content)
expect(product.release_notes).to eq(relnotes_content)
end

context "when language/format are given" do
it "returns release notes in the given language/format" do
expect(reader).to receive(:for).with(product, lang: "de_DE", format: :rtf)
.and_return(relnotes_content)
expect(product.release_notes(:rtf, "de_DE")).to eq(relnotes_content)
end
end
end
end

0 comments on commit 82c72e3

Please sign in to comment.