Hello community,
here is the log from the commit of package yast2-services-manager for
openSUSE:Factory checked in at 2014-07-13 17:15:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-services-manager (Old)
and /work/SRC/openSUSE:Factory/.yast2-services-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-services-manager"
Changes:
--------
---
/work/SRC/openSUSE:Factory/yast2-services-manager/yast2-services-manager.changes
2014-06-17 11:22:56.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.yast2-services-manager.new/yast2-services-manager.changes
2014-07-13 17:15:27.000000000 +0200
@@ -1,0 +2,39 @@
+Tue Jul 8 09:34:32 CEST 2014 - [email protected]
+
+- Function 'localize' moved to ServicesManagerTarget library and
+ added a test case (bnc#886117)
+- 3.1.20
+
+-------------------------------------------------------------------
+Mon Jul 7 16:08:30 CEST 2014 - [email protected]
+
+- Fixed broken N_(...) call (bnc#886040)
+- 3.1.19
+
+-------------------------------------------------------------------
+Fri Jul 4 14:48:16 CEST 2014 - [email protected]
+
+- Default systemd target names marked for translation (bnc#884339)
+- 3.1.18
+
+-------------------------------------------------------------------
+Thu Jul 3 16:32:16 CEST 2014 - [email protected]
+
+- Marked "runlevel" as not clonable, the functionality is there
+ for importing old profiles only (bnc#873604)
+- 3.1.17
+
+-------------------------------------------------------------------
+Wed Jul 2 12:15:17 UTC 2014 - [email protected]
+
+- Fix failing tests
+- 3.1.16
+
+-------------------------------------------------------------------
+Tue Jul 1 09:19:08 UTC 2014 - [email protected]
+
+- Fix issues with ServicesManagerTarget (bnc#869656, bnc#867759,
+ bnc#875098)
+- 3.1.15
+
+-------------------------------------------------------------------
Old:
----
yast2-services-manager-3.1.14.tar.bz2
New:
----
yast2-services-manager-3.1.20.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-services-manager.spec ++++++
--- /var/tmp/diff_new_pack.0CYwkb/_old 2014-07-13 17:15:28.000000000 +0200
+++ /var/tmp/diff_new_pack.0CYwkb/_new 2014-07-13 17:15:28.000000000 +0200
@@ -24,7 +24,7 @@
######################################################################
Name: yast2-services-manager
-Version: 3.1.14
+Version: 3.1.20
Release: 0
BuildArch: noarch
@@ -33,7 +33,7 @@
Source0: %{name}-%{version}.tar.bz2
Requires: ruby
-Requires: yast2 >= 3.0.5
+Requires: yast2 >= 3.1.82
Requires: yast2-ruby-bindings >= 1.2.0
# need new enough installation for its inst clients
Conflicts: yast2-installation < 3.1.32
@@ -43,7 +43,7 @@
BuildRequires: ruby
BuildRequires: update-desktop-files
-BuildRequires: yast2 >= 3.0.5
+BuildRequires: yast2 >= 3.1.82
BuildRequires: yast2-ruby-bindings >= 1.2.0
# Support for 'data' directory in rake install task
BuildRequires: rubygem-rspec
++++++ yast2-services-manager-3.1.14.tar.bz2 ->
yast2-services-manager-3.1.20.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/package/yast2-services-manager.changes
new/yast2-services-manager-3.1.20/package/yast2-services-manager.changes
--- old/yast2-services-manager-3.1.14/package/yast2-services-manager.changes
2014-06-06 16:32:27.000000000 +0200
+++ new/yast2-services-manager-3.1.20/package/yast2-services-manager.changes
2014-07-08 11:42:27.000000000 +0200
@@ -1,4 +1,43 @@
-------------------------------------------------------------------
+Tue Jul 8 09:34:32 CEST 2014 - [email protected]
+
+- Function 'localize' moved to ServicesManagerTarget library and
+ added a test case (bnc#886117)
+- 3.1.20
+
+-------------------------------------------------------------------
+Mon Jul 7 16:08:30 CEST 2014 - [email protected]
+
+- Fixed broken N_(...) call (bnc#886040)
+- 3.1.19
+
+-------------------------------------------------------------------
+Fri Jul 4 14:48:16 CEST 2014 - [email protected]
+
+- Default systemd target names marked for translation (bnc#884339)
+- 3.1.18
+
+-------------------------------------------------------------------
+Thu Jul 3 16:32:16 CEST 2014 - [email protected]
+
+- Marked "runlevel" as not clonable, the functionality is there
+ for importing old profiles only (bnc#873604)
+- 3.1.17
+
+-------------------------------------------------------------------
+Wed Jul 2 12:15:17 UTC 2014 - [email protected]
+
+- Fix failing tests
+- 3.1.16
+
+-------------------------------------------------------------------
+Tue Jul 1 09:19:08 UTC 2014 - [email protected]
+
+- Fix issues with ServicesManagerTarget (bnc#869656, bnc#867759,
+ bnc#875098)
+- 3.1.15
+
+-------------------------------------------------------------------
Fri Jun 6 10:52:11 CEST 2014 - [email protected]
- AutoYast summary - hard-coded ERB moved to separate file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/package/yast2-services-manager.spec
new/yast2-services-manager-3.1.20/package/yast2-services-manager.spec
--- old/yast2-services-manager-3.1.14/package/yast2-services-manager.spec
2014-06-06 16:32:27.000000000 +0200
+++ new/yast2-services-manager-3.1.20/package/yast2-services-manager.spec
2014-07-08 11:42:27.000000000 +0200
@@ -24,7 +24,7 @@
######################################################################
Name: yast2-services-manager
-Version: 3.1.14
+Version: 3.1.20
Release: 0
BuildArch: noarch
@@ -33,7 +33,7 @@
Source0: %{name}-%{version}.tar.bz2
Requires: ruby
-Requires: yast2 >= 3.0.5
+Requires: yast2 >= 3.1.82
Requires: yast2-ruby-bindings >= 1.2.0
# need new enough installation for its inst clients
Conflicts: yast2-installation < 3.1.32
@@ -44,7 +44,7 @@
BuildRequires: ruby
BuildRequires: update-desktop-files
BuildRequires: yast2-ruby-bindings >= 1.2.0
-BuildRequires: yast2 >= 3.0.5
+BuildRequires: yast2 >= 3.1.82
# Support for 'data' directory in rake install task
BuildRequires: rubygem-yast-rake >= 0.1.7
BuildRequires: rubygem-rspec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/src/clients/default_target_proposal.rb
new/yast2-services-manager-3.1.20/src/clients/default_target_proposal.rb
--- old/yast2-services-manager-3.1.14/src/clients/default_target_proposal.rb
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/src/clients/default_target_proposal.rb
2014-07-08 11:42:27.000000000 +0200
@@ -5,7 +5,7 @@
import 'Linuxrc'
import 'Mode'
import 'Pkg'
- import "Popup"
+ import 'Popup'
import 'ProductFeatures'
import 'ServicesManagerTarget'
import 'Wizard'
@@ -97,10 +97,18 @@
def generate_target_buttons
Builtins.y2milestone "Available targets: #{available_targets}"
+
radio_buttons = available_targets.map do |target_name|
selected = target_name == ServicesManagerTarget.default_target
- Left(RadioButton(Id(target_name), target_name, selected))
+ Left(
+ RadioButton(
+ Id(target_name),
+ ServicesManagerTargetClass::BaseTargets.localize(target_name),
+ selected
+ )
+ )
end
+
VBox(*radio_buttons)
end
@@ -178,8 +186,14 @@
end
def create
- proposal = { 'preformatted_proposal' => list(default_target) }
+ proposal = {
+ 'preformatted_proposal' => list(
+ ServicesManagerTargetClass::BaseTargets.localize(default_target)
+ )
+ }
+
return proposal if warnings.empty?
+
proposal.update 'warning_level' => :warning
proposal.update 'warning' => list(*warnings)
proposal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/src/desktop/runlevel.desktop
new/yast2-services-manager-3.1.20/src/desktop/runlevel.desktop
--- old/yast2-services-manager-3.1.14/src/desktop/runlevel.desktop
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/src/desktop/runlevel.desktop
2014-07-08 11:42:27.000000000 +0200
@@ -1,4 +1,5 @@
# This file is needed for legacy support of runlevel autoyast profile
+# and provides only backward compatibility for importing old profiles
[Desktop Entry]
Type=Application
@@ -14,6 +15,8 @@
X-SuSE-YaST-Argument=
X-SuSE-YaST-RootOnly=true
X-SuSE-YaST-AutoInst=all
+# bnc#873604 Export is not supported, use services-manager instead
+X-SuSE-YaST-AutoInstClonable=false
X-SuSE-YaST-Geometry=
X-SuSE-YaST-SortKey=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/src/modules/services_manager.rb
new/yast2-services-manager-3.1.20/src/modules/services_manager.rb
--- old/yast2-services-manager-3.1.14/src/modules/services_manager.rb
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/src/modules/services_manager.rb
2014-07-08 11:42:27.000000000 +0200
@@ -52,7 +52,6 @@
# @return Boolean if successful
def save
target_saved = ServicesManagerTarget.save
- errors << ServicesManagerTarget.errors
services_saved = ServicesManagerService.save
errors << ServicesManagerService.errors
!!(target_saved && services_saved)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/src/modules/services_manager_service.rb
new/yast2-services-manager-3.1.20/src/modules/services_manager_service.rb
--- old/yast2-services-manager-3.1.14/src/modules/services_manager_service.rb
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/src/modules/services_manager_service.rb
2014-07-08 11:42:27.000000000 +0200
@@ -1,4 +1,6 @@
- module Yast
+require "yast"
+
+module Yast
import "Service"
import "Mode"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/src/modules/services_manager_target.rb
new/yast2-services-manager-3.1.20/src/modules/services_manager_target.rb
--- old/yast2-services-manager-3.1.14/src/modules/services_manager_target.rb
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/src/modules/services_manager_target.rb
2014-07-08 11:42:27.000000000 +0200
@@ -2,62 +2,104 @@
module Yast
import 'Mode'
+ import 'SystemdTarget'
class ServicesManagerTargetClass < Module
- LIST_UNITS_COMMAND = 'systemctl list-unit-files --type target'
- LIST_TARGETS_COMMAND = 'systemctl --all --type target'
- COMMAND_OPTIONS = ' --no-legend --no-pager --no-ask-password '
- TERM_OPTIONS = ' LANG=C TERM=dumb COLUMNS=1024 '
- TARGET_SUFFIX = '.target'
- DEFAULT_TARGET = 'default'
- SYSTEMD_TARGETS_DIR = '/usr/lib/systemd/system'
- DEFAULT_TARGET_SYMLINK =
"/etc/systemd/system/#{DEFAULT_TARGET}#{TARGET_SUFFIX}"
-
- module Status
- ENABLED = 'enabled'
- DISABLED = 'disabled'
- SUPPORTED = [ENABLED, DISABLED]
- ACTIVE = 'active'
- LOADED = 'loaded'
- end
+ include Yast::Logger
module BaseTargets
+ extend Yast::I18n
+
+ def initialize
+ textdomain 'services-manager'
+ end
+
GRAPHICAL = 'graphical'
MULTIUSER = 'multi-user'
+
+ TRANSLATIONS = {
+ # Default systemd target (previously: runlevel 5) option #1
+ GRAPHICAL => N_("Graphical mode"),
+ # Default systemd target (previously: runlevel 3) option #2
+ MULTIUSER => N_("Text mode"),
+ }
+
+ def self.localize(target_name)
+ _(TRANSLATIONS[target_name] || target_name)
+ end
end
- attr_accessor :modified, :targets, :force, :proposal_reason
- attr_reader :errors, :default_target
+ # The targets listed below should not be displayed to the users in the
drop down
+ # menu on the services-manager UI.
+ # More info at:
+ # * https://bugzilla.novell.com/show_bug.cgi?id=869656
+ # * http://www.freedesktop.org/software/systemd/man/bootup.html
+ # * http://www.freedesktop.org/wiki/Software/systemd/SystemUpdates/
+ BLACKLISTED_TARGETS = %w(
+ halt
+ kexec
+ poweroff
+ reboot
+ system-update
+ )
+
+ # @return [Boolean] True if properties of the ServicesManagerTarget has
been modified
+ attr_accessor :modified
+
+ # Used during installation workflow
+ # @return [Boolean] Used by client default_target_proposal to override the
default settings
+ attr_accessor :force
+
+ # Shown in client default_target_proposal during installation workflow
+ # @return [String] Shows a reason why the default target has been selected;
+ attr_accessor :proposal_reason
+
+ # @return [String] Name of the default systemd target unit
+ attr_reader :default_target
+
+ # @return [Hash] Collection of available targets
+ # @example {'rescue' => {:enabled=>false, :loaded=>true, :active=>false,
:description=>'Rescue'}}
+ attr_reader :targets
alias_method :all, :targets
def initialize
textdomain 'services-manager'
- @errors = []
@targets = {}
+ @modified = false
@default_target = ''
- read_targets if Mode.normal
+ read_targets
end
def read_targets
- find_default_target
- load_supported_targets
- load_target_details
- end
+ return unless Mode.normal
- alias_method :read, :read_targets
+ default_target = SystemdTarget.get_default
+ @default_target = default_target ? default_target.name : ''
- def valid?
- errors.empty?
+ SystemdTarget.all.each do |target|
+ next unless target.allow_isolate?
+ next if BLACKLISTED_TARGETS.member?(target.name)
+
+ targets[target.name] = {
+ :enabled => target.enabled?,
+ :loaded => target.loaded?,
+ :active => target.active?,
+ :description => target.description
+ }
+ end
end
+ alias_method :read, :read_targets
+
def default_target= new_default
- if Mode.normal
- errors << _("Target #{new_default} not found") unless
targets.keys.include?(new_default)
+ if Mode.normal && !targets.keys.include?(new_default)
+ raise "Target #{new_default} not found, available only
#{targets.keys.join(', ')}"
end
+
@default_target = new_default
self.modified = true
- Builtins.y2milestone "New default target set: #{new_default}"
+ log.info "New default target has been set: #{new_default}"
new_default
end
@@ -76,119 +118,17 @@
end
def save
- Builtins.y2milestone('Saving default target...')
- if !modified
- Builtins.y2milestone("Nothing to do, current default target already
set to '#{default_target}'")
- return true
- end
-
- if !valid?
- errors.each {|e| Builtins.y2error(e) }
- Builtins.y2error("Invalid default target '#{default_target}'; aborting
saving")
- return false
- end
- removed = remove_default_target_symlink
- created = create_default_target_symlink
- removed && created
+ return true if !modified
+ log.info('Saving default target...')
+ SystemdTarget.set_default(default_target)
end
def reset
- errors.clear
+ targets.clear
read_targets
self.modified = false
end
- private
-
- def find_default_target
- @default_target = get_default_target_filename.chomp(TARGET_SUFFIX)
- end
-
- def remove_default_target_symlink
- Builtins.y2milestone("Removing default target symlink..")
- removed = SCR.Execute(path('.target.remove'), DEFAULT_TARGET_SYMLINK)
- if removed
- Builtins.y2milestone "#{DEFAULT_TARGET_SYMLINK} has been removed"
- else
- Builtins.y2error "Removing of #{DEFAULT_TARGET_SYMLINK} has failed"
- end
- removed
- end
-
- def create_default_target_symlink
- Builtins.y2milestone("Creating new default target symlink for
#{default_target_file}")
- SCR.Execute(path('.target.symlink'), default_target_file,
DEFAULT_TARGET_SYMLINK)
- created = SCR.Read(path('.target.size'), DEFAULT_TARGET_SYMLINK) > 0
- if created
- Builtins.y2milestone("Symlink has been created")
- else
- Builtins.y2error("Default target unit file '#{default_target}' is
empty")
- end
- created
- end
-
- def get_default_target_filename
- File.basename(SCR.Read(path('.target.symlink'),
DEFAULT_TARGET_SYMLINK).to_s)
- end
-
- def default_target_file
- File.join(SYSTEMD_TARGETS_DIR, "#{default_target}#{TARGET_SUFFIX}")
- end
-
- def list_target_units
- command = TERM_OPTIONS + LIST_UNITS_COMMAND + COMMAND_OPTIONS
- SCR.Execute(path('.target.bash_output'), command)
- end
-
- def list_targets_details
- command = TERM_OPTIONS + LIST_TARGETS_COMMAND + COMMAND_OPTIONS
- SCR.Execute(path('.target.bash_output'), command)
- end
-
- def load_supported_targets
- self.targets = {}
- output = list_target_units
- stdout = output.fetch 'stdout'
- stderr = output.fetch 'stderr'
- exit_code = output.fetch 'exit'
- errors << stderr if exit_code.to_i != 0 && !stderr.to_s.empty?
- stdout.each_line do |line|
- target, status = line.split(/[\s]+/)
- if Status::SUPPORTED.include?(status)
- target.chomp! TARGET_SUFFIX
- next if target == DEFAULT_TARGET
- self.targets[target] = { :enabled => status == Status::ENABLED }
- end
- end
- Builtins.y2milestone "Loaded supported target units: %1", targets.keys
- end
-
- def load_target_details
- output = list_targets_details
- stdout = output.fetch 'stdout'
- stderr = output.fetch 'stderr'
- exit_code = output.fetch 'exit'
- errors << stderr if exit_code.to_i != 0 && !stderr.to_s.empty?
- unknown_targets = []
- stdout.each_line do |line|
- target, loaded, active, _, *description = line.split(/[\s]+/)
- target.chomp! TARGET_SUFFIX
- if targets[target]
- targets[target][:loaded] = loaded == Status::LOADED
- targets[target][:active] = active == Status::ACTIVE
- targets[target][:description] = description.join(' ')
- else
- unknown_targets << target
- end
- end
-
- Builtins.y2milestone 'Loaded target details: %1', targets
-
- if !unknown_targets.empty?
- Builtins.y2warning "No details loaded for these targets:
#{unknown_targets.join(', ')} "
- end
- end
-
publish({:function => :all, :type => "map <string, map> ()" })
publish({:function => :default_target, :type => "string ()" })
publish({:function => :default_target=,:type => "string (string)" })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-services-manager-3.1.14/test/services_manager_target_test.rb
new/yast2-services-manager-3.1.20/test/services_manager_target_test.rb
--- old/yast2-services-manager-3.1.14/test/services_manager_target_test.rb
2014-06-06 16:07:33.000000000 +0200
+++ new/yast2-services-manager-3.1.20/test/services_manager_target_test.rb
2014-07-08 11:42:27.000000000 +0200
@@ -3,66 +3,102 @@
require_relative "test_helper"
module Yast
- describe Yast::ServicesManagerTarget do
- attr_reader :target
-
- before do
- ServicesManagerTargetClass.any_instance
- .stub(:get_default_target_filename)
- .and_return('multi-user.target')
- ServicesManagerTargetClass.any_instance
- .stub(:list_target_units)
- .and_return({
- 'stdout' => "multi-user.target enabled\n" +
- "graphical.target disabled",
- 'stderr' => '',
- 'exit' => 0
- })
-
- ServicesManagerTargetClass.any_instance
- .stub(:list_targets_details)
- .and_return({
- 'stdout' => "multi-user.target loaded active active Multi-User
System\n" +
- "graphical.target loaded active active Graphical
Interface",
- 'stderr' => '',
- 'exit' => 0
- })
-
ServicesManagerTargetClass.any_instance.stub(:remove_default_target_symlink).and_return(true)
-
ServicesManagerTargetClass.any_instance.stub(:create_default_target_symlink).and_return(true)
- ServicesManagerTargetClass.any_instance.stub(:default_target_file)
- @target = ServicesManagerTargetClass.new
+ module TestTarget
+ class Template < Struct.new(
+ :name, :allow_isolate?, :enabled?, :loaded?, :active?, :description
+ )
end
- it "can set supported target" do
- supported_target = 'graphical'
- target.default_target = supported_target
- expect(target.default_target).to eq(supported_target)
- expect(target.modified).to eq(true)
- expect(target.errors).to be_empty
- expect(target.valid?).to be(true)
- expect(target.save).to eq(true)
+ GRAPHICAL = Template.new('graphical', true)
+ MULTI_USER = Template.new('multi-user', true)
+ POWEROFF = Template.new('poweroff', true)
+ SLEEP = Template.new('sleep', false)
+
+ ALL = [ GRAPHICAL, MULTI_USER, POWEROFF, SLEEP ]
+ end
+
+ extend Yast::I18n
+ Yast::textdomain "services-manager"
+
+ describe ServicesManagerTarget do
+ context "reading targets" do
+ it "reads default target name and other targets" do
+ expect(SystemdTarget).to receive(:all).and_return(TestTarget::ALL)
+ expect(SystemdTarget).to
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+ target = ServicesManagerTargetClass.new
+ expect(target.default_target).to eq('graphical')
+ expect(target.targets).not_to be_empty
+ expect(target.targets.keys).to include('multi-user')
+ expect(target.targets.keys).to include('graphical')
+ expect(target.targets.keys).not_to include('poweroff')
+ expect(target.targets.keys).not_to include('sleep')
+ end
+
+ it "skips reading targets if Mode.normal is false" do
+ Mode.SetMode('not-normal')
+ expect(SystemdTarget).not_to receive(:all)
+ expect(SystemdTarget).not_to receive(:get_default)
+ target = ServicesManagerTargetClass.new
+ expect(target.targets).to be_empty
+ expect(target.default_target).to be_empty
+ Mode.SetMode('normal')
+ end
end
- it "can set but not save unsupported target" do
- unsupported = 'suse'
- target.default_target = unsupported
- expect(target.default_target).to eq(unsupported)
- expect(target.errors).not_to be_empty
- expect(target.valid?).to be(false)
- expect(target.save).to be(false)
+ context "saving default target" do
+ it "saves the modified default target name" do
+ expect(SystemdTarget).to receive(:all).and_return(TestTarget::ALL)
+ expect(SystemdTarget).to
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+ expect(SystemdTarget).to receive(:set_default).and_return(true)
+ target = ServicesManagerTargetClass.new
+ expect(target.default_target).to eq('graphical')
+ target.default_target = 'multi-user'
+ expect(target.default_target).to eq('multi-user')
+ expect(target.save).to eq(true)
+ end
+
+ it "skips setting the default target if not modified" do
+ expect(SystemdTarget).to receive(:all).and_return(TestTarget::ALL)
+ expect(SystemdTarget).to
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+ target = ServicesManagerTargetClass.new
+ expect(target.modified).to eq(false)
+ expect(target.save).to eq(true)
+ end
end
- it "can reset the modified target" do
- original_target = target.default_target
- new_target = 'test'
- target.default_target = new_target
- expect(target.default_target).to eq(new_target)
- expect(target.modified).to eq(true)
- target.reset
- expect(target.modified).to eq(false)
- expect(target.default_target).not_to eq(new_target)
- expect(target.default_target).to eq(original_target)
+ context "re-setting targets" do
+ it "reloads the object properties" do
+ expect(SystemdTarget).to receive(:all).and_return(TestTarget::ALL)
+ expect(SystemdTarget).to
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+ target = ServicesManagerTargetClass.new
+ target.default_target = 'multi-user'
+ expect(target.modified).to eq(true)
+ expect(SystemdTarget).to receive(:all).and_return(TestTarget::ALL)
+ expect(SystemdTarget).to
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+ target.reset
+ expect(target.modified).to eq(false)
+ expect(target.default_target).to eq('graphical')
+ end
end
+ end
+ describe ServicesManagerTargetClass::BaseTargets do
+ describe "#localize" do
+ context "when target is known" do
+ it "localizes the target" do
+ expect(ServicesManagerTargetClass::BaseTargets.localize(
+ ServicesManagerTargetClass::BaseTargets::GRAPHICAL
+ )).to eq(Yast::_("Graphical mode"))
+ end
+ end
+
+ context "when target is unknown" do
+ it "returns the given target unlocalized" do
+ expect(ServicesManagerTargetClass::BaseTargets.localize(
+ "unknown-target"
+ )).to eq("unknown-target")
+ end
+ end
+ end
end
end
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]