Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-ruby-dbus for
openSUSE:Factory checked in at 2025-04-04 17:29:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-ruby-dbus (Old)
and /work/SRC/openSUSE:Factory/.rubygem-ruby-dbus.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-ruby-dbus"
Fri Apr 4 17:29:11 2025 rev:41 rq:1266924 version:0.25.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-ruby-dbus/rubygem-ruby-dbus.changes
2025-01-07 20:51:25.695972652 +0100
+++
/work/SRC/openSUSE:Factory/.rubygem-ruby-dbus.new.1907/rubygem-ruby-dbus.changes
2025-04-04 17:29:28.132914781 +0200
@@ -1,0 +2,9 @@
+Thu Apr 3 12:35:53 UTC 2025 - Martin Vidner <[email protected]>
+
+- 0.25.0
+ Bug fixes:
+ * Mention qualified property name in Get or Set errors
+ (gh#mvidner/ruby-dbus#147).
+ * Fix declaring logger and ostruct gems for Ruby 3.5
+
+-------------------------------------------------------------------
Old:
----
ruby-dbus-0.24.0.gem
New:
----
ruby-dbus-0.25.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-ruby-dbus.spec ++++++
--- /var/tmp/diff_new_pack.AWlICo/_old 2025-04-04 17:29:29.144956509 +0200
+++ /var/tmp/diff_new_pack.AWlICo/_new 2025-04-04 17:29:29.144956509 +0200
@@ -24,12 +24,14 @@
#
Name: rubygem-ruby-dbus
-Version: 0.24.0
+Version: 0.25.0
Release: 0
%define mod_name ruby-dbus
%define mod_full_name %{mod_name}-%{version}
# MANUAL
+BuildRequires: %{rubygem logger}
BuildRequires: %{rubygem nokogiri >= 1.12}
+BuildRequires: %{rubygem ostruct}
BuildRequires: %{rubygem packaging_rake_tasks}
BuildRequires: %{rubygem rake}
BuildRequires: %{rubygem rspec >= 3.9}
++++++ gem2rpm.yml ++++++
--- /var/tmp/diff_new_pack.AWlICo/_old 2025-04-04 17:29:29.176957828 +0200
+++ /var/tmp/diff_new_pack.AWlICo/_new 2025-04-04 17:29:29.180957993 +0200
@@ -73,7 +73,9 @@
Provides: ruby-dbus = %{version}
Obsoletes: ruby-dbus < %{version}
:preamble: |-
+ BuildRequires: %{rubygem logger}
BuildRequires: %{rubygem nokogiri >= 1.12}
+ BuildRequires: %{rubygem ostruct}
BuildRequires: %{rubygem packaging_rake_tasks}
BuildRequires: %{rubygem rake}
BuildRequires: %{rubygem rspec >= 3.9}
++++++ ruby-dbus-0.24.0.gem -> ruby-dbus-0.25.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/NEWS.md new/NEWS.md
--- old/NEWS.md 2025-01-02 15:13:57.000000000 +0100
+++ new/NEWS.md 2025-04-03 17:18:04.000000000 +0200
@@ -2,6 +2,14 @@
## Unreleased
+## Ruby D-Bus 0.25.0 - 2025-04-03
+
+Bug fixes:
+ * Mention qualified property name in Get or Set errors ([#147][]).
+ * Fix declaring logger and ostruct gems for Ruby 3.5
+
+[#147]: https://github.com/mvidner/ruby-dbus/pull/147
+
## Ruby D-Bus 0.24.0 - 2025-01-02
Bug fixes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile 2025-01-02 15:13:57.000000000 +0100
+++ new/Rakefile 2025-04-03 17:18:04.000000000 +0200
@@ -4,7 +4,7 @@
require "rake"
require "fileutils"
require "tmpdir"
-require "rspec/core/rake_task"
+require "shellwords"
begin
require "rubocop/rake_task"
rescue LoadError
@@ -34,13 +34,18 @@
task default: [:spec, :rubocop]
task test: :spec
-RSpec::Core::RakeTask.new("bare:spec")
+desc "Run RSpec code examples"
+task "bare:spec", [:options] do |_t, args|
+ args.with_defaults(options: "")
+ sh "rspec #{args[:options]}"
+end
["spec"].each do |tname|
desc "Run bare:#{tname} in the proper environment"
- task tname do |_t|
+ task tname, [:options] do |_t, args|
+ args.with_defaults(options: "")
cd "spec/tools" do
- sh "./test_env rake bare:#{tname}"
+ sh "./test_env rake bare:#{tname}[#{args[:options].shellescape}]"
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/VERSION new/VERSION
--- old/VERSION 2025-01-02 15:13:57.000000000 +0100
+++ new/VERSION 2025-04-03 17:18:04.000000000 +0200
@@ -1 +1 @@
-0.24.0
+0.25.0
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/logger.rb new/lib/dbus/logger.rb
--- old/lib/dbus/logger.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/logger.rb 2025-04-03 17:18:04.000000000 +0200
@@ -17,7 +17,7 @@
# The default one logs to STDERR,
# with DEBUG if $DEBUG is set, otherwise INFO.
def logger
- if @logger.nil?
+ if !defined?(@logger) || @logger.nil?
debug = $DEBUG || ENV["RUBY_DBUS_DEBUG"]
@logger = Logger.new($stderr)
@logger.level = debug ? Logger::DEBUG : Logger::INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/marshall.rb new/lib/dbus/marshall.rb
--- old/lib/dbus/marshall.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/marshall.rb 2025-04-03 17:18:04.000000000 +0200
@@ -180,7 +180,7 @@
case alignment
when 1, 2, 4, 8
bits = alignment - 1
- num + bits & ~bits
+ (num + bits) & ~bits
else
raise ArgumentError, "Unsupported alignment #{alignment}"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/message.rb new/lib/dbus/message.rb
--- old/lib/dbus/message.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/message.rb 2025-04-03 17:18:04.000000000 +0200
@@ -103,9 +103,9 @@
def to_s
"#{message_type} sender=#{sender} -> dest=#{destination} " \
- "serial=#{serial} reply_serial=#{reply_serial} " \
- "path=#{path}; interface=#{interface}; member=#{member} " \
- "error_name=#{error_name}"
+ "serial=#{serial} reply_serial=#{reply_serial} " \
+ "path=#{path}; interface=#{interface}; member=#{member} " \
+ "error_name=#{error_name}"
end
# @return [String] name of message type, as used in match rules:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/object.rb new/lib/dbus/object.rb
--- old/lib/dbus/object.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/object.rb 2025-04-03 17:18:04.000000000 +0200
@@ -116,7 +116,7 @@
# Forgetting to declare the interface for a method/signal/property
# is a ScriptError.
- class UndefinedInterface < ScriptError # rubocop:disable
Lint/InheritException
+ class UndefinedInterface < ScriptError
def initialize(sym)
super "No interface specified for #{sym}. Enclose it in
dbus_interface."
end
@@ -253,7 +253,7 @@
property = Property.new(dbus_name, type, :read, ruby_name: ruby_name)
@@cur_intf.define(property)
- ruby_name_eq = "#{ruby_name}=".to_sym
+ ruby_name_eq = :"#{ruby_name}="
return unless method_defined?(ruby_name_eq)
dbus_watcher(ruby_name, dbus_name: dbus_name, emits_changed_signal:
emits_changed_signal)
@@ -294,7 +294,7 @@
interface_name = @@cur_intf.name
ruby_name = ruby_name.to_s.sub(/=$/, "").to_sym
- ruby_name_eq = "#{ruby_name}=".to_sym
+ ruby_name_eq = :"#{ruby_name}="
original_ruby_name_eq = "_original_#{ruby_name_eq}"
dbus_name = make_dbus_name(ruby_name, dbus_name: dbus_name)
@@ -455,11 +455,16 @@
property = dbus_lookup_property(interface_name, property_name)
if property.readable?
- ruby_name = property.ruby_name
- value = public_send(ruby_name)
- # may raise, DBus.error or
https://ruby-doc.com/core-3.1.0/TypeError.html
- typed_value = Data.make_typed(property.type, value)
- [typed_value]
+ begin
+ ruby_name = property.ruby_name
+ value = public_send(ruby_name)
+ # may raise, DBus.error or
https://ruby-doc.com/core-3.1.0/TypeError.html
+ typed_value = Data.make_typed(property.type, value)
+ [typed_value]
+ rescue StandardError => e
+ msg = "When getting '#{interface_name}.#{property_name}': " +
e.message
+ raise e.exception(msg)
+ end
else
raise DBus.error("org.freedesktop.DBus.Error.PropertyWriteOnly"),
"Property '#{interface_name}.#{property_name}' (on object
'#{@path}') is not readable"
@@ -470,11 +475,16 @@
property = dbus_lookup_property(interface_name, property_name)
if property.writable?
- ruby_name_eq = "#{property.ruby_name}="
- # TODO: declare dbus_method :Set to take :exact argument
- # and type check it here before passing its :plain value
- # to the implementation
- public_send(ruby_name_eq, value)
+ begin
+ ruby_name_eq = "#{property.ruby_name}="
+ # TODO: declare dbus_method :Set to take :exact argument
+ # and type check it here before passing its :plain value
+ # to the implementation
+ public_send(ruby_name_eq, value)
+ rescue StandardError => e
+ msg = "When setting '#{interface_name}.#{property_name}': " +
e.message
+ raise e.exception(msg)
+ end
else
raise DBus.error("org.freedesktop.DBus.Error.PropertyReadOnly"),
"Property '#{interface_name}.#{property_name}' (on object
'#{@path}') is not writable"
@@ -507,8 +517,8 @@
typed_value = Data.make_typed(property.type, value)
p_hash[p_name.to_s] = typed_value
rescue StandardError
- DBus.logger.debug "Property '#{interface_name}.#{p_name}' (on
object '#{@path}')" \
- " has raised during GetAll, omitting it"
+ DBus.logger.debug "Property '#{interface_name}.#{p_name}' (on
object '#{@path}') " \
+ "has raised during GetAll, omitting it"
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/proxy_object.rb new/lib/dbus/proxy_object.rb
--- old/lib/dbus/proxy_object.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/proxy_object.rb 2025-04-03 17:18:04.000000000 +0200
@@ -129,7 +129,7 @@
# @return [void]
def on_signal(name, &block)
unless @default_iface && has_iface?(@default_iface)
- raise NoMethodError, "undefined signal #{OPEN_QUOTE}#{name}' for DBus
interface "\
+ raise NoMethodError, "undefined signal #{OPEN_QUOTE}#{name}' for DBus
interface " \
"#{OPEN_QUOTE}#{@default_iface}' on object
#{OPEN_QUOTE}#{@path}'"
end
@@ -139,13 +139,6 @@
####################################################
private
- # rubocop:disable Lint/MissingSuper
- # as this should forward everything
- #
- # https://github.com/rubocop-hq/ruby-style-guide#no-method-missing
- # and http://blog.marc-andre.ca/2010/11/15/methodmissing-politely/
- # have a point to be investigated
-
# Handles all unkown methods, mostly to route method calls to the
# default interface.
def method_missing(name, *args, &reply_handler)
@@ -154,7 +147,7 @@
# - di not specified
# TODO
# - di is specified but not found in introspection data
- raise NoMethodError, "undefined method #{OPEN_QUOTE}#{name}' for DBus
interface "\
+ raise NoMethodError, "undefined method #{OPEN_QUOTE}#{name}' for DBus
interface " \
"#{OPEN_QUOTE}#{@default_iface}' on object
#{OPEN_QUOTE}#{@path}'"
end
@@ -166,16 +159,15 @@
raise unless e.to_s =~ /undefined method #{OPEN_QUOTE}#{name}'/
# BTW e.exception("...") would preserve the class.
- raise NoMethodError, "undefined method #{OPEN_QUOTE}#{name}' for DBus
interface "\
+ raise NoMethodError, "undefined method #{OPEN_QUOTE}#{name}' for DBus
interface " \
"#{OPEN_QUOTE}#{@default_iface}' on object
#{OPEN_QUOTE}#{@path}'"
end
end
- # rubocop:enable Lint/MissingSuper
def respond_to_missing?(name, _include_private = false)
- @default_iface &&
+ (@default_iface &&
has_iface?(@default_iface) &&
- @interfaces[@default_iface].methods.key?(name) or super
+ @interfaces[@default_iface].methods.key?(name)) or super
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/dbus/type.rb new/lib/dbus/type.rb
--- old/lib/dbus/type.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/lib/dbus/type.rb 2025-04-03 17:18:04.000000000 +0200
@@ -163,7 +163,8 @@
if @sigtype == DICT_ENTRY
case @members.size
when 2
- raise SignatureException, "DICT_ENTRY must have 2 subtypes, found 3
or more in #{@signature}"
+ raise SignatureException,
+ "DICT_ENTRY must have 2 subtypes, found 3 or more:
#{@members.inspect} << #{item.inspect}"
when 0
if [STRUCT, ARRAY, DICT_ENTRY, VARIANT].member?(item.sigtype)
raise SignatureException, "DICT_ENTRY key must be basic
(non-container)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2025-01-02 15:13:57.000000000 +0100
+++ new/metadata 2025-04-03 17:18:04.000000000 +0200
@@ -1,15 +1,30 @@
--- !ruby/object:Gem::Specification
name: ruby-dbus
version: !ruby/object:Gem::Version
- version: 0.24.0
+ version: 0.25.0
platform: ruby
authors:
- Ruby DBus Team
+autorequire:
bindir: bin
cert_chain: []
-date: 2025-01-02 00:00:00.000000000 Z
+date: 2025-04-03 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
+ name: logger
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :runtime
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+- !ruby/object:Gem::Dependency
name: rexml
requirement: !ruby/object:Gem::Requirement
requirements:
@@ -38,7 +53,7 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
- name: packaging_rake_tasks
+ name: ostruct
requirement: !ruby/object:Gem::Requirement
requirements:
- - ">="
@@ -52,7 +67,7 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
- name: rake
+ name: packaging_rake_tasks
requirement: !ruby/object:Gem::Requirement
requirements:
- - ">="
@@ -66,33 +81,33 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
- name: rspec
+ name: rake
requirement: !ruby/object:Gem::Requirement
requirements:
- - - "~>"
+ - - ">="
- !ruby/object:Gem::Version
- version: '3'
+ version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - "~>"
+ - - ">="
- !ruby/object:Gem::Version
- version: '3'
+ version: '0'
- !ruby/object:Gem::Dependency
- name: rubocop
+ name: rspec
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '='
+ - - "~>"
- !ruby/object:Gem::Version
- version: '1.0'
+ version: '3'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '='
+ - - "~>"
- !ruby/object:Gem::Version
- version: '1.0'
+ version: '3'
- !ruby/object:Gem::Dependency
name: simplecov
requirement: !ruby/object:Gem::Requirement
@@ -237,6 +252,7 @@
licenses:
- LGPL-2.1-or-later
metadata: {}
+post_install_message:
rdoc_options: []
require_paths:
- lib
@@ -251,7 +267,8 @@
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubygems_version: 3.6.2
+rubygems_version: 3.2.33
+signing_key:
specification_version: 4
summary: Ruby module for interaction with D-Bus
test_files: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ruby-dbus.gemspec new/ruby-dbus.gemspec
--- old/ruby-dbus.gemspec 2025-01-02 15:13:57.000000000 +0100
+++ new/ruby-dbus.gemspec 2025-04-03 17:18:04.000000000 +0200
@@ -1,7 +1,6 @@
# frozen_string_literal: true
# -*- ruby -*-
-require "rubygems"
GEMSPEC = Gem::Specification.new do |s|
s.name = "ruby-dbus"
@@ -22,6 +21,7 @@
s.required_ruby_version = ">= 2.4.0"
+ s.add_runtime_dependency "logger"
# Either of rexml and nokogiri is required
# but AFAIK gemspec cannot express that.
# Nokogiri is recommended as rexml is dead slow.
@@ -30,10 +30,10 @@
# workaround: rubocop-1.0 needs base64 which is no longer in stdlib in newer
rubies
s.add_development_dependency "base64"
+ s.add_development_dependency "ostruct"
s.add_development_dependency "packaging_rake_tasks"
s.add_development_dependency "rake"
s.add_development_dependency "rspec", "~> 3"
- s.add_development_dependency "rubocop", "= 1.0"
s.add_development_dependency "simplecov"
s.add_development_dependency "simplecov-lcov"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spec/data_spec.rb new/spec/data_spec.rb
--- old/spec/data_spec.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/spec/data_spec.rb 2025-04-03 17:18:04.000000000 +0200
@@ -223,43 +223,43 @@
describe DBus::Data::Byte do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", 0, 2**8 - 1
+ include_examples "constructor accepts numeric range", 0, (2**8) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::Int16 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", -2**15, 2**15 - 1
+ include_examples "constructor accepts numeric range", -2**15, (2**15) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::UInt16 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", 0, 2**16 - 1
+ include_examples "constructor accepts numeric range", 0, (2**16) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::Int32 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", -2**31, 2**31 - 1
+ include_examples "constructor accepts numeric range", -2**31, (2**31) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::UInt32 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", 0, 2**32 - 1
+ include_examples "constructor accepts numeric range", 0, (2**32) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::Int64 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", -2**63, 2**63 - 1
+ include_examples "constructor accepts numeric range", -2**63, (2**63) - 1
include_examples "constructor accepts plain or typed values", 42
end
describe DBus::Data::UInt64 do
include_examples "#== and #eql? work for basic types"
- include_examples "constructor accepts numeric range", 0, 2**64 - 1
+ include_examples "constructor accepts numeric range", 0, (2**64) - 1
include_examples "constructor accepts plain or typed values", 42
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spec/mock-service/spaghetti-monster.rb
new/spec/mock-service/spaghetti-monster.rb
--- old/spec/mock-service/spaghetti-monster.rb 2025-01-02 15:13:57.000000000
+0100
+++ new/spec/mock-service/spaghetti-monster.rb 2025-04-03 17:18:04.000000000
+0200
@@ -122,6 +122,8 @@
dbus_attr_reader :read_me, "s"
def write_me=(value)
+ raise "We don't talk about Bruno" if value =~ /Bruno/
+
@read_me = value
end
dbus_writer :write_me, "s"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spec/node_spec.rb new/spec/node_spec.rb
--- old/spec/node_spec.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/spec/node_spec.rb 2025-04-03 17:18:04.000000000 +0200
@@ -25,7 +25,7 @@
let(:manager_path) { "/org/example/FooManager" }
let(:child_paths) do
[
- # note that "/org/example/FooManager/good"
+ # NOTE: "/org/example/FooManager/good"
# is a path under a managed object but there is no object there
"/org/example/FooManager/good/1",
"/org/example/FooManager/good/2",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spec/property_spec.rb new/spec/property_spec.rb
--- old/spec/property_spec.rb 2025-01-02 15:13:57.000000000 +0100
+++ new/spec/property_spec.rb 2025-04-03 17:18:04.000000000 +0200
@@ -31,17 +31,36 @@
expect(iface["ReadMe"]).to eq("READ ME")
end
- it "gets an error when reading a property whose implementation raises" do
- expect { @iface["Explosive"] }.to raise_error(DBus::Error, /Something
failed/)
+ context "when reading a property fails" do
+ it "gets an error, mentioning the qualified property name" do
+ expect { @iface["Explosive"] }
+ .to raise_error(DBus::Error,
/getting.*SampleInterface.Explosive.*Something failed/)
+ end
end
it "tests property nonreading" do
expect { @iface["WriteMe"] }.to raise_error(DBus::Error, /not readable/)
end
- it "tests property writing" do
- @iface["ReadOrWriteMe"] = "VALUE"
- expect(@iface["ReadOrWriteMe"]).to eq("VALUE")
+ context "writing properties" do
+ it "tests property writing" do
+ @iface["ReadOrWriteMe"] = "VALUE"
+ expect(@iface["ReadOrWriteMe"]).to eq("VALUE")
+ end
+
+ context "when writing a read-only property" do
+ it "gets an error, mentioning the qualified property name" do
+ expect { @iface["ReadMe"] = "WROTE" }
+ .to raise_error(DBus::Error, /SampleInterface.ReadMe.*not writable/)
+ end
+ end
+
+ context "when writing a property fails" do
+ it "gets an error, mentioning the qualified property name" do
+ expect { @iface["WriteMe"] = "Bruno is a city in Czechia" }
+ .to raise_error(DBus::Error, /setting.*SampleInterface.WriteMe/)
+ end
+ end
end
# https://github.com/mvidner/ruby-dbus/pull/19
@@ -54,10 +73,6 @@
expect(@iface["ReadOrWriteMe"]).to eq("VALUE")
end
- it "tests property nonwriting" do
- expect { @iface["ReadMe"] = "WROTE" }.to raise_error(DBus::Error, /not
writable/)
- end
-
it "tests get all" do
all = @iface.all_properties
expect(all.keys.sort).to eq(["MyArray", "MyByte", "MyDict", "MyStruct",
"MyVariant", "ReadMe", "ReadOrWriteMe"])