cutest 1.2.1 → 1.2.2

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODJmODdlMjVmNTZhZTU5Y2FhMDVlNDUxOWViMGIyZWE5YmM4MDIzYQ==
5
- data.tar.gz: !binary |-
6
- MGQ4MzFkMzA4MTY3MDZkNTA0NjEyYzlkNWFkNGFkNzMxYjUzNTFiMg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NDU3ZjczMzczOGVjMGYxN2YzMDA0NjVmNWNlMWFlMWQ0OGZkMjM2OGM3N2Mz
10
- ZTMzOTc0OWFlZWZkZmEwOTg5YTdhZTMyYjhjZDhmN2NmNDUwOGM0N2Y2MjJi
11
- YWY3ZTVlMTQyMDgzYWRkMDBlNjAxMjljMjU5YWExNTRlNWI1ZDI=
12
- data.tar.gz: !binary |-
13
- YTY4NDQxMmJiYTg2Y2QyOTc3MGQ3MGNiMWRkN2JkYzc0NTNmMWIwM2E2ZWY2
14
- ZjhiZDhjZTJlYTk4MTRkOWZkNTdkY2E4NmZkOTI1ZGQ4NjE0NTdhNmY3ZmMy
15
- ZTA0MzlhYjAyYmQxZDdlYWYwYTZjN2MzYTIwMGZlYzRiM2JhYzQ=
2
+ SHA1:
3
+ metadata.gz: 9bc022132fb8435fd081485e6649717148b2907f
4
+ data.tar.gz: 51720cbf6e686d549bcb0db4b93aa427be3d1acc
5
+ SHA512:
6
+ metadata.gz: 030a88a3567dba1ac8d88e74c4121c921bc64ea1a0f9086764bc479ddd65ed7157dfe9026ca9bac7465546e57392866e3a1e8c9ec81f1d7c05f73425fb3bbc6c
7
+ data.tar.gz: 355faf07ae61e2bac11b81943ce3953d4ac8a59eb0a043e4695f1afb7475ef0fa2f0c6c5f4708b517ca03a7e222f2aa4cac0ed64e24952d443971d590c265337
@@ -1,3 +1,10 @@
1
+ 1.2.2 - 2014-11-05
2
+ ==================
3
+
4
+ * `assert_raise` now returns the raised exception.
5
+
6
+ * Use `-s` to run a single scope.
7
+
1
8
  1.2.1 - 2013-08-14
2
9
  ==================
3
10
 
data/bin/cutest CHANGED
@@ -1,16 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  if ARGV.empty?
4
- puts "usage: cutest [-r lib] [-v] file ..."
4
+ puts "usage: cutest [-v] [-r lib] [-o test] [-s scope] file ..."
5
5
  exit
6
6
  end
7
7
 
8
8
  require_relative "../lib/cutest"
9
- require_relative "../lib/cutest/vendor/clap"
9
+ require "clap"
10
10
 
11
11
  files = Clap.run ARGV,
12
12
  "-r" => lambda { |file| require file },
13
13
  "-o" => lambda { |name| cutest[:only] = name },
14
+ "-s" => lambda { |name| cutest[:scope] = name },
14
15
  "-v" => lambda { puts Cutest::VERSION }
15
16
 
16
17
  if files.any?
@@ -14,4 +14,6 @@ Gem::Specification.new do |s|
14
14
  s.files = `git ls-files`.split("\n")
15
15
 
16
16
  s.executables.push "cutest"
17
+
18
+ s.add_dependency "clap"
17
19
  end
@@ -1,6 +1,6 @@
1
1
  class Cutest
2
2
  unless defined?(VERSION)
3
- VERSION = "1.2.1"
3
+ VERSION = "1.2.2"
4
4
  FILTER = %r[/(ruby|jruby|rbx)[-/]([0-9\.])+]
5
5
  CACHE = Hash.new { |h, k| h[k] = File.readlines(k) }
6
6
  end
@@ -9,9 +9,7 @@ class Cutest
9
9
  status = files.all? do |file|
10
10
  run_file(file)
11
11
 
12
- Process.wait
13
-
14
- $?.success?
12
+ Process.wait2.last.success?
15
13
  end
16
14
 
17
15
  puts
@@ -96,8 +94,10 @@ private
96
94
 
97
95
  # Create a class where the block will be evaluated. Recommended to improve
98
96
  # isolation between tests.
99
- def scope(&block)
100
- Cutest::Scope.new(&block).call
97
+ def scope(name = nil, &block)
98
+ if !cutest[:scope] || cutest[:scope] == name
99
+ Cutest::Scope.new(&block).call
100
+ end
101
101
  end
102
102
 
103
103
  # Prepare the environment in order to run the tests. This method can be
@@ -144,6 +144,8 @@ private
144
144
  prepare.each { |blk| blk.call }
145
145
  block.call(setup && setup.call)
146
146
  end
147
+
148
+ cutest[:test] = nil
147
149
  end
148
150
 
149
151
  # Assert that value is not nil or false.
@@ -163,6 +165,7 @@ private
163
165
  begin
164
166
  yield
165
167
  rescue => exception
168
+ exception
166
169
  ensure
167
170
  flunk("got #{exception.inspect} instead") unless exception.kind_of?(expected)
168
171
  success
@@ -11,3 +11,12 @@ test "raises if the expectation is not met" do
11
11
  end
12
12
  end
13
13
  end
14
+
15
+ test "returns the exception" do
16
+ exception = assert_raise(RuntimeError) do
17
+ raise RuntimeError, "error"
18
+ end
19
+
20
+ assert_equal "error", exception.message
21
+ end
22
+
@@ -0,0 +1,15 @@
1
+ scope "another scope" do
2
+ test do
3
+ raise "This is not raised"
4
+ end
5
+ end
6
+
7
+ scope "scope" do
8
+ test "test" do
9
+ assert true
10
+ end
11
+
12
+ test do
13
+ raise "This is raised"
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ test "named success" do
2
+ assert true
3
+ end
4
+
5
+ assert false
@@ -64,3 +64,27 @@ test "output of failure in nested file" do
64
64
 
65
65
  assert_equal(expected, out)
66
66
  end
67
+
68
+ test "output of failure outside block" do
69
+ expected = ".\n" +
70
+ " test: \n" +
71
+ " line: assert false\n" +
72
+ " file: test/fixtures/outside_block.rb +5\n\n" +
73
+ "Cutest::AssertionFailed: expression returned false\n\n"
74
+
75
+ out = %x{./bin/cutest test/fixtures/outside_block.rb}
76
+
77
+ assert_equal(expected, out)
78
+ end
79
+
80
+ test "only runs given scope name" do
81
+ out = %x{./bin/cutest test/fixtures/only_run_given_scope_name.rb -s scope}
82
+
83
+ assert out =~ /This is raised/
84
+ end
85
+
86
+ test "runs by given scope and test names" do
87
+ %x{./bin/cutest test/fixtures/only_run_given_scope_name.rb -s scope -o test}
88
+
89
+ assert_equal 0, $?.to_i
90
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cutest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Janowski
@@ -10,8 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-14 00:00:00.000000000 Z
14
- dependencies: []
13
+ date: 2014-11-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: clap
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
15
29
  description: Run tests in separate processes to avoid shared state.
16
30
  email:
17
31
  - djanowski@dimaion.com
@@ -22,7 +36,7 @@ executables:
22
36
  extensions: []
23
37
  extra_rdoc_files: []
24
38
  files:
25
- - .gitignore
39
+ - ".gitignore"
26
40
  - CHANGELOG.md
27
41
  - LICENSE
28
42
  - README.markdown
@@ -30,7 +44,6 @@ files:
30
44
  - bin/cutest
31
45
  - cutest.gemspec
32
46
  - lib/cutest.rb
33
- - lib/cutest/vendor/clap.rb
34
47
  - test/assert.rb
35
48
  - test/assert_equal.rb
36
49
  - test/assert_raise.rb
@@ -38,6 +51,8 @@ files:
38
51
  - test/fixtures/fail_custom_assertion.rb
39
52
  - test/fixtures/failure.rb
40
53
  - test/fixtures/failure_in_loaded_file.rb
54
+ - test/fixtures/only_run_given_scope_name.rb
55
+ - test/fixtures/outside_block.rb
41
56
  - test/fixtures/success.rb
42
57
  - test/prepare.rb
43
58
  - test/run.rb
@@ -53,17 +68,17 @@ require_paths:
53
68
  - lib
54
69
  required_ruby_version: !ruby/object:Gem::Requirement
55
70
  requirements:
56
- - - ! '>='
71
+ - - ">="
57
72
  - !ruby/object:Gem::Version
58
73
  version: '0'
59
74
  required_rubygems_version: !ruby/object:Gem::Requirement
60
75
  requirements:
61
- - - ! '>='
76
+ - - ">="
62
77
  - !ruby/object:Gem::Version
63
78
  version: '0'
64
79
  requirements: []
65
80
  rubyforge_project:
66
- rubygems_version: 2.0.0
81
+ rubygems_version: 2.2.2
67
82
  signing_key:
68
83
  specification_version: 4
69
84
  summary: Forking tests.
@@ -1,46 +0,0 @@
1
- class Clap
2
- attr :argv
3
- attr :opts
4
-
5
- def self.run(args, opts)
6
- new(args, opts).run
7
- end
8
-
9
- def initialize(argv, opts)
10
- @argv = argv.dup
11
- @opts = opts
12
- end
13
-
14
- def run
15
- args = []
16
-
17
- while argv.any?
18
-
19
- item = argv.shift
20
- flag = opts[item]
21
-
22
- if flag
23
-
24
- # Work around lambda semantics in 1.8.7.
25
- arity = [flag.arity, 0].max
26
-
27
- # Raise if there are not enough parameters
28
- # available for the flag.
29
- if argv.size < arity
30
- raise ArgumentError
31
- end
32
-
33
- # Call the lambda with N items from argv,
34
- # where N is the lambda's arity.
35
- flag.call(*argv.shift(arity))
36
- else
37
-
38
- # Collect the items that don't correspond to
39
- # flags.
40
- args << item
41
- end
42
- end
43
-
44
- args
45
- end
46
- end