Add tests for fileUtils call in system
This commit is contained in:
parent
a73c29fef2
commit
7dfe09ccae
@ -263,13 +263,14 @@ module RuboCop
|
||||
problem "Dir([\"#{string_content(path)}\"]) is unnecessary; just use \"#{match[0]}\""
|
||||
end
|
||||
|
||||
#
|
||||
# fileUtils_methods= FileUtils.singleton_methods(false).map { |m| Regexp.escape(m) }.join "|"
|
||||
# find_method_with_args(body_node, :system, /fileUtils_methods/) do |m|
|
||||
# method = string_content(@offensive_node)
|
||||
# problem "Use the `#{method}` Ruby method instead of `#{m.source}`"
|
||||
# end
|
||||
#
|
||||
|
||||
fileUtils_methods= Regexp.new(FileUtils.singleton_methods(false).map { |m| Regexp.escape(m) }.join "|")
|
||||
find_every_method_call_by_name(body_node, :system).each do |m|
|
||||
param = parameters(m).first
|
||||
next unless match = regex_match_group(param, fileUtils_methods)
|
||||
problem "Use the `#{match}` Ruby method instead of `#{m.source}`"
|
||||
end
|
||||
|
||||
# if find_method_def(@processed_source.ast)
|
||||
# problem "Define method #{method_name(@offensive_node)} in the class body, not at the top-level"
|
||||
# end
|
||||
|
||||
@ -571,6 +571,27 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do
|
||||
|
||||
inspect_source(cop, source)
|
||||
|
||||
expected_offenses.zip(cop.offenses).each do |expected, actual|
|
||||
expect_offense(expected, actual)
|
||||
end
|
||||
end
|
||||
it "with system call to fileUtils Method" do
|
||||
source = <<-EOS.undent
|
||||
class Foo < Formula
|
||||
desc "foo"
|
||||
url 'http://example.com/foo-1.0.tgz'
|
||||
system "mkdir", "foo"
|
||||
end
|
||||
EOS
|
||||
|
||||
expected_offenses = [{ message: "Use the `mkdir` Ruby method instead of `system \"mkdir\", \"foo\"`",
|
||||
severity: :convention,
|
||||
line: 4,
|
||||
column: 10,
|
||||
source: source }]
|
||||
|
||||
inspect_source(cop, source)
|
||||
|
||||
expected_offenses.zip(cop.offenses).each do |expected, actual|
|
||||
expect_offense(expected, actual)
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user