/usr/lib/ruby/vendor_ruby/aruba/matchers/path/have_permissions.rb is in ruby-aruba 0.14.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | require 'rspec/expectations/version'
# @!method have_permissions(permissions)
# This matchers checks if <file> or <directory> has <perm> permissions
#
# @param [Fixnum, String] permissions
# The permissions as octal number, e.g. `0700`, or String, e.g. `'0700'`
#
# @return [TrueClass, FalseClass] The result
#
# false:
# * if file has permissions
# true:
# * if file does not have permissions
#
# @example Use matcher with octal number
#
# RSpec.describe do
# it { expect(file).to have_permissions(0700) }
# it { expect(directory).to have_permissions(0700) }
# end
#
# @example Use matcher with string
#
# RSpec.describe do
# it { expect(file).to have_permissions('0700') }
# it { expect(files).to include a_path_with_permissions('0700') }
# it { expect(directory).to have_permissions('0700') }
# it { expect(directories).to include a_path_with_permissions('0700') }
# end
RSpec::Matchers.define :have_permissions do |expected|
def permissions(file)
@actual = Aruba.platform.filesystem_status.new(file).mode
end
match do |actual|
stop_all_commands
@old_actual = actual
@actual = permissions(expand_path(@old_actual))
@expected = if expected.is_a? Integer
expected.to_s(8)
elsif expected.is_a? String
expected.gsub(/^0*/, '')
else
expected
end
values_match? @expected, @actual
end
failure_message do |actual|
format("expected that path \"%s\" has permissions \"%s\", but has \"%s\".", @old_actual, @expected, @actual)
end
failure_message_when_negated do |actual|
format("expected that path \"%s\" does not have permissions \"%s\", but has \"%s\".", @old_actual, @expected, @actual)
end
end
if RSpec::Expectations::Version::STRING >= '3.0'
RSpec::Matchers.alias_matcher :a_path_having_permissions, :have_permissions
end
|