Module: OpenTelemetry::TestHelpers

Extended by:
TestHelpers
Included in:
TestHelpers
Defined in:
lib/opentelemetry/test_helpers/version.rb,
lib/opentelemetry/test_helpers.rb

Overview

The TestHelpers module contains a collection of test helpers for the various OpenTelemetry Ruby gems.

Constant Summary collapse

VERSION =
'0.1.0'
NULL_LOGGER =
Logger.new(File::NULL)

Instance Method Summary collapse

Instance Method Details

#exportable_timestamp(time = Time.now) ⇒ Object



44
45
46
# File 'lib/opentelemetry/test_helpers.rb', line 44

def exportable_timestamp(time = Time.now)
  (time.to_r * 1_000_000_000).to_i
end

#reset_opentelemetryObject

reset_opentelemetry is a test helper used to clear SDK configuration state between calls



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/opentelemetry/test_helpers.rb', line 18

def reset_opentelemetry
  OpenTelemetry.instance_variable_set(
    :@tracer_provider,
    OpenTelemetry::Internal::ProxyTracerProvider.new
  )

  # OpenTelemetry will load the defaults
  # on the next call to any of these methods
  OpenTelemetry.error_handler = nil
  OpenTelemetry.propagation = nil

  # We use a null logger to control the console
  # log output and explicitly enable it
  # when testing the log output
  OpenTelemetry.logger = NULL_LOGGER
end

#with_env(new_env) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/opentelemetry/test_helpers.rb', line 48

def with_env(new_env)
  env_to_reset = ENV.select { |k, _| new_env.key?(k) }
  keys_to_delete = new_env.keys - ENV.keys
  new_env.each_pair { |k, v| ENV[k] = v }
  yield
ensure
  env_to_reset.each_pair { |k, v| ENV[k] = v }
  keys_to_delete.each { |k| ENV.delete(k) }
end

#with_test_loggerObject



35
36
37
38
39
40
41
42
# File 'lib/opentelemetry/test_helpers.rb', line 35

def with_test_logger
  log_stream = StringIO.new
  original_logger = OpenTelemetry.logger
  OpenTelemetry.logger = ::Logger.new(log_stream)
  yield log_stream
ensure
  OpenTelemetry.logger = original_logger
end