1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Don't expose configuration for a test.

Clean up some concepts in the code while we're here.
This commit is contained in:
Kasper Timm Hansen 2018-07-28 16:17:56 +02:00
parent 845cbb4bb2
commit 8741052ba2
No known key found for this signature in database
GPG key ID: 191153215EDA53D8
2 changed files with 12 additions and 23 deletions

View file

@ -100,33 +100,21 @@ module ActiveRecord
end
def log_query_source
line = extract_callstack(caller_locations)
location = extract_query_source_location(caller_locations)
if line
source_line, line_number = line.path, line.lineno
if defined?(::Rails.root)
app_root = "#{::Rails.root}/"
source_line = source_line.sub(app_root, "")
end
if location
source = "#{location.path}:#{location.lineno}"
source = source.sub("#{::Rails.root}/", "") if defined?(::Rails.root)
logger.debug("#{ source_line }:#{ line_number }")
logger.debug("#{source}")
end
end
def extract_callstack(callstack)
callstack.find do |frame|
frame.absolute_path && !ignored_callstack(frame.absolute_path)
end
end
RAILS_GEM_ROOT = File.expand_path("../../..", __dir__) + "/"
PATHS_TO_IGNORE = /\A(#{RAILS_GEM_ROOT}|#{RbConfig::CONFIG["rubylibdir"]})/
RAILS_GEM_ROOT = File.expand_path("../../..", __dir__) + "/"
class_attribute :ignored_callstack_paths, default: [RAILS_GEM_ROOT, RbConfig::CONFIG["rubylibdir"]]
def ignored_callstack(path)
ignored_callstack_paths.any? do |ignored_path|
path.start_with?(ignored_path)
end
def extract_query_source_location(locations)
locations.find { |line| line.absolute_path && !line.absolute_path.match?(PATHS_TO_IGNORE) }
end
end
end

View file

@ -185,13 +185,14 @@ class LogSubscriberTest < ActiveRecord::TestCase
def test_verbose_query_with_ignored_callstack
ActiveRecord::Base.verbose_query_logs = true
ActiveRecord::LogSubscriber.ignored_callstack_paths.push("/")
logger = TestDebugLogSubscriber.new
def logger.extract_query_source_location(*); nil; end
logger.sql(Event.new(0, sql: "hi mom!"))
assert_equal 1, @logger.logged(:debug).size
assert_no_match(//, @logger.logged(:debug).last)
ensure
ActiveRecord::LogSubscriber.ignored_callstack_paths.delete("/")
ActiveRecord::Base.verbose_query_logs = false
end