class Object

Constants

BASE

Add examples dir and lib/git-ds to ruby path

Public Instance Methods

fill_model(model) click to toggle source

# File doc/examples/key_value/test.rb, line 14
def fill_model(model)
  model.exec do
    {
      :a => 1,
      :b => 2,
      :c => 3
    }.each { |k,v| model[k] = v }
  end

  model.db.set_author('a user', 'au@users.net')

  model.exec do
    {
      :a => 999,
      :b => 998,
      :c => 997,
      :d => 996,
      :e => 995
    }.each { |k,v| model[k] = v }
  end
end
get_options(args) click to toggle source
# File doc/examples/test_suite/ts_add_bug.rb, line 15
def get_options(args)
  options = OpenStruct.new

  options.db = nil
  options.auto = false
  options.ident = nil
  options.descr = nil

  opts = OptionParser.new do |opts|
    opts.banner = "Usage: #{$0} [-p db_path] IDENT DESCR"
    opts.separator 'Add a bug report to database'
    opts.separator 'Options:'

    opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path| 
      options.db = path
      options.auto = true
    end

    opts.on_tail( '-?', '--help', 'Show this message') do
      puts opts
      exit -1
    end
  end

  opts.parse!(args)

  options.db = GitDS::Database.top_level if not options.db
  raise "Invalid database" if not options.db

  if args.count > 1
    options.ident = args.shift
    options.descr = args.shift
  else
    puts opts.banner
    exit -2
  end
  
  options
end
list_bugs(model, details) click to toggle source
# File doc/examples/test_suite/ts_list.rb, line 92
def list_bugs(model, details)
  puts "Bugs:"
  model.bugs.each do |ident|
    puts "\t" + ident
    if details
      b = model.bug(ident)
      puts "\t\t" + b.description
      puts "\t\t" + ((b.open?) ? 'Open' : 'Closed')
      puts "\t\tTests:"
      b.tests.each { |ident| puts "\t\t\t" + ident }
    end
  end
end
list_model(model) click to toggle source

# File doc/examples/key_value/test.rb, line 37
def list_model(model)
  model.each { |k, v| puts "#{k} : #{v}" }
end
list_modules(model, details) click to toggle source
# File doc/examples/test_suite/ts_list.rb, line 57
def list_modules(model, details)
  puts "Modules:"
  model.modules.each do |ident|
    puts "\t" + ident
    if details
      m = model.module(ident)
      puts "\t\t" + m.name
      puts "\t\t" + m.path
      puts "\t\tContents:"
      puts "\t\t" + m.data[0,60] + (m.data.length > 60 ? '...' : '')
    end
  end
end
list_suites(model, details) click to toggle source
# File doc/examples/test_suite/ts_list.rb, line 71
def list_suites(model, details)
  puts "Test Suites:"
  model.test_suites.each do |ident|
    puts "\t" + ident
    if details
      s = model.test_suite(ident)
      puts "\t\t" + s.description
      puts "\t\tTests:"
      s.tests.each do |ident|
        t = s.test(ident)
        puts "\t\t\t" + ident
        puts "\t\t\t" + ((t.pass?) ? 'Passed' : 'Failed')
        puts "\t\t\t" + t.timestamp.to_s
        puts "\t\t\tModules:"
        t.modules.each { |ident| puts "\t\t\t\t" + ident }
        puts "\t\t\tLog:\n" + t.log
      end
    end
  end
end
run_tests(db_path) click to toggle source
# File doc/examples/test_suite/test.rb, line 120
def run_tests(db_path)
  db = GitDS::Database.connect_as(db_path, 'tony b', 'tony@disco.net')
  raise "Could not connect to db!" if not db

  model = TestSuiteModel.new(db)
  model.branched_transaction('TonyTesting') {
    model.perform_tests { |t| t.perform(true) }
    model.update_bugs
  }
  db.mark('Tony testing complete')
  db.close

  db = GitDS::Database.connect_as(db_path, 'bill p', 'bill@stallynz.net')
  raise "Could not connect to db!" if not db

  model = TestSuiteModel.new(db)
  db.unstage
  model.branched_transaction('QATesting') {
    s = model.test_suite('QA')
    s.tests.each do |ident|
      t = s.test(ident)
      t.perform(false, 'QA deemed results unworthy')
    end
    model.update_bugs
  }
  db.mark('QA testing complete')
  db.close
end