Skip to content

Commit a7cd2e5

Browse files
authored
Merge pull request #113 from maxmind/horgh/plugins
Enable additional rubocop plugins
2 parents ff451de + 707c281 commit a7cd2e5

File tree

5 files changed

+34
-12
lines changed

5 files changed

+34
-12
lines changed

.rubocop.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
require: rubocop-performance
1+
plugins:
2+
- rubocop-minitest
3+
- rubocop-performance
4+
- rubocop-rake
5+
- rubocop-thread_safety
26

37
AllCops:
48
TargetRubyVersion: '3.2'
@@ -34,3 +38,7 @@ Style/TrailingCommaInHashLiteral:
3438

3539
Gemspec/DevelopmentDependencies:
3640
Enabled: false
41+
42+
# Sometimes it makes sense to have lots of assertions.
43+
Minitest/MultipleAssertions:
44+
Enabled: false

Rakefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ end
1111
RuboCop::RakeTask.new
1212

1313
desc 'Run tests and RuboCop'
14-
task default: :test
15-
task default: :rubocop
14+
task default: %i[test rubocop]

maxmind-db.gemspec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@ Gem::Specification.new do |s|
2424
s.add_development_dependency 'minitest'
2525
s.add_development_dependency 'rake'
2626
s.add_development_dependency 'rubocop'
27+
s.add_development_dependency 'rubocop-minitest'
2728
s.add_development_dependency 'rubocop-performance'
29+
s.add_development_dependency 'rubocop-rake'
30+
s.add_development_dependency 'rubocop-thread_safety'
2831
end

test/test_decoder.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ def test_pointer
158158

159159
def test_string
160160
values = validate_type_decoding('string', @@strings)
161+
161162
values.each do |s|
162163
assert_equal(Encoding::UTF_8, s.encoding)
163164
end

test/test_reader.rb

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def test_reader_inspect
3939
modes.each do |mode|
4040
filename = 'test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb'
4141
reader = MaxMind::DB.new(filename, mode: mode)
42+
4243
assert_instance_of(String, reader.inspect)
4344
end
4445
end
@@ -157,10 +158,11 @@ def test_decoder
157158
'test/data/test-data/MaxMind-DB-test-decoder.mmdb'
158159
)
159160
record = reader.get('::1.1.1.0')
161+
160162
assert_equal([1, 2, 3], record['array'])
161-
assert_equal(true, record['boolean'])
163+
assert(record['boolean'])
162164
assert_equal("\x00\x00\x00*".b, record['bytes'])
163-
assert_equal(42.123456, record['double'])
165+
assert_in_delta(42.123456, record['double'])
164166
assert_in_delta(1.1, record['float'])
165167
assert_equal(-268_435_456, record['int32'])
166168
assert_equal(
@@ -184,6 +186,7 @@ def test_metadata_pointers
184186
reader = MaxMind::DB.new(
185187
'test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb'
186188
)
189+
187190
assert_equal('Lots of pointers in metadata', reader.metadata.database_type)
188191
reader.close
189192
end
@@ -192,6 +195,7 @@ def test_no_ipv4_search_tree
192195
reader = MaxMind::DB.new(
193196
'test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb'
194197
)
198+
195199
assert_equal('::0/64', reader.get('1.1.1.1'))
196200
assert_equal('::0/64', reader.get('192.1.1.1'))
197201
reader.close
@@ -244,15 +248,15 @@ def test_ip_validation
244248
e = assert_raises ArgumentError do
245249
reader.get('not_ip')
246250
end
247-
assert(e.message.include?('invalid address'))
251+
assert_includes(e.message, 'invalid address')
248252
reader.close
249253
end
250254

251255
def test_missing_database
252256
e = assert_raises SystemCallError do
253257
MaxMind::DB.new('file-does-not-exist.mmdb')
254258
end
255-
assert(e.message.include?('No such file or directory'))
259+
assert_includes(e.message, 'No such file or directory')
256260
end
257261

258262
def test_nondatabase
@@ -269,14 +273,14 @@ def test_too_many_constructor_args
269273
e = assert_raises ArgumentError do
270274
MaxMind::DB.new('README.md', {}, 'blah')
271275
end
272-
assert(e.message.include?('wrong number of arguments'))
276+
assert_includes(e.message, 'wrong number of arguments')
273277
end
274278

275279
def test_no_constructor_args
276280
e = assert_raises ArgumentError do
277281
MaxMind::DB.new
278282
end
279-
assert(e.message.include?('wrong number of arguments'))
283+
assert_includes(e.message, 'wrong number of arguments')
280284
end
281285

282286
def test_too_many_get_args
@@ -286,7 +290,7 @@ def test_too_many_get_args
286290
e = assert_raises ArgumentError do
287291
reader.get('1.1.1.1', 'blah')
288292
end
289-
assert(e.message.include?('wrong number of arguments'))
293+
assert_includes(e.message, 'wrong number of arguments')
290294
reader.close
291295
end
292296

@@ -297,7 +301,7 @@ def test_no_get_args
297301
e = assert_raises ArgumentError do
298302
reader.get
299303
end
300-
assert(e.message.include?('wrong number of arguments'))
304+
assert_includes(e.message, 'wrong number of arguments')
301305
reader.close
302306
end
303307

@@ -308,7 +312,7 @@ def test_metadata_args
308312
e = assert_raises ArgumentError do
309313
reader.metadata('hi')
310314
end
311-
assert(e.message.include?('wrong number of arguments'))
315+
assert_includes(e.message, 'wrong number of arguments')
312316
reader.close
313317
end
314318

@@ -353,6 +357,7 @@ def test_closed_metadata
353357
'test/data/test-data/MaxMind-DB-test-decoder.mmdb'
354358
)
355359
reader.close
360+
356361
assert_equal(
357362
{ 'en' => 'MaxMind DB Decoder Test database - contains every MaxMind DB data type' },
358363
reader.metadata.description,
@@ -373,7 +378,9 @@ def test_threads
373378

374379
threads = []
375380
num_threads.times do |i|
381+
# rubocop:disable ThreadSafety/NewThread
376382
threads << Thread.new do
383+
# rubocop:enable ThreadSafety/NewThread
377384
num_lookups.times do |j|
378385
thread_lookups[i] << reader.get("65.115.240.#{j}")
379386
thread_lookups[i] << reader.get("2a02:2770:3::#{j}")
@@ -474,6 +481,7 @@ def check_metadata(reader, ip_version, record_size)
474481
def check_ipv4(reader, filename)
475482
6.times do |i|
476483
address = "1.1.1.#{2**i}"
484+
477485
assert_equal(
478486
{ 'ip' => address },
479487
reader.get(address),
@@ -492,6 +500,7 @@ def check_ipv4(reader, filename)
492500
}
493501
pairs.each do |key_address, value_address|
494502
data = { 'ip' => value_address }
503+
495504
assert_equal(
496505
data,
497506
reader.get(key_address),
@@ -511,6 +520,7 @@ def check_ipv6(reader, filename)
511520
subnets = [
512521
'::1:ffff:ffff', '::2:0:0', '::2:0:40', '::2:0:50', '::2:0:58',
513522
]
523+
514524
subnets.each do |address|
515525
assert_equal(
516526
{ 'ip' => address },
@@ -529,6 +539,7 @@ def check_ipv6(reader, filename)
529539
'::2:0:57' => '::2:0:50',
530540
'::2:0:59' => '::2:0:58',
531541
}
542+
532543
pairs.each do |key_address, value_address|
533544
assert_equal(
534545
{ 'ip' => value_address },

0 commit comments

Comments
 (0)