cassette 1.2.6 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -2
- data/lib/cassette.rb +11 -2
- data/lib/cassette/cache.rb +4 -0
- data/lib/cassette/client.rb +18 -9
- data/lib/cassette/client/cache.rb +1 -1
- data/lib/cassette/http/request.rb +2 -1
- data/lib/cassette/rubycas/user_factory.rb +1 -0
- data/lib/cassette/version.rb +3 -3
- data/spec/cassette/authentication/authorities_spec.rb +3 -2
- data/spec/cassette/authentication/filter_spec.rb +1 -5
- data/spec/cassette/authentication/user_factory_spec.rb +22 -0
- data/spec/cassette/client/cache_spec.rb +22 -4
- data/spec/cassette/client_spec.rb +66 -29
- data/spec/cassette_spec.rb +76 -0
- data/spec/config.yml +7 -5
- data/spec/spec_helper.rb +1 -1
- data/spec/support/last_execution_examples_result.txt +163 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 302159bc190555686c97fdbd0ab7ef6c62b05b86a6a5d46fd78461e907d93a54
|
4
|
+
data.tar.gz: 70eba247639f254a5cf546a25cb49254c5bc26972f7f70d11840ff0f1d381c7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b404463f59f830361883b35297f95ce4caa6272d1257fea406bbea7060630b11e7d010b1e22cd703b6ed3a95f173250e0a14dff968a941db77ae0cbfb4be4ce5
|
7
|
+
data.tar.gz: 0b9d537f6e359af0372cc6b2248885b5eac7e6df89a5240da2e67d4a94d8bbac5a2084e0a3a6a1b70cb11e18f67f6da6f8138e8007c37ee2b31b6b2384e94a90
|
data/README.md
CHANGED
@@ -25,10 +25,18 @@ $ bundle
|
|
25
25
|
Require this library and create an intializer to set its configuration:
|
26
26
|
|
27
27
|
```ruby
|
28
|
-
|
28
|
+
Cassete.config = OpenStruct.new(
|
29
|
+
username: 'user',
|
30
|
+
password: 'secret',
|
31
|
+
service: 'test-api.example.org',
|
32
|
+
base: 'https://some-cas.example.org',
|
33
|
+
base_authority: 'CASTEST',
|
34
|
+
verify_ssl: true, # If not defined, the default value will be: false.
|
35
|
+
tls_version: 'TLSv1_2' # if not defined, the default value will be: 'TLSv1'.
|
36
|
+
)
|
29
37
|
```
|
30
38
|
|
31
|
-
where config is an
|
39
|
+
where config is an OpenStruct that responds to the methods `base` for the base CAS uri, `username` and `password` if you are authenticating on other systems and `service` and `base_authority` if you are using the authentication filter to authenticate your app.
|
32
40
|
|
33
41
|
You may also set the caching backend using the .backend= module method:
|
34
42
|
|
data/lib/cassette.rb
CHANGED
@@ -14,6 +14,7 @@ require 'cassette/authentication/filter'
|
|
14
14
|
require 'faraday'
|
15
15
|
require 'forwardable'
|
16
16
|
require 'logger'
|
17
|
+
require 'ostruct'
|
17
18
|
|
18
19
|
module Cassette
|
19
20
|
extend Forwardable
|
@@ -21,7 +22,9 @@ module Cassette
|
|
21
22
|
|
22
23
|
attr_writer :config, :logger
|
23
24
|
|
24
|
-
DEFAULT_TIMEOUT
|
25
|
+
DEFAULT_TIMEOUT = 10
|
26
|
+
DEFAULT_TLS_VERSION = 'TLSv1_2'.freeze
|
27
|
+
DEFAULT_VERIFY_SSL = false
|
25
28
|
|
26
29
|
def logger
|
27
30
|
@logger ||= begin
|
@@ -34,7 +37,13 @@ module Cassette
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def config
|
37
|
-
@config
|
40
|
+
@config = OpenStruct.new unless defined?(@config)
|
41
|
+
|
42
|
+
@config.tls_version = DEFAULT_TLS_VERSION if @config.tls_version.nil?
|
43
|
+
|
44
|
+
@config.verify_ssl = DEFAULT_VERIFY_SSL if @config.verify_ssl.nil?
|
45
|
+
|
46
|
+
@config
|
38
47
|
end
|
39
48
|
|
40
49
|
def cache_backend
|
data/lib/cassette/cache.rb
CHANGED
data/lib/cassette/client.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
1
|
module Cassette
|
4
2
|
class Client
|
5
3
|
def self.method_missing(name, *args)
|
@@ -20,12 +18,16 @@ module Cassette
|
|
20
18
|
|
21
19
|
def tgt(usr, pwd, force = false)
|
22
20
|
logger.info 'Requesting TGT'
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
cached = true
|
22
|
+
|
23
|
+
tgt = cache.fetch_tgt(force: force) do
|
24
|
+
cached = false
|
25
|
+
request_new_tgt(usr, pwd)
|
28
26
|
end
|
27
|
+
|
28
|
+
logger.info("TGT cache hit, value: '#{tgt}'") if cached
|
29
|
+
|
30
|
+
tgt
|
29
31
|
end
|
30
32
|
|
31
33
|
def st(tgt_param, service, force = false)
|
@@ -49,7 +51,7 @@ module Cassette
|
|
49
51
|
attr_accessor :cache, :logger, :http, :config
|
50
52
|
|
51
53
|
def st_with_retry(user, pass, service, retrying = false)
|
52
|
-
st(->{ tgt(user, pass, retrying) }, service)
|
54
|
+
st(-> { tgt(user, pass, retrying) }, service)
|
53
55
|
rescue Cassette::Errors::NotFound => e
|
54
56
|
raise e if retrying
|
55
57
|
|
@@ -59,7 +61,14 @@ module Cassette
|
|
59
61
|
end
|
60
62
|
|
61
63
|
def tickets_path
|
62
|
-
|
64
|
+
'/v1/tickets'
|
65
|
+
end
|
66
|
+
|
67
|
+
def request_new_tgt(usr, pwd)
|
68
|
+
response = http.post(tickets_path, username: usr, password: pwd)
|
69
|
+
tgt = Regexp.last_match(1) if response.headers['Location'] =~ %r{tickets/(.*)}
|
70
|
+
logger.info "TGT is #{tgt}"
|
71
|
+
tgt
|
63
72
|
end
|
64
73
|
end
|
65
74
|
end
|
@@ -16,7 +16,7 @@ module Cassette
|
|
16
16
|
def fetch_tgt(options = {}, &_block)
|
17
17
|
options = { expires_in: 4 * 3600, max_uses: 5000, force: false }.merge(options)
|
18
18
|
fetch('Cassette::Client.tgt', options) do
|
19
|
-
logger.info
|
19
|
+
logger.info('TGT cache miss')
|
20
20
|
yield
|
21
21
|
end
|
22
22
|
end
|
@@ -36,7 +36,8 @@ module Cassette
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def request
|
39
|
-
@request ||= Faraday.new(url: config.base, ssl:
|
39
|
+
@request ||= Faraday.new(url: config.base, ssl:
|
40
|
+
{ verify: config.verify_ssl, version: config.tls_version }) do |conn|
|
40
41
|
conn.adapter Faraday.default_adapter
|
41
42
|
end
|
42
43
|
end
|
@@ -3,6 +3,7 @@ module Cassette
|
|
3
3
|
module UserFactory
|
4
4
|
def from_session(session)
|
5
5
|
attributes = session[:cas_extra_attributes]
|
6
|
+
attributes = attributes.with_indifferent_access if attributes.respond_to?(:with_indifferent_access)
|
6
7
|
Cassette::Authentication::User.new(login: session[:cas_user],
|
7
8
|
name: attributes.try(:[], :cn),
|
8
9
|
email: attributes.try(:[], :email),
|
data/lib/cassette/version.rb
CHANGED
@@ -65,8 +65,9 @@ describe Cassette::Authentication::Authorities do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
context 'with authentication disabled' do
|
68
|
-
before
|
69
|
-
|
68
|
+
before do
|
69
|
+
stub_const('ENV', ENV.to_hash.merge('NOAUTH' => 'true'))
|
70
|
+
end
|
70
71
|
subject { Cassette::Authentication::Authorities.new('[]') }
|
71
72
|
|
72
73
|
it '#has_role? returns true for every role' do
|
@@ -38,5 +38,27 @@ RSpec.describe Cassette::Rubycas::UserFactory do
|
|
38
38
|
it { is_expected.to be_customer }
|
39
39
|
it { is_expected.not_to be_employee }
|
40
40
|
end
|
41
|
+
|
42
|
+
context 'when key cas_extra_attributes is string' do
|
43
|
+
let(:session) do
|
44
|
+
name = Faker.name
|
45
|
+
|
46
|
+
{
|
47
|
+
cas_user: Faker::Internet.user_name(name),
|
48
|
+
cas_extra_attributes: {
|
49
|
+
'email' => Faker::Internet.email(name),
|
50
|
+
'type' => 'Customer',
|
51
|
+
'authorities' => '[CASTEST_ADMIN]'
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
its(:login) { is_expected.to eq(session[:cas_user]) }
|
57
|
+
its(:name) { is_expected.to eq(attributes['name']) }
|
58
|
+
its(:email) { is_expected.to eq(attributes['email']) }
|
59
|
+
its(:type) { is_expected.to eq(attributes['type'].downcase) }
|
60
|
+
it { is_expected.to be_customer }
|
61
|
+
it { is_expected.not_to be_employee }
|
62
|
+
end
|
41
63
|
end
|
42
64
|
end
|
@@ -4,18 +4,36 @@
|
|
4
4
|
|
5
5
|
describe Cassette::Client::Cache do
|
6
6
|
it 'uses the cache store set in configuration' do
|
7
|
+
# setup
|
8
|
+
global_cache = double('cache_store')
|
9
|
+
Cassette.cache_backend = global_cache
|
10
|
+
|
11
|
+
logger = Logger.new('/dev/null')
|
12
|
+
|
13
|
+
# exercise
|
14
|
+
client_cache = described_class.new(logger)
|
15
|
+
|
16
|
+
expect(client_cache.backend).to eq(global_cache)
|
17
|
+
|
18
|
+
# tear down
|
19
|
+
Cassette.cache_backend = nil
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '.backend=' do
|
23
|
+
it 'sets the cache' do
|
7
24
|
# setup
|
8
25
|
global_cache = double('cache_store')
|
9
|
-
Cassette.cache_backend = global_cache
|
10
|
-
|
11
26
|
logger = Logger.new('/dev/null')
|
12
27
|
|
13
28
|
# exercise
|
14
|
-
|
29
|
+
Cassette::Client.cache.backend = global_cache
|
15
30
|
|
16
|
-
|
31
|
+
# verify
|
32
|
+
client_cache = described_class.new(logger)
|
33
|
+
expect(client_cache.backend).to eql(global_cache)
|
17
34
|
|
18
35
|
# tear down
|
19
36
|
Cassette.cache_backend = nil
|
20
37
|
end
|
38
|
+
end
|
21
39
|
end
|
@@ -63,50 +63,87 @@ describe Cassette::Client do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
context 'when tgt is not cached' do
|
66
|
-
|
67
|
-
|
66
|
+
after do
|
67
|
+
Cassette.logger = Logger.new('/dev/null')
|
68
|
+
end
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
expect(opts[:force]).to eq false
|
72
|
-
tgt
|
73
|
-
end
|
70
|
+
it 'returns the tgt and logs correctly' do
|
71
|
+
Cassette::Client.cache.backend.clear
|
74
72
|
|
75
|
-
|
76
|
-
|
73
|
+
tgt = 'TGT-Something-example'
|
74
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
75
|
+
allow(http).to receive(:post).and_return(response)
|
76
|
+
|
77
|
+
logger = spy(:logger)
|
78
|
+
Cassette.logger = logger
|
77
79
|
|
78
|
-
|
80
|
+
client = Cassette::Client.new(http_client: http)
|
81
|
+
|
82
|
+
# exercise
|
83
|
+
result = client.tgt('user', 'pass')
|
84
|
+
|
85
|
+
# verify
|
86
|
+
expect(result).to eq(tgt)
|
87
|
+
expect(logger).to have_received(:info).with("TGT cache miss").ordered
|
88
|
+
expect(logger).to have_received(:info).with("TGT is #{tgt}").ordered
|
89
|
+
end
|
79
90
|
end
|
80
91
|
|
81
92
|
context 'with a cached tgt' do
|
82
|
-
|
93
|
+
after do
|
94
|
+
Cassette.logger = Logger.new('/dev/null')
|
95
|
+
end
|
83
96
|
|
84
|
-
|
85
|
-
|
86
|
-
.and_return(tgt)
|
97
|
+
it 'returns the tgt from the cache and logs correctly' do
|
98
|
+
Cassette::Client.cache.backend.clear
|
87
99
|
|
88
|
-
|
89
|
-
|
100
|
+
tgt = 'TGT-Something-example'
|
101
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
102
|
+
allow(http).to receive(:post).and_return(response)
|
90
103
|
|
91
|
-
|
92
|
-
|
104
|
+
# this first call is to set the cache
|
105
|
+
client = Cassette::Client.new(http_client: http)
|
106
|
+
result = client.tgt('user', 'pass')
|
93
107
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
end
|
98
|
-
end
|
108
|
+
logger = spy(:logger)
|
109
|
+
Cassette.logger = logger
|
110
|
+
client = Cassette::Client.new(http_client: http)
|
99
111
|
|
100
|
-
|
101
|
-
|
112
|
+
# exercise
|
113
|
+
result = client.tgt('user', 'pass')
|
102
114
|
|
103
|
-
|
115
|
+
# verify
|
116
|
+
expect(result).to eq(tgt)
|
117
|
+
expect(logger).to have_received(:info).with("TGT cache hit, value: '#{tgt}'")
|
104
118
|
end
|
105
119
|
|
106
|
-
|
107
|
-
|
120
|
+
it 'generates another tgt when the param force is true' do
|
121
|
+
Cassette::Client.cache.backend.clear
|
122
|
+
|
123
|
+
tgt = 'TGT-Something-example'
|
124
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt}"})
|
125
|
+
allow(http).to receive(:post).and_return(response)
|
126
|
+
|
127
|
+
# this first call is to set the cache
|
128
|
+
client = Cassette::Client.new(http_client: http)
|
129
|
+
result = client.tgt('user', 'pass')
|
130
|
+
|
131
|
+
tgt2 = 'TGT2-Something-example'
|
132
|
+
response = double('response', headers: {'Location' => "tickets/#{tgt2}"})
|
133
|
+
allow(http).to receive(:post).and_return(response)
|
134
|
+
|
135
|
+
logger = spy(:logger)
|
136
|
+
Cassette.logger = logger
|
137
|
+
client = Cassette::Client.new(http_client: http)
|
138
|
+
|
139
|
+
# exercise
|
140
|
+
force = true
|
141
|
+
result = client.tgt('user', 'pass', force)
|
108
142
|
|
109
|
-
|
143
|
+
# verify
|
144
|
+
expect(result).to eq(tgt2)
|
145
|
+
expect(logger).to have_received(:info).with("TGT cache miss").ordered
|
146
|
+
expect(logger).to have_received(:info).with("TGT is #{tgt2}").ordered
|
110
147
|
end
|
111
148
|
end
|
112
149
|
end
|
data/spec/cassette_spec.rb
CHANGED
@@ -7,6 +7,78 @@ describe Cassette do
|
|
7
7
|
Cassette.logger = original_logger
|
8
8
|
end
|
9
9
|
|
10
|
+
describe '.config' do
|
11
|
+
it 'defines Cassette initial configuration based on a OpenStruct' do
|
12
|
+
|
13
|
+
config = OpenStruct.new(
|
14
|
+
YAML.load_file('spec/config.yml')
|
15
|
+
)
|
16
|
+
|
17
|
+
Cassette.config = config
|
18
|
+
|
19
|
+
expect(Cassette.config)
|
20
|
+
.to eq(config)
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'when tls_version was not specified' do
|
24
|
+
it 'uses default TLS version: TLSv1_2' do
|
25
|
+
config = OpenStruct.new(
|
26
|
+
YAML.load_file('spec/config.yml')
|
27
|
+
)
|
28
|
+
|
29
|
+
# Removing tls_version field
|
30
|
+
config.delete_field(:tls_version)
|
31
|
+
|
32
|
+
Cassette.config = config
|
33
|
+
|
34
|
+
expect(Cassette.config.tls_version)
|
35
|
+
.to eq('TLSv1_2')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when tls_version is specified' do
|
40
|
+
it 'uses this version' do
|
41
|
+
config = OpenStruct.new(
|
42
|
+
YAML.load_file('spec/config.yml')
|
43
|
+
)
|
44
|
+
|
45
|
+
Cassette.config = config
|
46
|
+
|
47
|
+
expect(Cassette.config.tls_version)
|
48
|
+
.to eq('TLSv1_2')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'when verify_ssl was not specified' do
|
53
|
+
it 'uses default verify_ssl value: false' do
|
54
|
+
config = OpenStruct.new(
|
55
|
+
YAML.load_file('spec/config.yml')
|
56
|
+
)
|
57
|
+
|
58
|
+
# Removing verify_ssl field
|
59
|
+
config.delete_field(:verify_ssl)
|
60
|
+
|
61
|
+
Cassette.config = config
|
62
|
+
|
63
|
+
expect(Cassette.config.verify_ssl)
|
64
|
+
.to be false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'when verify_ssl is specified' do
|
69
|
+
it 'uses this value' do
|
70
|
+
config = OpenStruct.new(
|
71
|
+
YAML.load_file('spec/config.yml')
|
72
|
+
)
|
73
|
+
|
74
|
+
Cassette.config = config
|
75
|
+
|
76
|
+
expect(Cassette.config.verify_ssl)
|
77
|
+
.to be true
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
10
82
|
describe '.logger' do
|
11
83
|
it 'returns a default instance' do
|
12
84
|
expect(Cassette.logger).not_to be_nil
|
@@ -50,6 +122,7 @@ describe Cassette do
|
|
50
122
|
|
51
123
|
context 'when the cache_backend is not set' do
|
52
124
|
it 'returns Rails.cache if set' do
|
125
|
+
described_class.cache_backend = nil
|
53
126
|
rails_cache = double('cache')
|
54
127
|
rails = double('Rails')
|
55
128
|
allow(rails).to receive(:cache).and_return(rails_cache)
|
@@ -63,6 +136,8 @@ describe Cassette do
|
|
63
136
|
end
|
64
137
|
|
65
138
|
it 'returns MemoryStore if Rails.cache not set' do
|
139
|
+
described_class.cache_backend = nil
|
140
|
+
|
66
141
|
# exercise and verify
|
67
142
|
expect(described_class.cache_backend).to be_a(ActiveSupport::Cache::MemoryStore)
|
68
143
|
|
@@ -71,6 +146,7 @@ describe Cassette do
|
|
71
146
|
end
|
72
147
|
|
73
148
|
it 'returns NullStore if Rails.cache and MemoryStore are not set' do
|
149
|
+
described_class.cache_backend = nil
|
74
150
|
hide_const('ActiveSupport::Cache::MemoryStore')
|
75
151
|
require 'cassette/cache/null_store'
|
76
152
|
|
data/spec/config.yml
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
username:
|
2
|
-
password:
|
3
|
-
service:
|
4
|
-
base:
|
5
|
-
base_authority:
|
1
|
+
username: 'user'
|
2
|
+
password: 'secret'
|
3
|
+
service: 'test-api.example.org'
|
4
|
+
base: 'https://some-cas.example.org'
|
5
|
+
base_authority: 'CASTEST'
|
6
|
+
verify_ssl: true
|
7
|
+
tls_version: 'TLSv1_2'
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,163 @@
|
|
1
|
+
example_id | status | run_time |
|
2
|
+
-------------------------------------------------------------- | ------ | --------------- |
|
3
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:1] | passed | 0.0005 seconds |
|
4
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:2] | passed | 0.00121 seconds |
|
5
|
+
./spec/cassette/authentication/authorities_spec.rb[1:1:3] | passed | 0.00056 seconds |
|
6
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:1] | passed | 0.00137 seconds |
|
7
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:2:1] | passed | 0.02571 seconds |
|
8
|
+
./spec/cassette/authentication/authorities_spec.rb[1:2:2:2] | passed | 0.00056 seconds |
|
9
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:1] | passed | 0.00075 seconds |
|
10
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:2] | passed | 0.00122 seconds |
|
11
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:3] | passed | 0.00063 seconds |
|
12
|
+
./spec/cassette/authentication/authorities_spec.rb[1:3:4] | passed | 0.001 seconds |
|
13
|
+
./spec/cassette/authentication/authorities_spec.rb[1:4:1] | passed | 0.00085 seconds |
|
14
|
+
./spec/cassette/authentication/authorities_spec.rb[1:4:2] | passed | 0.00197 seconds |
|
15
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:1] | passed | 0.00249 seconds |
|
16
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:1] | passed | 0.0019 seconds |
|
17
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:2] | passed | 0.00239 seconds |
|
18
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:2:3:1] | passed | 0.00423 seconds |
|
19
|
+
./spec/cassette/authentication/cache_spec.rb[1:1:3] | passed | 0.0023 seconds |
|
20
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:1:1] | passed | 0.00293 seconds |
|
21
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:1:2] | passed | 0.00231 seconds |
|
22
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:2] | passed | 0.00215 seconds |
|
23
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:1:3] | passed | 0.0026 seconds |
|
24
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:1:1] | passed | 0.00163 seconds |
|
25
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:1:2] | passed | 0.00214 seconds |
|
26
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:2] | passed | 0.0017 seconds |
|
27
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:2:3] | passed | 0.00176 seconds |
|
28
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:1:1:1] | passed | 0.01019 seconds |
|
29
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:1:1:2] | passed | 0.0017 seconds |
|
30
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:2:1:1] | passed | 0.00173 seconds |
|
31
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:2:1:2] | passed | 0.00211 seconds |
|
32
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:3:1:1] | passed | 0.00136 seconds |
|
33
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:1:3:1:2] | passed | 0.00193 seconds |
|
34
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:2:1] | passed | 0.00202 seconds |
|
35
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:1:1] | passed | 0.00203 seconds |
|
36
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:2:1] | passed | 0.00217 seconds |
|
37
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:3:1] | passed | 0.00182 seconds |
|
38
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:3:3:4:1] | passed | 0.00229 seconds |
|
39
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:1:1] | passed | 0.01027 seconds |
|
40
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:2:1] | passed | 0.00906 seconds |
|
41
|
+
./spec/cassette/authentication/filter_spec.rb[1:1:1:4:1:3:1] | passed | 0.00818 seconds |
|
42
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:1:1] | passed | 0.00174 seconds |
|
43
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:1:2] | passed | 0.00193 seconds |
|
44
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:2] | passed | 0.00168 seconds |
|
45
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:1:3] | passed | 0.0024 seconds |
|
46
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:1:1] | passed | 0.0033 seconds |
|
47
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:1:2] | passed | 0.00171 seconds |
|
48
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:2] | passed | 0.00223 seconds |
|
49
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:2:3] | passed | 0.00197 seconds |
|
50
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:1:1:1] | passed | 0.00097 seconds |
|
51
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:1:1:2] | passed | 0.00109 seconds |
|
52
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:2:1:1] | passed | 0.00108 seconds |
|
53
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:2:1:2] | passed | 0.00229 seconds |
|
54
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:3:1:1] | passed | 0.00131 seconds |
|
55
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:1:3:1:2] | passed | 0.00261 seconds |
|
56
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:2:1] | passed | 0.00157 seconds |
|
57
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:1:1] | passed | 0.0019 seconds |
|
58
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:2:1] | passed | 0.00206 seconds |
|
59
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:3:1] | passed | 0.00185 seconds |
|
60
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:3:3:4:1] | passed | 0.00227 seconds |
|
61
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:1:1] | passed | 0.00892 seconds |
|
62
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:2:1] | passed | 0.00932 seconds |
|
63
|
+
./spec/cassette/authentication/filter_spec.rb[1:2:1:4:1:3:1] | passed | 0.00759 seconds |
|
64
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:1:1] | passed | 0.00683 seconds |
|
65
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:2:1] | passed | 0.00842 seconds |
|
66
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:3:1] | passed | 0.00684 seconds |
|
67
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:4:1] | passed | 0.00625 seconds |
|
68
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:5] | passed | 0.00715 seconds |
|
69
|
+
./spec/cassette/authentication/user_factory_spec.rb[1:1:1:6] | passed | 1.96 seconds |
|
70
|
+
./spec/cassette/authentication/user_spec.rb[1:1:1:1] | passed | 0.00035 seconds |
|
71
|
+
./spec/cassette/authentication/user_spec.rb[1:1:2:1] | passed | 0.01246 seconds |
|
72
|
+
./spec/cassette/authentication/user_spec.rb[1:2:1] | passed | 0.0007 seconds |
|
73
|
+
./spec/cassette/authentication/user_spec.rb[1:2:2] | passed | 0.00059 seconds |
|
74
|
+
./spec/cassette/authentication/user_spec.rb[1:2:3] | passed | 0.00246 seconds |
|
75
|
+
./spec/cassette/authentication/user_spec.rb[1:3:1:1] | passed | 0.00096 seconds |
|
76
|
+
./spec/cassette/authentication/user_spec.rb[1:3:2:1] | passed | 0.00718 seconds |
|
77
|
+
./spec/cassette/authentication_spec.rb[1:1:1:1] | passed | 0.00114 seconds |
|
78
|
+
./spec/cassette/authentication_spec.rb[1:1:1:2] | passed | 0.00203 seconds |
|
79
|
+
./spec/cassette/authentication_spec.rb[1:1:1:3] | passed | 0.00139 seconds |
|
80
|
+
./spec/cassette/authentication_spec.rb[1:1:2:1] | passed | 0.00226 seconds |
|
81
|
+
./spec/cassette/authentication_spec.rb[1:1:2:2:1] | passed | 0.02205 seconds |
|
82
|
+
./spec/cassette/authentication_spec.rb[1:1:2:3:1] | passed | 0.02106 seconds |
|
83
|
+
./spec/cassette/authentication_spec.rb[1:2:1] | passed | 0.00062 seconds |
|
84
|
+
./spec/cassette/authentication_spec.rb[1:2:2] | passed | 0.00086 seconds |
|
85
|
+
./spec/cassette/authentication_spec.rb[1:2:3] | passed | 0.00179 seconds |
|
86
|
+
./spec/cassette/authentication_spec.rb[1:2:4] | passed | 0.00147 seconds |
|
87
|
+
./spec/cassette/cache/null_store_spec.rb[1:1:1] | passed | 0.001 seconds |
|
88
|
+
./spec/cassette/cache/null_store_spec.rb[1:1:2] | passed | 0.00067 seconds |
|
89
|
+
./spec/cassette/cache/null_store_spec.rb[1:2:1] | passed | 0.00062 seconds |
|
90
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:1] | passed | 0.00054 seconds |
|
91
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:2] | passed | 0.00069 seconds |
|
92
|
+
./spec/cassette/cache/null_store_spec.rb[1:3:3] | passed | 0.00055 seconds |
|
93
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:1] | passed | 0.00108 seconds |
|
94
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:2] | passed | 0.00056 seconds |
|
95
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:3] | passed | 0.00049 seconds |
|
96
|
+
./spec/cassette/cache/null_store_spec.rb[1:4:4] | passed | 0.00088 seconds |
|
97
|
+
./spec/cassette/cache/null_store_spec.rb[1:5:1] | passed | 0.00067 seconds |
|
98
|
+
./spec/cassette/cache/null_store_spec.rb[1:5:2] | passed | 0.00083 seconds |
|
99
|
+
./spec/cassette/cache_spec.rb[1:1:1] | passed | 0.00083 seconds |
|
100
|
+
./spec/cassette/cache_spec.rb[1:2:1] | passed | 0.00057 seconds |
|
101
|
+
./spec/cassette/cache_spec.rb[1:3] | passed | 0.00431 seconds |
|
102
|
+
./spec/cassette/client/cache_spec.rb[1:1] | passed | 0.00113 seconds |
|
103
|
+
./spec/cassette/client/cache_spec.rb[1:2:1] | passed | 0.0006 seconds |
|
104
|
+
./spec/cassette/client_spec.rb[1:1:1] | passed | 0.00547 seconds |
|
105
|
+
./spec/cassette/client_spec.rb[1:1:2] | passed | 0.00279 seconds |
|
106
|
+
./spec/cassette/client_spec.rb[1:2:1:1] | passed | 0.00261 seconds |
|
107
|
+
./spec/cassette/client_spec.rb[1:2:1:2] | passed | 0.00297 seconds |
|
108
|
+
./spec/cassette/client_spec.rb[1:2:1:3] | passed | 0.00232 seconds |
|
109
|
+
./spec/cassette/client_spec.rb[1:2:2:1] | passed | 0.00342 seconds |
|
110
|
+
./spec/cassette/client_spec.rb[1:2:3:1] | passed | 0.00306 seconds |
|
111
|
+
./spec/cassette/client_spec.rb[1:2:3:2] | passed | 0.00532 seconds |
|
112
|
+
./spec/cassette/client_spec.rb[1:3:1:1:1] | passed | 0.00234 seconds |
|
113
|
+
./spec/cassette/client_spec.rb[1:3:1:1:2] | passed | 0.00261 seconds |
|
114
|
+
./spec/cassette/client_spec.rb[1:3:1:1:3] | passed | 0.00731 seconds |
|
115
|
+
./spec/cassette/client_spec.rb[1:3:2:1:1] | passed | 0.00262 seconds |
|
116
|
+
./spec/cassette/client_spec.rb[1:3:2:1:2] | passed | 0.00287 seconds |
|
117
|
+
./spec/cassette/client_spec.rb[1:3:2:1:3] | passed | 0.00177 seconds |
|
118
|
+
./spec/cassette/client_spec.rb[1:3:3:1:1] | passed | 0.00216 seconds |
|
119
|
+
./spec/cassette/client_spec.rb[1:3:3:1:2] | passed | 0.00164 seconds |
|
120
|
+
./spec/cassette/client_spec.rb[1:3:3:2:1] | passed | 0.00289 seconds |
|
121
|
+
./spec/cassette/client_spec.rb[1:3:3:2:2] | passed | 0.00335 seconds |
|
122
|
+
./spec/cassette/client_spec.rb[1:4:1:1] | passed | 0.00312 seconds |
|
123
|
+
./spec/cassette/client_spec.rb[1:4:1:2] | passed | 0.00303 seconds |
|
124
|
+
./spec/cassette/client_spec.rb[1:4:1:3] | passed | 0.00477 seconds |
|
125
|
+
./spec/cassette/client_spec.rb[1:4:2:1] | passed | 0.0028 seconds |
|
126
|
+
./spec/cassette/client_spec.rb[1:4:2:2] | passed | 0.0085 seconds |
|
127
|
+
./spec/cassette/client_spec.rb[1:4:3:1] | passed | 0.00275 seconds |
|
128
|
+
./spec/cassette/client_spec.rb[1:4:4:1] | passed | 0.00421 seconds |
|
129
|
+
./spec/cassette/client_spec.rb[1:4:4:2] | passed | 0.00362 seconds |
|
130
|
+
./spec/cassette/client_spec.rb[1:4:4:3] | passed | 0.00372 seconds |
|
131
|
+
./spec/cassette/client_spec.rb[1:4:4:4] | passed | 0.00503 seconds |
|
132
|
+
./spec/cassette/client_spec.rb[1:4:4:5] | passed | 0.00409 seconds |
|
133
|
+
./spec/cassette/client_spec.rb[1:4:4:6] | passed | 0.00483 seconds |
|
134
|
+
./spec/cassette/errors_spec.rb[1:1:1:1] | passed | 0.00023 seconds |
|
135
|
+
./spec/cassette/errors_spec.rb[1:2:1] | passed | 0.00086 seconds |
|
136
|
+
./spec/cassette/errors_spec.rb[1:2:2] | passed | 0.00133 seconds |
|
137
|
+
./spec/cassette/http/request_spec.rb[1:1:1] | passed | 0.00805 seconds |
|
138
|
+
./spec/cassette/http/request_spec.rb[1:1:2] | passed | 0.0289 seconds |
|
139
|
+
./spec/cassette/http/request_spec.rb[1:1:3:1] | passed | 0.00554 seconds |
|
140
|
+
./spec/cassette/http/ticket_response_spec.rb[1:1:1] | passed | 0.01718 seconds |
|
141
|
+
./spec/cassette/http/ticket_response_spec.rb[1:1:2:1] | passed | 0.01448 seconds |
|
142
|
+
./spec/cassette/http/ticket_response_spec.rb[1:2:1] | passed | 0.01558 seconds |
|
143
|
+
./spec/cassette/http/ticket_response_spec.rb[1:2:2:1] | passed | 0.01559 seconds |
|
144
|
+
./spec/cassette/http/ticket_response_spec.rb[1:3:1] | passed | 0.01666 seconds |
|
145
|
+
./spec/cassette/http/ticket_response_spec.rb[1:3:2:1] | passed | 0.01347 seconds |
|
146
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:1] | passed | 0.00262 seconds |
|
147
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:2:1] | passed | 0.00229 seconds |
|
148
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:1:3:1] | passed | 0.00295 seconds |
|
149
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:1] | passed | 0.00267 seconds |
|
150
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:2:1] | passed | 0.00308 seconds |
|
151
|
+
./spec/cassette/rubycas/routing_constraint_spec.rb[1:1:2:3:1] | passed | 0.00257 seconds |
|
152
|
+
./spec/cassette_spec.rb[1:1:1] | passed | 0.01135 seconds |
|
153
|
+
./spec/cassette_spec.rb[1:1:2:1] | passed | 0.00988 seconds |
|
154
|
+
./spec/cassette_spec.rb[1:1:3:1] | passed | 0.0101 seconds |
|
155
|
+
./spec/cassette_spec.rb[1:1:4:1] | passed | 0.01171 seconds |
|
156
|
+
./spec/cassette_spec.rb[1:1:5:1] | passed | 0.00886 seconds |
|
157
|
+
./spec/cassette_spec.rb[1:2:1] | passed | 0.00045 seconds |
|
158
|
+
./spec/cassette_spec.rb[1:2:2] | passed | 0.00175 seconds |
|
159
|
+
./spec/cassette_spec.rb[1:3:1] | passed | 0.0057 seconds |
|
160
|
+
./spec/cassette_spec.rb[1:4:1:1] | passed | 0.00063 seconds |
|
161
|
+
./spec/cassette_spec.rb[1:4:2:1] | passed | 0.00081 seconds |
|
162
|
+
./spec/cassette_spec.rb[1:4:2:2] | passed | 0.00037 seconds |
|
163
|
+
./spec/cassette_spec.rb[1:4:2:3] | passed | 0.0078 seconds |
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassette
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Hermida Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -272,6 +272,7 @@ files:
|
|
272
272
|
- spec/integration/cas/client_spec.rb
|
273
273
|
- spec/spec_helper.rb
|
274
274
|
- spec/support/controllers/controller_mock.rb
|
275
|
+
- spec/support/last_execution_examples_result.txt
|
275
276
|
homepage: http://github.com/locaweb/cassette
|
276
277
|
licenses: []
|
277
278
|
metadata: {}
|
@@ -290,7 +291,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
291
|
- !ruby/object:Gem::Version
|
291
292
|
version: '0'
|
292
293
|
requirements: []
|
293
|
-
rubygems_version: 3.
|
294
|
+
rubygems_version: 3.1.2
|
294
295
|
signing_key:
|
295
296
|
specification_version: 4
|
296
297
|
summary: Generates, validates and caches TGTs and STs
|
@@ -316,3 +317,4 @@ test_files:
|
|
316
317
|
- spec/integration/cas/client_spec.rb
|
317
318
|
- spec/spec_helper.rb
|
318
319
|
- spec/support/controllers/controller_mock.rb
|
320
|
+
- spec/support/last_execution_examples_result.txt
|