diff --git a/library/systemd/src/lib/yast2/system_service.rb b/library/systemd/src/lib/yast2/system_service.rb index a8c28ded1..b57d6748c 100644 --- a/library/systemd/src/lib/yast2/system_service.rb +++ b/library/systemd/src/lib/yast2/system_service.rb @@ -153,7 +153,7 @@ def build(name) # # @param names [Array] service names to find # - # @return [Array] + # @return [Array] when not found then the SystemService.servie is nil for the respective service in the list def find_many(names) Yast2::Systemd::Service.find_many(names).map { |s| new(s) } end diff --git a/library/systemd/test/yast2/system_service_test.rb b/library/systemd/test/yast2/system_service_test.rb index ef0880414..c73655a5f 100755 --- a/library/systemd/test/yast2/system_service_test.rb +++ b/library/systemd/test/yast2/system_service_test.rb @@ -119,15 +119,30 @@ let(:apparmor) { instance_double(Yast2::Systemd::Service) } let(:cups) { instance_double(Yast2::Systemd::Service) } - before do - allow(Yast2::Systemd::Service).to receive(:find_many).with(["apparmor", "cups"]) - .and_return([apparmor, cups]) + context "services can be found on the system" do + before do + allow(Yast2::Systemd::Service).to receive(:find_many).with(["apparmor", "cups"]) + .and_return([apparmor, cups]) + end + + it "finds a set of systemd services" do + system_services = described_class.find_many(["apparmor", "cups"]) + expect(system_services).to be_all(Yast2::SystemService) + expect(system_services.map(&:service)).to eq([apparmor, cups]) + end end - it "finds a set of systemd services" do - system_services = described_class.find_many(["apparmor", "cups"]) - expect(system_services).to be_all(Yast2::SystemService) - expect(system_services.map(&:service)).to eq([apparmor, cups]) + context "no service can be found on the system" do + before do + allow(Yast2::Systemd::Service).to receive(:find_many).with(["apparmor", "cups"]) + .and_return([nil, nil]) + end + + it "returns a list of empty/nil services" do + system_services = described_class.find_many(["apparmor", "cups"]) + expect(system_services).to be_all(Yast2::SystemService) + expect(system_services.map(&:service)).to eq([nil, nil]) + end end end diff --git a/package/yast2.changes b/package/yast2.changes index 4b2d1e738..ec16bb08a 100644 --- a/package/yast2.changes +++ b/package/yast2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Dec 12 15:36:34 UTC 2018 - schubi@suse.de + +- Added more testcases if e.g. system is running in chroot + environment and systemd does not work properly (bsc#1113732) + ------------------------------------------------------------------- Wed Dec 12 14:17:02 UTC 2018 - Stefan Hundhammer