mock_redis 0.14.1 → 0.15.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.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.overcommit.yml +1 -1
  4. data/.rubocop.yml +91 -0
  5. data/.simplecov +4 -0
  6. data/.travis.yml +14 -2
  7. data/CHANGELOG.md +4 -0
  8. data/Gemfile +4 -2
  9. data/README.md +1 -0
  10. data/Rakefile +2 -2
  11. data/lib/mock_redis.rb +25 -26
  12. data/lib/mock_redis/assertions.rb +0 -1
  13. data/lib/mock_redis/database.rb +35 -28
  14. data/lib/mock_redis/expire_wrapper.rb +1 -1
  15. data/lib/mock_redis/future.rb +1 -1
  16. data/lib/mock_redis/hash_methods.rb +18 -17
  17. data/lib/mock_redis/indifferent_hash.rb +4 -0
  18. data/lib/mock_redis/info_method.rb +109 -108
  19. data/lib/mock_redis/list_methods.rb +17 -16
  20. data/lib/mock_redis/multi_db_wrapper.rb +5 -4
  21. data/lib/mock_redis/pipelined_wrapper.rb +3 -3
  22. data/lib/mock_redis/set_methods.rb +10 -9
  23. data/lib/mock_redis/sort_method.rb +11 -12
  24. data/lib/mock_redis/string_methods.rb +26 -29
  25. data/lib/mock_redis/transaction_wrapper.rb +7 -8
  26. data/lib/mock_redis/utility_methods.rb +9 -12
  27. data/lib/mock_redis/version.rb +1 -1
  28. data/lib/mock_redis/zset.rb +22 -23
  29. data/lib/mock_redis/zset_methods.rb +25 -25
  30. data/spec/cloning_spec.rb +17 -18
  31. data/spec/commands/append_spec.rb +4 -4
  32. data/spec/commands/auth_spec.rb +1 -1
  33. data/spec/commands/bgrewriteaof_spec.rb +2 -2
  34. data/spec/commands/bgsave_spec.rb +2 -2
  35. data/spec/commands/bitcount_spec.rb +3 -3
  36. data/spec/commands/blpop_spec.rb +10 -10
  37. data/spec/commands/brpop_spec.rb +10 -10
  38. data/spec/commands/brpoplpush_spec.rb +9 -9
  39. data/spec/commands/connected_spec.rb +2 -2
  40. data/spec/commands/dbsize_spec.rb +3 -3
  41. data/spec/commands/decr_spec.rb +7 -7
  42. data/spec/commands/decrby_spec.rb +7 -7
  43. data/spec/commands/del_spec.rb +4 -4
  44. data/spec/commands/disconnect_spec.rb +2 -2
  45. data/spec/commands/echo_spec.rb +4 -4
  46. data/spec/commands/exists_spec.rb +3 -3
  47. data/spec/commands/expire_spec.rb +13 -13
  48. data/spec/commands/expireat_spec.rb +6 -7
  49. data/spec/commands/flushall_spec.rb +5 -5
  50. data/spec/commands/flushdb_spec.rb +5 -5
  51. data/spec/commands/future_spec.rb +2 -2
  52. data/spec/commands/get_spec.rb +7 -7
  53. data/spec/commands/getbit_spec.rb +6 -6
  54. data/spec/commands/getrange_spec.rb +9 -9
  55. data/spec/commands/getset_spec.rb +7 -7
  56. data/spec/commands/hash_operator_spec.rb +5 -5
  57. data/spec/commands/hdel_spec.rb +12 -12
  58. data/spec/commands/hexists_spec.rb +7 -7
  59. data/spec/commands/hget_spec.rb +7 -7
  60. data/spec/commands/hgetall_spec.rb +6 -6
  61. data/spec/commands/hincrby_spec.rb +14 -14
  62. data/spec/commands/hincrbyfloat_spec.rb +14 -14
  63. data/spec/commands/hkeys_spec.rb +5 -5
  64. data/spec/commands/hlen_spec.rb +5 -5
  65. data/spec/commands/hmget_spec.rb +8 -8
  66. data/spec/commands/hmset_spec.rb +10 -10
  67. data/spec/commands/hset_spec.rb +11 -11
  68. data/spec/commands/hsetnx_spec.rb +14 -14
  69. data/spec/commands/hvals_spec.rb +5 -5
  70. data/spec/commands/incr_spec.rb +7 -7
  71. data/spec/commands/incrby_spec.rb +11 -11
  72. data/spec/commands/incrbyfloat_spec.rb +11 -11
  73. data/spec/commands/info_spec.rb +30 -30
  74. data/spec/commands/keys_spec.rb +42 -43
  75. data/spec/commands/lastsave_spec.rb +2 -2
  76. data/spec/commands/lindex_spec.rb +15 -15
  77. data/spec/commands/linsert_spec.rb +13 -13
  78. data/spec/commands/llen_spec.rb +4 -4
  79. data/spec/commands/lpop_spec.rb +6 -6
  80. data/spec/commands/lpush_spec.rb +16 -16
  81. data/spec/commands/lpushx_spec.rb +13 -13
  82. data/spec/commands/lrange_spec.rb +12 -12
  83. data/spec/commands/lrem_spec.rb +15 -15
  84. data/spec/commands/lset_spec.rb +12 -12
  85. data/spec/commands/ltrim_spec.rb +9 -9
  86. data/spec/commands/mapped_hmget_spec.rb +8 -8
  87. data/spec/commands/mapped_hmset_spec.rb +12 -12
  88. data/spec/commands/mapped_mget_spec.rb +4 -4
  89. data/spec/commands/mapped_mset_spec.rb +1 -1
  90. data/spec/commands/mget_spec.rb +11 -11
  91. data/spec/commands/move_spec.rb +29 -29
  92. data/spec/commands/mset_spec.rb +4 -4
  93. data/spec/commands/msetnx_spec.rb +10 -10
  94. data/spec/commands/persist_spec.rb +9 -10
  95. data/spec/commands/pexpire_spec.rb +12 -13
  96. data/spec/commands/pexpireat_spec.rb +6 -6
  97. data/spec/commands/ping_spec.rb +1 -1
  98. data/spec/commands/pipelined_spec.rb +5 -5
  99. data/spec/commands/pttl_spec.rb +5 -5
  100. data/spec/commands/randomkey_spec.rb +3 -3
  101. data/spec/commands/rename_spec.rb +9 -9
  102. data/spec/commands/renamenx_spec.rb +10 -10
  103. data/spec/commands/rpop_spec.rb +6 -6
  104. data/spec/commands/rpoplpush_spec.rb +7 -7
  105. data/spec/commands/rpush_spec.rb +16 -16
  106. data/spec/commands/rpushx_spec.rb +13 -13
  107. data/spec/commands/sadd_spec.rb +8 -9
  108. data/spec/commands/scan_spec.rb +6 -7
  109. data/spec/commands/scard_spec.rb +3 -3
  110. data/spec/commands/sdiff_spec.rb +10 -10
  111. data/spec/commands/sdiffstore_spec.rb +10 -10
  112. data/spec/commands/select_spec.rb +7 -7
  113. data/spec/commands/setbit_spec.rb +13 -13
  114. data/spec/commands/setex_spec.rb +4 -4
  115. data/spec/commands/setnx_spec.rb +4 -4
  116. data/spec/commands/setrange_spec.rb +12 -12
  117. data/spec/commands/sinter_spec.rb +8 -10
  118. data/spec/commands/sinterstore_spec.rb +9 -9
  119. data/spec/commands/sismember_spec.rb +5 -5
  120. data/spec/commands/smembers_spec.rb +5 -5
  121. data/spec/commands/smove_spec.rb +7 -7
  122. data/spec/commands/sort_list_spec.rb +3 -3
  123. data/spec/commands/sort_set_spec.rb +3 -3
  124. data/spec/commands/sort_zset_spec.rb +3 -3
  125. data/spec/commands/spop_spec.rb +4 -4
  126. data/spec/commands/srandmember_spec.rb +8 -8
  127. data/spec/commands/srem_spec.rb +9 -9
  128. data/spec/commands/strlen_spec.rb +4 -4
  129. data/spec/commands/sunion_spec.rb +7 -9
  130. data/spec/commands/sunionstore_spec.rb +9 -9
  131. data/spec/commands/ttl_spec.rb +5 -5
  132. data/spec/commands/type_spec.rb +1 -1
  133. data/spec/commands/zadd_spec.rb +10 -10
  134. data/spec/commands/zcard_spec.rb +4 -4
  135. data/spec/commands/zcount_spec.rb +14 -14
  136. data/spec/commands/zincrby_spec.rb +6 -6
  137. data/spec/commands/zinterstore_spec.rb +17 -17
  138. data/spec/commands/zrange_spec.rb +12 -12
  139. data/spec/commands/zrangebyscore_spec.rb +26 -26
  140. data/spec/commands/zrank_spec.rb +4 -4
  141. data/spec/commands/zrem_spec.rb +9 -9
  142. data/spec/commands/zremrangebyrank_spec.rb +5 -5
  143. data/spec/commands/zremrangebyscore_spec.rb +9 -7
  144. data/spec/commands/zrevrange_spec.rb +10 -10
  145. data/spec/commands/zrevrangebyscore_spec.rb +14 -14
  146. data/spec/commands/zrevrank_spec.rb +4 -4
  147. data/spec/commands/zscore_spec.rb +5 -5
  148. data/spec/commands/zunionstore_spec.rb +18 -18
  149. data/spec/mock_redis_spec.rb +11 -1
  150. data/spec/spec_helper.rb +13 -4
  151. data/spec/support/redis_multiplexer.rb +39 -31
  152. data/spec/support/shared_examples/only_operates_on_hashes.rb +2 -2
  153. data/spec/support/shared_examples/only_operates_on_lists.rb +2 -2
  154. data/spec/support/shared_examples/only_operates_on_sets.rb +2 -2
  155. data/spec/support/shared_examples/only_operates_on_strings.rb +3 -3
  156. data/spec/support/shared_examples/only_operates_on_zsets.rb +12 -12
  157. data/spec/support/shared_examples/sorts_enumerables.rb +12 -12
  158. data/spec/transactions_spec.rb +18 -18
  159. metadata +5 -3
@@ -1,5 +1,5 @@
1
- shared_examples_for "a hash-only command" do
2
- it "raises an error for non-hash values" do |example|
1
+ shared_examples_for 'a hash-only command' do
2
+ it 'raises an error for non-hash values' do |example|
3
3
  key = 'mock-redis-test:hash-only'
4
4
 
5
5
  method = method_from_description(example)
@@ -1,5 +1,5 @@
1
- shared_examples_for "a list-only command" do
2
- it "raises an error for non-list values" do |example|
1
+ shared_examples_for 'a list-only command' do
2
+ it 'raises an error for non-list values' do |example|
3
3
  key = 'mock-redis-test:list-only'
4
4
 
5
5
  method = method_from_description(example)
@@ -1,5 +1,5 @@
1
- shared_examples_for "a set-only command" do
2
- it "raises an error for non-set values" do |example|
1
+ shared_examples_for 'a set-only command' do
2
+ it 'raises an error for non-set values' do |example|
3
3
  key = 'mock-redis-test:set-only'
4
4
 
5
5
  method = method_from_description(example)
@@ -1,6 +1,6 @@
1
- shared_examples_for "a string-only command" do
2
- it "raises an error for non-string values" do |example|
3
- key = "mock-redis-test:string-only-command"
1
+ shared_examples_for 'a string-only command' do
2
+ it 'raises an error for non-string values' do |example|
3
+ key = 'mock-redis-test:string-only-command'
4
4
 
5
5
  method = method_from_description(example)
6
6
  args = args_for_method(method).unshift(key)
@@ -1,5 +1,5 @@
1
- shared_examples_for "a zset-only command" do
2
- it "raises an error for non-zset values" do |example|
1
+ shared_examples_for 'a zset-only command' do
2
+ it 'raises an error for non-zset values' do |example|
3
3
  key = 'mock-redis-test:zset-only'
4
4
 
5
5
  method = method_from_description(example)
@@ -12,17 +12,17 @@ shared_examples_for "a zset-only command" do
12
12
  end
13
13
  end
14
14
 
15
- shared_examples_for "arg 1 is a score" do
15
+ shared_examples_for 'arg 1 is a score' do
16
16
  before { @_arg_index = 1 }
17
- it_should_behave_like "arg N is a score"
17
+ it_should_behave_like 'arg N is a score'
18
18
  end
19
19
 
20
- shared_examples_for "arg 2 is a score" do
20
+ shared_examples_for 'arg 2 is a score' do
21
21
  before { @_arg_index = 2 }
22
- it_should_behave_like "arg N is a score"
22
+ it_should_behave_like 'arg N is a score'
23
23
  end
24
24
 
25
- shared_examples_for "arg N is a score" do
25
+ shared_examples_for 'arg N is a score' do
26
26
  before do |example|
27
27
  key = 'mock-redis-test:zset-only'
28
28
 
@@ -30,27 +30,27 @@ shared_examples_for "arg N is a score" do
30
30
  @args = args_for_method(@method).unshift(key)
31
31
  end
32
32
 
33
- it "is okay with positive ints" do
33
+ it 'is okay with positive ints' do
34
34
  @args[@_arg_index] = 1
35
35
  lambda { @redises.send(@method, *@args) }.should_not raise_error
36
36
  end
37
37
 
38
- it "is okay with negative ints" do
38
+ it 'is okay with negative ints' do
39
39
  @args[@_arg_index] = -1
40
40
  lambda { @redises.send(@method, *@args) }.should_not raise_error
41
41
  end
42
42
 
43
- it "is okay with positive floats" do
43
+ it 'is okay with positive floats' do
44
44
  @args[@_arg_index] = 1.5
45
45
  lambda { @redises.send(@method, *@args) }.should_not raise_error
46
46
  end
47
47
 
48
- it "is okay with negative floats" do
48
+ it 'is okay with negative floats' do
49
49
  @args[@_arg_index] = -1.5
50
50
  lambda { @redises.send(@method, *@args) }.should_not raise_error
51
51
  end
52
52
 
53
- it "rejects non-numbers" do
53
+ it 'rejects non-numbers' do
54
54
  @args[@_arg_index] = 'foo'
55
55
  lambda { @redises.send(@method, *@args) }.should raise_error(RuntimeError)
56
56
  end
@@ -1,43 +1,43 @@
1
- shared_examples_for "a sortable" do
1
+ shared_examples_for 'a sortable' do
2
2
  it 'returns empty array on nil' do
3
3
  @redises.sort(nil).should == []
4
4
  end
5
5
 
6
6
  context 'ordering' do
7
7
  it 'orders ascending by default' do
8
- @redises.sort(@key).should == ['1', '2']
8
+ @redises.sort(@key).should == %w[1 2]
9
9
  end
10
10
 
11
11
  it 'orders by descending when specified' do
12
- @redises.sort(@key, :order => "DESC").should == ['2', '1']
12
+ @redises.sort(@key, :order => 'DESC').should == %w[2 1]
13
13
  end
14
14
  end
15
15
 
16
16
  context 'projections' do
17
17
  it 'projects element when :get is "#"' do
18
- @redises.sort(@key, :get => '#').should == ['1', '2']
18
+ @redises.sort(@key, :get => '#').should == %w[1 2]
19
19
  end
20
20
 
21
21
  it 'projects through a key pattern' do
22
- @redises.sort(@key, :get => 'mock-redis-test:values_*').should == ['a', 'b']
22
+ @redises.sort(@key, :get => 'mock-redis-test:values_*').should == %w[a b]
23
23
  end
24
24
 
25
25
  it 'projects through a key pattern and reflects element' do
26
- @redises.sort(@key, :get => ['#', 'mock-redis-test:values_*']).should == [['1', 'a'], ['2', 'b']]
26
+ @redises.sort(@key, :get => ['#', 'mock-redis-test:values_*']).should == [%w[1 a], %w[2 b]]
27
27
  end
28
28
 
29
29
  it 'projects through a hash key pattern' do
30
- @redises.sort(@key, :get => 'mock-redis-test:hash_*->key').should == ['x', 'y']
30
+ @redises.sort(@key, :get => 'mock-redis-test:hash_*->key').should == %w[x y]
31
31
  end
32
32
  end
33
33
 
34
34
  context 'weights' do
35
35
  it 'weights by projecting through a key pattern' do
36
- @redises.sort(@key, :by => "mock-redis-test:weight_*").should == ['2', '1']
36
+ @redises.sort(@key, :by => 'mock-redis-test:weight_*').should == %w[2 1]
37
37
  end
38
38
 
39
39
  it 'weights by projecting through a key pattern and a specific order' do
40
- @redises.sort(@key, :order => "DESC", :by => "mock-redis-test:weight_*").should == ['1', '2']
40
+ @redises.sort(@key, :order => 'DESC', :by => 'mock-redis-test:weight_*').should == %w[1 2]
41
41
  end
42
42
  end
43
43
 
@@ -49,8 +49,8 @@ shared_examples_for "a sortable" do
49
49
 
50
50
  context 'store' do
51
51
  it 'stores into another key' do
52
- @redises.sort(@key, :store => "mock-redis-test:some_bucket").should == 2
53
- @redises.lrange("mock-redis-test:some_bucket", 0, -1).should == ['1', '2']
52
+ @redises.sort(@key, :store => 'mock-redis-test:some_bucket').should == 2
53
+ @redises.lrange('mock-redis-test:some_bucket', 0, -1).should == %w[1 2]
54
54
  end
55
55
  end
56
- end
56
+ end
@@ -5,21 +5,21 @@ describe 'transactions (multi/exec/discard)' do
5
5
  @redises.discard rescue nil
6
6
  end
7
7
 
8
- context "#multi" do
8
+ context '#multi' do
9
9
  it "responds with 'OK'" do
10
10
  @redises.multi.should == 'OK'
11
11
  end
12
12
 
13
- it "forbids nesting" do
13
+ it 'forbids nesting' do
14
14
  @redises.multi
15
15
  lambda do
16
16
  @redises.multi
17
17
  end.should raise_error(RuntimeError)
18
18
  end
19
19
 
20
- it "cleanup the state of tansaction wrapper if an exception occurs while a transaction is being processed" do
20
+ it 'cleans state of tansaction wrapper if exception occurs during transaction' do
21
21
  lambda do
22
- @redises.mock.multi do |r|
22
+ @redises.mock.multi do |_r|
23
23
  raise "i'm a command that fails"
24
24
  end
25
25
  end.should raise_error(RuntimeError)
@@ -34,18 +34,18 @@ describe 'transactions (multi/exec/discard)' do
34
34
  end
35
35
  end
36
36
 
37
- context "#blocks" do
38
- it "implicitly runs exec when finished" do
39
- @redises.set("counter", 5)
37
+ context '#blocks' do
38
+ it 'implicitly runs exec when finished' do
39
+ @redises.set('counter', 5)
40
40
  @redises.multi do |r|
41
- r.set("test", 1)
42
- r.incr("counter")
41
+ r.set('test', 1)
42
+ r.incr('counter')
43
43
  end
44
- @redises.get("counter").should == "6"
45
- @redises.get("test").should == "1"
44
+ @redises.get('counter').should == '6'
45
+ @redises.get('test').should == '1'
46
46
  end
47
47
 
48
- it "forbids nesting via blocks" do
48
+ it 'forbids nesting via blocks' do
49
49
  # Have to use only the mock here. redis-rb has a bug in it where
50
50
  # nested #multi calls raise NoMethodError because it gets a nil
51
51
  # where it's not expecting one.
@@ -57,7 +57,7 @@ describe 'transactions (multi/exec/discard)' do
57
57
  end
58
58
  end
59
59
 
60
- context "#discard" do
60
+ context '#discard' do
61
61
  it "responds with 'OK' after #multi" do
62
62
  @redises.multi
63
63
  @redises.discard.should == 'OK'
@@ -70,15 +70,15 @@ describe 'transactions (multi/exec/discard)' do
70
70
  end
71
71
  end
72
72
 
73
- context "#exec" do
74
- it "raises an error outside of #multi" do
73
+ context '#exec' do
74
+ it 'raises an error outside of #multi' do
75
75
  lambda do
76
76
  @redises.exec.should raise_error
77
77
  end
78
78
  end
79
79
  end
80
80
 
81
- context "saving up commands for later" do
81
+ context 'saving up commands for later' do
82
82
  before(:each) do
83
83
  @redises.multi
84
84
  @string = 'mock-redis-test:string'
@@ -110,13 +110,13 @@ describe 'transactions (multi/exec/discard)' do
110
110
  end
111
111
  end
112
112
 
113
- context "saving commands with multi block" do
113
+ context 'saving commands with multi block' do
114
114
  before(:each) do
115
115
  @string = 'mock-redis-test:string'
116
116
  @list = 'mock-redis-test:list'
117
117
  end
118
118
 
119
- it "commands return response after exec is called" do
119
+ it 'commands return response after exec is called' do
120
120
  set_response = nil
121
121
  lpush_response = nil
122
122
  second_lpush_response = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mock_redis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brigade Engineering
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-04 00:00:00.000000000 Z
12
+ date: 2015-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -79,6 +79,8 @@ files:
79
79
  - ".mailmap"
80
80
  - ".overcommit.yml"
81
81
  - ".rspec"
82
+ - ".rubocop.yml"
83
+ - ".simplecov"
82
84
  - ".travis.yml"
83
85
  - CHANGELOG.md
84
86
  - Gemfile
@@ -263,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
265
  version: '0'
264
266
  requirements: []
265
267
  rubyforge_project:
266
- rubygems_version: 2.4.5
268
+ rubygems_version: 2.4.8
267
269
  signing_key:
268
270
  specification_version: 4
269
271
  summary: Redis mock that just lives in memory; useful for testing.