rspeckled 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2242b4977c2138c909d8092427a5cd4c5d156555f33d27cbea35ac1a0c5d66b
4
- data.tar.gz: bab6b43c24e59de2df055c0591860f6d225a71d83711b306ae25bcf64ca7407a
3
+ metadata.gz: 8fe74e754785c816902f45bb183ccb508cd4f083c1a4b7936aad5515ccbb7e07
4
+ data.tar.gz: 33272063f72e86e7c57e13c9d77630f3487b00c0298a70c089f20c80af520c55
5
5
  SHA512:
6
- metadata.gz: c923ead3e522635a882f5da44de06f7cf4f90ecfccab83599a85b56075af0867164bd7271909c4b2418ba9e1559841b974aa0c07ffb8fd4cfc017ff881e91a62
7
- data.tar.gz: d45aef40ab984bc8d0d596095197958511a50594038c460e309c19706e3227b58cf31eb6124e342e8b3e9f6477a01236a75f5a1ce930ffafb6172e04f148bc5a
6
+ metadata.gz: 9ee06b9533d6eb4e680cb4a5a5d3e7929f0787c2b0ef76872dd90924d04012599d1d670dd83375d64dc889782c249ec7da02f02fb8ef3e0724702e2bd5d53ca6
7
+ data.tar.gz: b6ae744f8db4e05cff9118c9dce7748536b449780c788b8a6081f320c6f781947e8fba0d731f03e461bd66e280511d6edb1c377aa4365d3fe9a3db290f385a83
checksums.yaml.gz.sig CHANGED
@@ -1 +1,2 @@
1
- ^.Pg7�^�@ ���R��CI�HPㆅG�*����dP�i0�e�#xl�B�<������!����}$Ax�xOˑ��v�@��eJ����?���Se�QK��X��1��l���@��C��r���_D)2X�b��CwG����~�F��Ǧ��'���3�;�+,���L?��ȥ�lB�;�a���$��c��������1vk���|��������B��2� 3r����-����`�̜�)�$§��0
1
+ Qp��w����O��%6��[�2����8M���VV<�1*$���g���Ofc_��=��ҫП͗������i��J(
2
+ �(���y�;t�*�Qu﹙@�0a���?;��&�` ɧ�����������s�?��N55=[j2�?�?�%.F���^��Q�A� ƨH@j�0�w�71�k����X�s~��^��1�agާ�?�� �1�|�)s��3�����{�:��� ��M�4���rd#݌^xL��[ c�4���w�WU�H�1�r�?!�TȊ�:ʻi�:zWY�7o�1�CX`���_�W�>�L�:�i�O=
data.tar.gz.sig CHANGED
Binary file
@@ -79,6 +79,7 @@ require 'rspeckled/plugins/hooks/dox'
79
79
  require 'rspeckled/plugins/hooks/elasticsearch'
80
80
  require 'rspeckled/plugins/hooks/factory_bot' if defined?(::FactoryBot)
81
81
  require 'rspeckled/plugins/hooks/foreign_keys'
82
+ require 'rspeckled/plugins/hooks/redis' if defined?(::Redis)
82
83
  require 'rspeckled/plugins/hooks/referehencible'
83
84
  require 'rspeckled/plugins/hooks/rspec_mocks'
84
85
  require 'rspeckled/plugins/hooks/selenium_webdriver'
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.configure do |config|
4
+ config.before(:each, :cache => lambda { |v| !!v }) do |example|
5
+ config.rspeckled_logger.debug("Before Each - Start - #{__FILE__}")
6
+
7
+ cache_metadata = example.metadata[:cache]
8
+
9
+ # rubocop:disable Metrics/BlockNesting
10
+ if cache_metadata[:reset]
11
+ client = ::Redis.new(:host => '127.0.0.1', :port => 6379, :db => 2) # rubocop:disable Style/IpAddresses
12
+ reset_patterns = Array(cache_metadata[:reset])
13
+
14
+ client.keys.each do |key|
15
+ next unless reset_patterns.any? { |regex| key.match?(regex) }
16
+
17
+ client.del(key)
18
+ end
19
+ end
20
+ # rubocop:enable Metrics/BlockNesting
21
+
22
+ config.rspeckled_logger.debug("Before Each - End - #{__FILE__}")
23
+ end
24
+ end
@@ -1,27 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ SIDEKIQ_BATCH_CALLBACK_PATTERN = /\Ab\-[a-zA-Z0-9_\-]{14}\z/
4
+ SIDEKIQ_BATCH_DATA_PATTERN = /\Abatches\z/
5
+ SIDEKIQ_BATCH_JOBS_PATTERN = /\Ab\-[a-zA-Z0-9_\-]{14}-jids\z/
6
+ SIDEKIQ_LIMITER_DATA_PATTERN = /\Almtr-c-/
7
+ SIDEKIQ_LIMITER_JOBS_PATTERN = /\Almtr-cfree-/
8
+
3
9
  RSpec.configure do |config|
4
10
  config.before(:each, :queue => lambda { |v| !!v }) do |example|
5
11
  config.rspeckled_logger.debug("Before Each - Start - #{__FILE__}")
6
12
 
13
+ # Changes Any Limiters Created to Be Unlimited
14
+ if defined?(::Sidekiq::Limiter)
15
+ allow(::Sidekiq::Limiter).to receive(:concurrent)
16
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
17
+ allow(::Sidekiq::Limiter).to receive(:bucket)
18
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
19
+ allow(::Sidekiq::Limiter).to receive(:window)
20
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
21
+ end
22
+
7
23
  # Clears out the jobs for tests using the fake testing
8
24
  ::Sidekiq::Worker.clear_all
9
25
  ::Sidekiq::Queues.clear_all
10
26
 
11
- # Sidekiq Enterprise Doesn't Like Having the Cache Cleared Between Runs
12
27
  # rubocop:disable Metrics/BlockNesting
13
- unless defined?(::Sidekiq::Enterprise)
14
- ::Sidekiq.redis do |client|
15
- connection = client.__send__(:instance_variable_get, :@redis) ||
16
- client.__send__(:instance_variable_get, :@client)
17
-
18
- connection.call([:flushdb])
19
- end
20
-
21
- ::Sidekiq.redis do |client|
22
- client.keys.each do |key|
23
- client.del(key)
24
- end
28
+ ::Sidekiq.redis do |client|
29
+ client.keys.each do |key|
30
+ next unless key.match?(SIDEKIQ_BATCH_CALLBACK_PATTERN) ||
31
+ key.match?(SIDEKIQ_BATCH_DATA_PATTERN) ||
32
+ key.match?(SIDEKIQ_BATCH_JOBS_PATTERN) ||
33
+ key.match?(SIDEKIQ_LIMITER_DATA_PATTERN) ||
34
+ key.match?(SIDEKIQ_LIMITER_JOBS_PATTERN)
35
+
36
+ client.del(key)
25
37
  end
26
38
  end
27
39
  # rubocop:enable Metrics/BlockNesting
@@ -118,6 +118,14 @@ RSpec.configure do |config|
118
118
  # Make all randomization deterministic based on the random run order seed
119
119
  Kernel.srand config.seed
120
120
 
121
+ ##############################################################################
122
+ # CUSTOM METADATA TYPES
123
+ ##############################################################################
124
+
125
+ config.define_derived_metadata(:file_path => %r{spec/(jobs|workers)}) do |metadata|
126
+ metadata[:queue] = true if metadata[:queue].nil?
127
+ end
128
+
121
129
  ##############################################################################
122
130
  # PERSISTENT FAILURES
123
131
  ##############################################################################
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rspeckled
4
- VERSION = '1.1.3'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspeckled
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -35,7 +35,7 @@ cert_chain:
35
35
  eUgMp+qKjyM1NGj/222soSUpWqOE16L23vv8sWIbMIADdR8dephQ6jMovYylUmE5
36
36
  KHp+JJQviSN0i4z8gVL2zloo+xZf791LiJH8Kcjpx43jhg0WdR4=
37
37
  -----END CERTIFICATE-----
38
- date: 2018-10-11 00:00:00.000000000 Z
38
+ date: 2018-11-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rspec
@@ -164,6 +164,7 @@ files:
164
164
  - lib/rspeckled/plugins/hooks/factory_bot.rb
165
165
  - lib/rspeckled/plugins/hooks/foreign_keys.rb
166
166
  - lib/rspeckled/plugins/hooks/garbage_collection.rb
167
+ - lib/rspeckled/plugins/hooks/redis.rb
167
168
  - lib/rspeckled/plugins/hooks/referehencible.rb
168
169
  - lib/rspeckled/plugins/hooks/request.rb
169
170
  - lib/rspeckled/plugins/hooks/rspec_mocks.rb
@@ -209,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
210
  version: '0'
210
211
  requirements: []
211
212
  rubyforge_project:
212
- rubygems_version: 2.7.7
213
+ rubygems_version: 2.7.6
213
214
  signing_key:
214
215
  specification_version: 4
215
216
  summary: Stop Copying and Pasting Your RSpec Configuration
metadata.gz.sig CHANGED
Binary file