class Magnesium::TestLink

Public Class Methods

find_build(prefix) click to toggle source
# File lib/magnesium/support/testlink.rb, line 163
  def self.find_build(prefix)
    begin
      @testplan_id = self.find_testplan(prefix)
      result = self.query("select id from builds where testplan_id in (#{@testplan_id})")
      result.each do |row|
        row.map{|k,v| return v if k == "id"}
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_execution_type() click to toggle source
# File lib/magnesium/support/testlink.rb, line 216
def self.find_execution_type()
  #1:manul, 2:auto
  return 2
end
find_max_id(table) click to toggle source
# File lib/magnesium/support/testlink.rb, line 200
  def self.find_max_id(table)
    begin
      result = self.query("select max(id) from #{table}")
      result.each do |row|
        row.map {|k,v| return v}
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_max_step_number(id) click to toggle source
# File lib/magnesium/support/testlink.rb, line 113
def self.find_max_step_number(id)
  begin
    result = self.query("select max(step_number) from tcsteps where id in (select id from nodes_hierarchy where parent_id = #{id} and node_type_id =9)")
    return result
  #rescue
    #Show.error
  end
end
find_path(prefix,caseno) click to toggle source
# File lib/magnesium/support/testlink.rb, line 53
  def self.find_path(prefix,caseno)
    begin
      @tc_id = self.find_tcase(prefix,caseno)
      puts @tc_id
      result = self.query("select file_path from attachments where fk_id = #{@tc_id}")
      result.each do |row|
        row.map {|k,v| return v}
      end
    #rescue
      #Show.error
      #puts 'findpath'
#ensure
    end
  end
find_platform_id() click to toggle source
# File lib/magnesium/support/testlink.rb, line 212
def self.find_platform_id()
  return 0
end
find_root(id) click to toggle source
# File lib/magnesium/support/testlink.rb, line 68
  def self.find_root(id)
    begin
      result = self.query("select parent_id,id from nodes_hierarchy where id = #{id}")
      result.each do |row|
        row.map do |k,v|
          @parent_id = v if k == "parent_id"
          @id =v if k == "id"
        end
      end
      unless @parent_id.nil?
        self.find_root(@parent_id)
      else
        return @id
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_step_action(id) click to toggle source
# File lib/magnesium/support/testlink.rb, line 102
  def self.find_step_action(id)
    begin
      result = self.query("select actions from tcsteps where id in (select id from nodes_hierarchy where parent_id = #{id} and node_type_id = 9) order by step_number")
  #puts result
      return result
    #rescue
      #Show.error
#ensure
    end
  end
find_step_result(id) click to toggle source
# File lib/magnesium/support/testlink.rb, line 122
  def self.find_step_result(id)
    begin
      self.find_max_step_number(id).each do |row|
        row.map do |k,v|
          result = self.query("select expected_results from tcsteps where id in (select id from nodes_hierarchy where parent_id = #{id} and node_type_id = 9) and step_number =  #{v}")
  #puts result
          return result
      #puts v
        end
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_tcase(prefix,caseno) click to toggle source
# File lib/magnesium/support/testlink.rb, line 31
  def self.find_tcase(prefix,caseno)
    begin
      result = self.query("select id from testprojects where prefix = '#{prefix}'")
      result.each do |row|
        row.map {|k,v| @tp_id = v if k == "id"}
      end
      #puts @tp_id

      result = self.query("select tcase_id from tcases_active where tc_external_id = #{caseno}")

      result.each do |row|
        row.map do |k,v|
          @tc_id = v if self.find_root(v)==@tp_id
        end
      end
      return @tc_id
    #rescue
      #Show.error
#ensure
    end
  end
find_tcversion_id(caseno) click to toggle source
# File lib/magnesium/support/testlink.rb, line 176
  def self.find_tcversion_id(caseno)
    begin
      result = self.query("select id from tcversions where tc_external_id = #{caseno}")
      result.each do |row|
        row.map {|k,v| return v if k == "id"}
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_tcversion_number(caseno) click to toggle source
# File lib/magnesium/support/testlink.rb, line 188
def self.find_tcversion_number(caseno)
  begin
    result = self.query("select version from tcversions where tc_external_id = #{caseno}")
    result.each do |row|
      row.map {|k,v| return v if k == "version"}
    end
  #rescue
    #Show.error
    #ensure
  end
end
find_tester(login) click to toggle source
# File lib/magnesium/support/testlink.rb, line 151
  def self.find_tester(login)
    begin
      result = self.query("select id from users where login = '#{login}'")
      result.each do |row|
        row.map {|k,v| return v if k == "id"}
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_testplan(prefix) click to toggle source
# File lib/magnesium/support/testlink.rb, line 139
  def self.find_testplan(prefix)
    begin
      result = self.query("select id from testplans where testproject_id in (select id from testprojects where prefix = '#{prefix}')")
      result.each do |row|
        row.map {|k,v| return v if k == "id"}
      end
    #rescue
      #Show.error
#ensure
    end
  end
find_version(id) click to toggle source
# File lib/magnesium/support/testlink.rb, line 89
  def self.find_version(id)
    begin
      result = self.query("select id from nodes_hierarchy where parent_id = #{id} and node_type_id = 4")
      result.each do |row|
        row.map {|k,v| return v if k == "id"}
      end
    #rescue
      #Show.error
#ensure
    end
  end
query(sql) click to toggle source
# File lib/magnesium/support/testlink.rb, line 7
  def self.query(sql)#connection
    #begin
      @client = Mysql2::Client.new(:host=>Config.config["testlink"]["host"], :username=>Config.config["testlink"]["db_account"], :password=>Config.config["testlink"]["db_pwd"], :database=>Config.config["testlink"]["database"])

      #return client
    #rescue
    #  error
    #  puts 'connect'
#ensure
    #end
  #end

  #def self.query(sql)
    #begin
      #client = connection
      result = @client.query(sql)
      return result
      #rescue
      #  error
    #ensure
      #client.close #if ok
    #end
  end
set_result(prefix,caseno,login,status,notes) click to toggle source
# File lib/magnesium/support/testlink.rb, line 221
  def self.set_result(prefix,caseno,login,status,notes)
    begin
      @id = self.find_max_id("executions").to_i+1
      @build_id = self.find_build(prefix)
      @tester_id = self.find_tester(login)
      @testplan_id = self.find_testplan(prefix)
      @tcversion_id = self.find_tcversion_id(caseno)
      @tcversion_number = self.find_tcversion_number(caseno)
      @platform_id = self.find_platform_id
      @execution_type = self.find_execution_type
      execute = self.query("insert into executions values(#{@id},#{@build_id},#{@tester_id},now(),'#{status}',#{@testplan_id},#{@tcversion_id},#{@tcversion_number},#{@platform_id},#{@execution_type},'#{notes}')")
    #rescue
      #Show.error
#ensure
    end
  end