shoulda-context 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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df8f2fe9782e7db3c0e6f2f77f8d04b76b9c9f2e
4
- data.tar.gz: ca62592d56ed9e521a671a57871681afdfab927a
3
+ metadata.gz: 8f5e8f0cc83d3b44bd9eddf2193085c1b9fea968
4
+ data.tar.gz: 7c8a322dea7cfb60550eb4a199a01346f86bfaa3
5
5
  SHA512:
6
- metadata.gz: 8bad72c96f00be2d36259dd1b05a43460165140999ce436c1085d0955f6c3c7e54eda80518f5231fbfe8eaac534615760b841cfd5ae98ec553d336340515c226
7
- data.tar.gz: 1f6eb0a64da18e0027d48f412cf9b37861e5c360c8f7e3b782d27a48d46b8d9947e0d5116c1a096fe08b84175fd7b572095c452c0d7c93ae60df5cf8578931a6
6
+ metadata.gz: b441e5a21877364af355eb9a431fbd05be5065cd3c646c3335d397b87a1eb857e71c11a7f9b6884896c18c4dceb83ffcdde80773ed71ae31575b3d2a12c643e2
7
+ data.tar.gz: 5893017828229249e980f1f4c67c08a04ec3619942a8b9dd455727be8d71525a39927ea764a3f8b3ba3fa90069bc99c77d92694b978329a60c64277ce3036ca8
data/README.md CHANGED
@@ -13,27 +13,40 @@ about using shoulda with Rails or RSpec.
13
13
  Instead of writing Ruby methods with `lots_of_underscores`, shoulda-context adds
14
14
  context, setup, and should blocks...
15
15
 
16
- class CalculatorTest < Test::Unit::TestCase
17
- context "a calculator" do
18
- setup do
19
- @calculator = Calculator.new
20
- end
21
-
22
- should "add two numbers for the sum" do
23
- assert_equal 4, @calculator.sum(2, 2)
24
- end
25
-
26
- should "multiply two numbers for the product" do
27
- assert_equal 10, @calculator.product(2, 5)
28
- end
29
- end
16
+ ```ruby
17
+ require "test/unit"
18
+
19
+ class CalculatorTest < Test::Unit::TestCase
20
+ context "a calculator" do
21
+ setup do
22
+ @calculator = Calculator.new
23
+ end
24
+
25
+ should "add two numbers for the sum" do
26
+ assert_equal 4, @calculator.sum(2, 2)
27
+ end
28
+
29
+ should "multiply two numbers for the product" do
30
+ assert_equal 10, @calculator.product(2, 5)
30
31
  end
32
+ end
33
+ end
34
+ ```
31
35
 
32
36
  ... which combine to produce the following test methods:
33
37
 
34
38
  "test: a calculator should add two numbers for the sum."
35
39
  "test: a calculator should multiply two numbers for the product."
36
40
 
41
+ When running a single test method via (example from a Rails context):
42
+
43
+ ruby -I"lib:test" path_to_test_file -n name_of_the_test_method
44
+
45
+ you should include a trailing space(!), e.g.,
46
+
47
+ ruby -I"lib:test" path_to_test_file -n "test: a calculator should add two numbers for the sum. "
48
+
49
+
37
50
  ## Assertions
38
51
 
39
52
  It also has two additional Test::Unit assertions for working with Ruby's Array:
@@ -50,5 +63,5 @@ Thank you to all the [contributors](https://github.com/thoughtbot/shoulda-contex
50
63
 
51
64
  ## License
52
65
 
53
- Shoulda is Copyright © 2006-2013 thoughtbot, inc.
66
+ Shoulda is Copyright © 2006-2016 thoughtbot, inc.
54
67
  It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.
@@ -210,7 +210,9 @@ module Shoulda
210
210
  @described_type ||= self.name.
211
211
  gsub(/Test$/, '').
212
212
  split('::').
213
- inject(Object) { |parent, local_name| parent.const_get(local_name) }
213
+ inject(Object) do |parent, local_name|
214
+ parent.const_get(local_name, false)
215
+ end
214
216
  end
215
217
 
216
218
  # Sets the return value of the subject instance method:
@@ -394,9 +396,10 @@ module Shoulda
394
396
  end
395
397
 
396
398
  test_methods[test_unit_class][test_name.to_s] = true
397
-
399
+ file, line_no = should[:block].source_location
398
400
  context = self
399
- test_unit_class.send(:define_method, test_name) do
401
+ test_unit_class.class_eval <<-end_eval, file, line_no
402
+ define_method test_name do
400
403
  @shoulda_context = context
401
404
  begin
402
405
  context.run_parent_setup_blocks(self)
@@ -404,7 +407,6 @@ module Shoulda
404
407
  if self.respond_to?(:instance_exec)
405
408
  self.instance_exec(&should[:before])
406
409
  else
407
- # deprecated in Rails 4.x
408
410
  should[:before].bind(self).call
409
411
  end
410
412
  end
@@ -412,13 +414,13 @@ module Shoulda
412
414
  if self.respond_to?(:instance_exec)
413
415
  self.instance_exec(&should[:block])
414
416
  else
415
- # deprecated in Rails 4.x
416
417
  should[:block].bind(self).call
417
418
  end
418
419
  ensure
419
420
  context.run_all_teardown_blocks(self)
420
421
  end
421
- end
422
+ end
423
+ end_eval
422
424
  end
423
425
 
424
426
  def run_all_setup_blocks(binding)
@@ -1,5 +1,5 @@
1
1
  module Shoulda
2
2
  module Context
3
- VERSION = '1.2.1'.freeze
3
+ VERSION = '1.2.2'.freeze
4
4
  end
5
5
  end
@@ -24,4 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency("mocha", "~> 0.9.10")
25
25
  s.add_development_dependency("rake")
26
26
  s.add_development_dependency("test-unit", "~> 2.1.0")
27
+ s.add_development_dependency("pry")
28
+ s.add_development_dependency("byebug")
29
+ s.add_development_dependency("pry-byebug")
27
30
  end
@@ -172,13 +172,20 @@ class ::Some
172
172
  class NestedModel; end
173
173
  end
174
174
 
175
-
176
175
  class Some::NestedModelTest < Test::Unit::TestCase
177
176
  should "determine the described type for a nested model" do
178
177
  assert_equal Some::NestedModel, self.class.described_type
179
178
  end
180
179
  end
181
180
 
181
+ class Some::SomeTest < Test::Unit::TestCase
182
+ should "not fallback to higher-level constants with same name" do
183
+ assert_raises(NameError) do
184
+ assert_equal nil, self.class.described_type
185
+ end
186
+ end
187
+ end
188
+
182
189
  class ShouldMatcherTest < Test::Unit::TestCase
183
190
  class FakeMatcher
184
191
  attr_reader :subject
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoulda-context
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
  - thoughtbot, inc.
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-04-02 00:00:00.000000000 Z
16
+ date: 2016-11-07 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: appraisal
@@ -85,6 +85,48 @@ dependencies:
85
85
  - - ~>
86
86
  - !ruby/object:Gem::Version
87
87
  version: 2.1.0
88
+ - !ruby/object:Gem::Dependency
89
+ name: pry
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ - !ruby/object:Gem::Dependency
103
+ name: byebug
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ - !ruby/object:Gem::Dependency
117
+ name: pry-byebug
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
88
130
  description: Context framework extracted from Shoulda
89
131
  email: support@thoughtbot.com
90
132
  executables: