class Cranium::TestFramework::World

Constants

DEFINITION_FILE

Attributes

error_output[R]
output[R]
result_code[R]

Public Class Methods

new(working_directory, greenplum_connection) click to toggle source
# File lib/cranium/test_framework/world.rb, line 11
def initialize(working_directory, greenplum_connection)
  @greenplum_connection = greenplum_connection
  @directory = working_directory
end

Public Instance Methods

database_sequence(sequence_name) click to toggle source
# File lib/cranium/test_framework/world.rb, line 64
def database_sequence(sequence_name)
  Cranium::TestFramework::DatabaseSequence.new sequence_name, @greenplum_connection
end
database_table(table_name) click to toggle source
# File lib/cranium/test_framework/world.rb, line 59
def database_table(table_name)
  Cranium::TestFramework::DatabaseTable.new table_name.to_sym, @greenplum_connection
end
execute_definition() click to toggle source
# File lib/cranium/test_framework/world.rb, line 44
def execute_definition
  @output, @error_output, status = Open3.capture3("bundle exec bin/cranium --cranium-load #{@directory}/#{DEFINITION_FILE}")
  @result_code = status.exitstatus
end
save_definition(definition) click to toggle source
# File lib/cranium/test_framework/world.rb, line 24
  def save_definition(definition)
    config = <<~config_string
      require 'logger'
      require 'date'

      Cranium.configure do |config|
        config.greenplum_connection_string = "#{Cranium.configuration.greenplum_connection_string}"
        config.gpfdist_url = "#{Cranium.configuration.gpfdist_url}"
        config.gpfdist_home_directory = "#{Cranium.configuration.gpfdist_home_directory}"
        config.upload_directory = "#{Cranium.configuration.upload_directory}"
        config.loggers << Logger.new("log/application.log")
      end

    config_string

    upload_directory.save_file DEFINITION_FILE, config + definition
  end
script_output() click to toggle source
# File lib/cranium/test_framework/world.rb, line 51
def script_output
  "Output: #{@output}\n"\
  "Error: #{@error_output}\n"\
  "Exit status: #{@result_code}\n"
end
upload_directory() click to toggle source
# File lib/cranium/test_framework/world.rb, line 18
def upload_directory
  @upload_directory ||= Cranium::TestFramework::UploadDirectory.new @directory
end