dohtest 0.1.49 → 0.1.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2553b75b56da7e2f61c1e915b141fc9fc1ab64d5
4
- data.tar.gz: dd631e9f6f19c4bafa23d69dd19b25e73f852553
2
+ SHA256:
3
+ metadata.gz: f671b0ee5564d932bd5cf2edd188c31292a0fee261a8ad5207e446450b93cb1e
4
+ data.tar.gz: 92e6b918b818a6e1b3824cde7e08c7964999a1e8088d024ed3f7b6ee2f365a14
5
5
  SHA512:
6
- metadata.gz: d2d9f188d411cd08fd1f143c66b8dd3a5c5795b0937362c86d449c45d8f1b93d1bc21dfed925fb2aea6fd4642dd65840c1abcc0b5c66107050a3c42ed2d61f7b
7
- data.tar.gz: e738221c256c5924f3f23338dbf93657f203343a82aac04d95c54cab845f2e62de6ac42bdfccf764e9aa0986f8ab07886b21495789f8f2d2d04e498494225457
6
+ metadata.gz: 98d77e960acc16540bd4e52588af6cb0a98c051d3d068b4cdd49632b247bc46ce164c55cffa0927622b0f28a01d33ab66f7ee171623e798da435203adacf75a3
7
+ data.tar.gz: 7a64336cbb411d9056253ba1e2c9ab8a0d99ed857ffea18751272a8ede1b38bc8838f04e2133caf53ed0ac4aa64753869a5cbcb49c08d7e354d332e00f07200b
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007 Makani Mason, Kem Mason
1
+ Copyright (c) 2007 ATPSoft
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -1,18 +1,21 @@
1
1
  require 'dohroot'
2
+ require 'dohtest/find_files'
2
3
 
3
4
  module DohTest
4
5
  extend self
5
6
 
6
7
  def config
7
8
  @config ||= {:post_all_callback => [], :pre_group_callback => [], :post_group_callback => [], :pre_test_callback => [],
8
- :pre_each_callback => [], :post_each_callback => []}
9
+ :pre_each_callback => [], :post_each_callback => [], :pre_require_callback => []}
9
10
  end
10
11
 
11
12
  def find_root(start_directory, max_tries = 20)
12
13
  curr_directory = start_directory
13
14
  max_tries.times do
14
15
  return nil if curr_directory == '/'
15
- if File.directory?(File.join(curr_directory, 'test')) || File.exist?(File.join(curr_directory, 'dohtest.rb'))
16
+ if (File.exist?(File.join(curr_directory, 'dohroot')) ||
17
+ File.directory?(File.join(curr_directory, 'test')) ||
18
+ File.exist?(File.join(curr_directory, 'dohtest.rb')))
16
19
  return curr_directory
17
20
  end
18
21
  curr_directory = File.expand_path(File.join(curr_directory, '..'))
@@ -20,15 +23,18 @@ def find_root(start_directory, max_tries = 20)
20
23
  nil
21
24
  end
22
25
 
23
- def load_configuration_files(start_path)
26
+ def load_configuration_file(start_path)
24
27
  start_path = File.expand_path(start_path || '.')
25
28
  if File.directory?(start_path)
26
29
  start_directory = start_path
27
30
  else
28
31
  start_directory = File.dirname(start_path)
29
32
  end
33
+
30
34
  root_directory = find_root(start_directory)
31
- raise "unable to determine root directory to run tests from" unless root_directory
35
+ if !root_directory
36
+ raise "unable to determine root directory to run tests from"
37
+ end
32
38
  DohTest.config[:root] = root_directory
33
39
 
34
40
  Doh.find_root_from_path(root_directory)
@@ -56,9 +62,18 @@ def add_default_config_values
56
62
  DohTest.config[:seed] ||= (Time.new.to_f * 1000).to_i
57
63
  end
58
64
 
65
+ def set_test_files
66
+ paths = DohTest.config[:paths]
67
+ if paths.empty?
68
+ paths = ['.']
69
+ end
70
+ DohTest.config[:test_files] = DohTest.find_files(DohTest.config[:glob], paths)
71
+ end
72
+
59
73
  def configure(start_path)
60
74
  add_default_config_values
61
- load_configuration_files(start_path)
75
+ set_test_files
76
+ load_configuration_file(start_path)
62
77
  end
63
78
 
64
79
  end
@@ -1,17 +1,14 @@
1
1
  module DohTest
2
2
  extend self
3
3
 
4
- def require_paths(glob, paths)
5
- retval = false
4
+ def find_files(glob, paths)
5
+ retval = []
6
6
  expanded_paths = paths.map {|path| File.expand_path(path) }
7
7
  expanded_paths.each do |path|
8
8
  if File.directory?(path)
9
- Dir.glob(File.join(path, '**', glob)).each do |filename|
10
- retval = true
11
- require(filename)
12
- end
9
+ retval.concat(Dir.glob(File.join(path, '**', glob)).to_a)
13
10
  else
14
- require(path)
11
+ retval << path
15
12
  end
16
13
  end
17
14
  return retval
@@ -0,0 +1,18 @@
1
+ module DohTest
2
+ extend self
3
+
4
+ def require_test_file(path, callbacks)
5
+ callbacks.each do |callback|
6
+ callback.call(path)
7
+ end
8
+ require(path)
9
+ end
10
+
11
+ def load_test_files(paths)
12
+ callbacks = @config[:pre_require_callback]
13
+ paths.each do |path|
14
+ require_test_file(path, callbacks)
15
+ end
16
+ end
17
+
18
+ end
@@ -1,31 +1,30 @@
1
1
  require 'dohtest/group_runner'
2
- require 'dohtest/require_paths'
2
+ require 'dohtest/load_test_files'
3
3
 
4
4
  module DohTest
5
5
 
6
6
  class MasterRunner
7
- def initialize(output, config, paths = nil)
7
+ def initialize(output, config)
8
8
  @output = output
9
9
  @config = config
10
- # temporary for ease of transition
11
- @config[:paths] ||= paths
12
10
  end
13
11
 
14
12
  def run
15
13
  start_time = Time.now
14
+ srand(@config[:seed])
15
+ @output.run_begin(@config)
16
+
17
+ if @config[:test_files].empty?
18
+ @output.no_tests_found
19
+ return 1
20
+ end
21
+
22
+ DohTest.load_test_files(@config[:test_files])
23
+
16
24
  @config[:pre_test_callback].each do |callback|
17
25
  callback.call(@output)
18
26
  end
19
- if @config[:paths].empty?
20
- unless DohTest.require_paths(@config[:glob], ['.'])
21
- DohTest.require_paths(@config[:glob], [@config[:root]])
22
- end
23
- else
24
- DohTest.require_paths(@config[:glob], @config[:paths])
25
- end
26
27
 
27
- srand(@config[:seed])
28
- @output.run_begin(@config)
29
28
  total_problems = 0
30
29
  # sort them to be the same order no matter what (different machines were returning different results)
31
30
  TestGroup.descendants.sort{|a,b|a.to_s<=>b.to_s}.shuffle.each do |group_class|
@@ -16,9 +16,11 @@ class StreamOutput
16
16
  end
17
17
 
18
18
  def run_begin(config)
19
- @config = config
20
- @std_ios.puts "running tests with config: #{config}"
19
+ display_config = config.dup
20
+ display_config.delete(:test_files)
21
+ @std_ios.puts "running tests with config: #{display_config}"
21
22
 
23
+ @config = config
22
24
  has_terminal = @std_ios.tty?
23
25
  @no_color = !has_terminal || @config[:no_color]
24
26
  @verbose = (has_terminal && !@config[:quiet]) || @config[:verbose]
@@ -127,6 +129,10 @@ class StreamOutput
127
129
  @assertions_passed += 1
128
130
  end
129
131
 
132
+ def no_tests_found
133
+ @err_ios.puts("\nno tests found")
134
+ end
135
+
130
136
  private
131
137
  def colorize(type, msg)
132
138
  return msg if @no_color
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dohtest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.49
4
+ version: 0.1.54
5
5
  platform: ruby
6
6
  authors:
7
- - Makani Mason
8
- - Kem Mason
7
+ - ATPSoft
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2017-12-21 00:00:00.000000000 Z
11
+ date: 2021-07-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: dohroot
@@ -58,9 +57,10 @@ files:
58
57
  - lib/dohtest/capture_output.rb
59
58
  - lib/dohtest/configure.rb
60
59
  - lib/dohtest/failure.rb
60
+ - lib/dohtest/find_files.rb
61
61
  - lib/dohtest/group_runner.rb
62
+ - lib/dohtest/load_test_files.rb
62
63
  - lib/dohtest/master_runner.rb
63
- - lib/dohtest/require_paths.rb
64
64
  - lib/dohtest/stream_output.rb
65
65
  - lib/dohtest/test_group.rb
66
66
  - test/test_backtrace_parser.rb
@@ -77,15 +77,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
77
  requirements:
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
- version: 2.2.0
80
+ version: 2.6.0
81
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
- rubyforge_project:
88
- rubygems_version: 2.6.13
87
+ rubygems_version: 3.2.11
89
88
  signing_key:
90
89
  specification_version: 4
91
90
  summary: minimalist unit test framework