class Test::Unit::Priority::Checker - test-unit: Ruby Standard Library Documentation

# class Test::Unit::Priority::Checker

### Attributes

test[R]

### Public Class Methods

available_priorities() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 59
    def available_priorities
      methods(false).collect do |name|
        /\Arun_priority_(.+)\?\z/ =~ name.to_s
        $1
      end.compact
    end

have_priority?(name) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 45
    def have_priority?(name)
      singleton_class = (class << self; self; end)
      singleton_class.method_defined?(priority_check_method_name(name))
    end

need_to_run?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 50
    def need_to_run?(test)
      priority = test[:priority] || Priority.default
      if have_priority?(priority)
        __send__(priority_check_method_name(priority), test)
      else
        true
      end
    end

new(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 97
    def initialize(test)
      @test = test
    end

run_priority_high?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 74
    def run_priority_high?(test)
      rand > 0.3
    end

run_priority_important?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 70
    def run_priority_important?(test)
      rand > 0.1
    end

run_priority_low?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 82
    def run_priority_low?(test)
      rand > 0.75
    end

run_priority_must?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 66
    def run_priority_must?(test)
      true
    end

run_priority_never?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 86
    def run_priority_never?(test)
      false
    end

run_priority_normal?(test) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 78
    def run_priority_normal?(test)
      rand > 0.5
    end

### Private Class Methods

priority_check_method_name(priority_name) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 91
    def priority_check_method_name(priority_name)
      "run_priority_#{priority_name}?"
    end

### Public Instance Methods

need_to_run?() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 113
    def need_to_run?
      !previous_test_success? or self.class.need_to_run?(@test)
    end

setup() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 101
    def setup
      FileUtils.rm_f(passed_file)
    end

teardown() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 105
    def teardown
      if @test.__send__(:passed?)
        FileUtils.touch(passed_file)
      else
        FileUtils.rm_f(passed_file)
      end
    end

### Private Instance Methods

escape_class_name(class_name) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 148
    def escape_class_name(class_name)
      escape_name(class_name)
    end

escape_name(name) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 156
    def escape_name(name)
      name.gsub(/(?:[: \/!?=])/) do |matched|
        case matched
        when ":"
          "_colon_"
        when " ", "/"
          "_"
        when "!"
          ".destructive"
        when "?"
          ".predicate"
        when "="
          ".equal"
        end
      end
    end

escaped_method_name() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 152
    def escaped_method_name
      escape_name(@test.method_name.to_s)
    end

passed_file() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 144
    def passed_file
      File.join(result_dir, "passed")
    end

previous_test_success?() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 118
    def previous_test_success?
      File.exist?(passed_file)
    end

result_dir() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/priority.rb, line 122
    def result_dir
      components = [
        ".test-result",
        escape_class_name(@test.class.name || "AnonymousTestCase"),
        escaped_method_name,
      ]
      parent_directories = [File.dirname($0), Dir.pwd]
      if Process.respond_to?(:uid)
        parent_directories << File.join(Dir.tmpdir, Process.uid.to_s)
      end
      parent_directories.each do |parent_directory|
        dir = File.expand_path(File.join(parent_directory, *components))
        begin
          FileUtils.mkdir_p(dir)
          return dir
        rescue Errno::EACCES
        end
      end

      raise Errno::EACCES, parent_directories.join(", ")
    end