class Dynflow::Testing::InThreadWorld
Public Class Methods
coordinator_adapter()
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 31 def self.coordinator_adapter ->(world, _) { CoordiationAdapterWithLog.new(world) } end
instance(&block)
click to toggle source
The worlds created by this method are getting terminated after each test run
# File lib/dynflow/testing/in_thread_world.rb, line 36 def self.instance(&block) @instance ||= self.new(test_world_config(&block)) end
logger_adapter()
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 27 def self.logger_adapter @adapter ||= Dynflow::LoggerAdapters::Simple.new $stderr, 4 end
new(*args)
click to toggle source
Calls superclass method
Dynflow::World.new
# File lib/dynflow/testing/in_thread_world.rb, line 40 def initialize(*args) super @clock = ManagedClock.new @executor = InThreadExecutor.new(self) end
persistence_adapter()
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 19 def self.persistence_adapter @persistence_adapter ||= begin db_config = ENV['DB_CONN_STRING'] || 'sqlite:/' puts "Using database configuration: #{db_config}" Dynflow::PersistenceAdapters::Sequel.new(db_config) end end
test_world_config() { |config| ... }
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 4 def self.test_world_config config = Dynflow::Config.new config.persistence_adapter = persistence_adapter config.logger_adapter = logger_adapter config.coordinator_adapter = coordinator_adapter config.delayed_executor = nil config.auto_rescue = false config.auto_validity_check = false config.exit_on_terminate = false config.auto_execute = false config.auto_terminate = false yield config if block_given? return config end
Public Instance Methods
event(execution_plan_id, step_id, event, done = Concurrent.future)
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 60 def event(execution_plan_id, step_id, event, done = Concurrent.future) @executor.event(execution_plan_id, step_id, event, done) end
execute(execution_plan_id, done = Concurrent.future)
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 46 def execute(execution_plan_id, done = Concurrent.future) @executor.execute(execution_plan_id, done) end
terminate(future = Concurrent.future)
click to toggle source
# File lib/dynflow/testing/in_thread_world.rb, line 50 def terminate(future = Concurrent.future) run_before_termination_hooks @executor.terminate coordinator.delete_world(registered_world) future.success true @terminated.complete rescue => e future.fail e end