cassette 1.2.6 → 1.6.0
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 +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
|