tcr 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -40,7 +40,20 @@ class TCRTest < Test::Unit::TestCase
40
40
  end
41
41
  ```
42
42
 
43
- Run this test once, and TCR will record the tcp interactions to fixtures/tcr_cassettes/google_smtp.json. Run it again, and TCR will replay the interactions from json when the tcp request is made. This test is now fast (no real TCP requests are made anymore), deterministic and accurate.
43
+ Run this test once, and TCR will record the tcp interactions to fixtures/tcr_cassettes/google_smtp.json.
44
+
45
+ ```json
46
+ [
47
+ [
48
+ [
49
+ "read",
50
+ "220 mx.google.com ESMTP x3si2474860qas.18 - gsmtp\r\n"
51
+ ]
52
+ ]
53
+ ]
54
+ ```
55
+
56
+ Run it again, and TCR will replay the interactions from json when the tcp request is made. This test is now fast (no real TCP requests are made anymore), deterministic and accurate.
44
57
 
45
58
  ## Contributing
46
59
 
data/lib/tcr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TCR
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/tcr.rb CHANGED
@@ -26,6 +26,14 @@ module TCR
26
26
  @cassette = v
27
27
  end
28
28
 
29
+ def disabled
30
+ @disabled || false
31
+ end
32
+
33
+ def disabled=(v)
34
+ @disabled = v
35
+ end
36
+
29
37
  def save_session
30
38
  end
31
39
 
@@ -35,6 +43,14 @@ module TCR
35
43
  yield
36
44
  TCR.cassette = nil
37
45
  end
46
+
47
+ def turned_off(&block)
48
+ raise ArgumentError, "`TCR.turned_off` requires a block." unless block
49
+ current_hook_tcp_ports = configuration.hook_tcp_ports
50
+ configuration.hook_tcp_ports = []
51
+ yield
52
+ configuration.hook_tcp_ports = current_hook_tcp_ports
53
+ end
38
54
  end
39
55
 
40
56
 
data/spec/tcr_spec.rb CHANGED
@@ -18,7 +18,7 @@ describe TCR do
18
18
  end
19
19
  end
20
20
 
21
- describe ".confige" do
21
+ describe ".configure" do
22
22
  it "configures cassette location" do
23
23
  expect {
24
24
  TCR.configure { |c| c.cassette_library_dir = "some/dir" }
@@ -39,6 +39,29 @@ describe TCR do
39
39
  }.to raise_error(TCR::NoCassetteError)
40
40
  end
41
41
 
42
+ describe ".turned_off" do
43
+ it "requires a block to call" do
44
+ expect {
45
+ TCR.turned_off
46
+ }.to raise_error(ArgumentError)
47
+ end
48
+
49
+ it "disables hooks within the block" do
50
+ TCR.configure { |c| c.hook_tcp_ports = [25] }
51
+ TCR.turned_off do
52
+ TCR.configuration.hook_tcp_ports.should == []
53
+ end
54
+ end
55
+
56
+ it "makes real TCPSocket.open calls even when hooks are setup" do
57
+ TCR.configure { |c| c.hook_tcp_ports = [25] }
58
+ expect(TCPSocket).to receive(:real_open)
59
+ TCR.turned_off do
60
+ tcp_socket = TCPSocket.open("aspmx.l.google.com", 25)
61
+ end
62
+ end
63
+ end
64
+
42
65
  describe ".use_cassette" do
43
66
  before(:each) {
44
67
  TCR.configure { |c|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-02 00:00:00.000000000 Z
12
+ date: 2013-09-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec