module Fluent::Test::Helpers
Public Instance Methods
assert_equal_event_time(expected, actual, message = nil)
click to toggle source
See “Example Custom Assertion: test-unit.github.io/test-unit/en/Test/Unit/Assertions.html
# File lib/fluent/test/helpers.rb, line 25 def assert_equal_event_time(expected, actual, message = nil) expected_s = "#{Time.at(expected.sec)} (nsec #{expected.nsec})" actual_s = "#{Time.at(actual.sec) } (nsec #{actual.nsec})" message = build_message(message, <<EOT, expected_s, actual_s) <?> expected but was <?>. EOT assert_block(message) do expected.is_a?(Fluent::EventTime) && actual.is_a?(Fluent::EventTime) && expected.sec == actual.sec && expected.nsec == actual.nsec end end
capture_log(driver) { || ... }
click to toggle source
Use this method with v0.12 compatibility layer.
For v0.14 API, use `driver.logs` instead.
# File lib/fluent/test/helpers.rb, line 115 def capture_log(driver) tmp = driver.instance.log.out driver.instance.log.out = StringIO.new yield return driver.instance.log.out.string ensure driver.instance.log.out = tmp end
capture_stdout() { || ... }
click to toggle source
# File lib/fluent/test/helpers.rb, line 124 def capture_stdout out = StringIO.new $stdout = out yield out.string.force_encoding('utf-8') ensure $stdout = STDOUT end
config_element(name = 'test', argument = '', params = {}, elements = [])
click to toggle source
# File lib/fluent/test/helpers.rb, line 37 def config_element(name = 'test', argument = '', params = {}, elements = []) Fluent::Config::Element.new(name, argument, params, elements) end
event_time(str=nil, format: nil)
click to toggle source
# File lib/fluent/test/helpers.rb, line 41 def event_time(str=nil, format: nil) if str if format Fluent::EventTime.from_time(Time.strptime(str, format)) else Fluent::EventTime.parse(str) end else Fluent::EventTime.now end end
msgpack(type)
click to toggle source
# File lib/fluent/test/helpers.rb, line 97 def msgpack(type) case type when :factory Fluent::MessagePackFactory.factory when :packer Fluent::MessagePackFactory.packer when :unpacker Fluent::MessagePackFactory.unpacker else raise ArgumentError, "unknown msgpack object type '#{type}'" end end
time2str(time, localtime: false, format: nil)
click to toggle source
# File lib/fluent/test/helpers.rb, line 81 def time2str(time, localtime: false, format: nil) if format if localtime Time.at(time).strftime(format) else Time.at(time).utc.strftime(format) end else if localtime Time.at(time).iso8601 else Time.at(time).utc.iso8601 end end end
with_timezone(tz) { || ... }
click to toggle source
# File lib/fluent/test/helpers.rb, line 53 def with_timezone(tz) oldtz, ENV['TZ'] = ENV['TZ'], tz yield ensure ENV['TZ'] = oldtz end
with_worker_config(root_dir: nil, workers: nil, worker_id: nil, &block)
click to toggle source
# File lib/fluent/test/helpers.rb, line 60 def with_worker_config(root_dir: nil, workers: nil, worker_id: nil, &block) if workers if worker_id if worker_id >= workers raise "worker_id must be between 0 and (workers - 1)" end else worker_id = 0 end end opts = {} opts['root_dir'] = root_dir if root_dir opts['workers'] = workers if workers ENV['SERVERENGINE_WORKER_ID'] = worker_id.to_s Fluent::SystemConfig.overwrite_system_config(opts, &block) ensure ENV.delete('SERVERENGINE_WORKER_ID') end