parallel_tests 3.7.3 → 3.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 042cf590688332180e07fcf6472cc9b88b740276df0511677cf77f7fe649fa2e
4
- data.tar.gz: cb4fd166b030e16574bf5d4790e5d1e0a3d57001d5474ab81c3d54613af976e2
3
+ metadata.gz: 3e3e1a135eda0167339276ebde8bbdc6c0620c83d08b36ca150cb19b2651bd18
4
+ data.tar.gz: 759e3dd86a759cb2217f82b2b92bdc0e83e11d6e1d17cb7226d37eaa6c7ebade
5
5
  SHA512:
6
- metadata.gz: 98e679733a74273ac77e71db47bc3af3f0f5a928dab351be9419644a0e7fe2bc004a81c929928ef0bd98ea2b8e5b63d1ab9fadcf75e22d098a65c5164343fe0b
7
- data.tar.gz: 2ce2dd070733cd0bb61d0cb610f886a5590d5e267cc43613ab7d08fc251d989ebd4a58ad2f0a9c88478499fe55ff4cb7386fabc2eba8ee7fb3440d4899594654
6
+ metadata.gz: 825d480ce774744fd4caa2fc5016be513384385ca88fc14b90552efef04041b45912246aa26557217d3f09e4810fc85ac4634381aadfcf0e0375ed4413c50557
7
+ data.tar.gz: f927123ce02a41fadd99ab7045aad0e00464488c81d2cf2567e47180909c36be2d220d3c5192fbb0820f4f6c89ac29fc33f23368be5cb702d1aa55f66f419da8
@@ -322,12 +322,12 @@ module ParallelTests
322
322
  def extract_file_paths(argv)
323
323
  dash_index = argv.rindex("--")
324
324
  file_args_at = (dash_index || -1) + 1
325
- [argv[file_args_at..-1], argv[0...(dash_index || 0)]]
325
+ [argv[file_args_at..], argv[0...(dash_index || 0)]]
326
326
  end
327
327
 
328
328
  def extract_test_options(argv)
329
329
  dash_index = argv.index("--") || -1
330
- argv[dash_index + 1..-1]
330
+ argv[dash_index + 1..]
331
331
  end
332
332
 
333
333
  def append_test_options(options, argv)
@@ -27,7 +27,7 @@ module ParallelTests
27
27
  example_tags = example.tags.map(&:name)
28
28
  example_tags = scenario_tags + example_tags
29
29
  next unless matches_tags?(example_tags)
30
- example.rows[1..-1].each do |row|
30
+ example.rows[1..].each do |row|
31
31
  test_line = row.source_line
32
32
  next if line_numbers.any? && !line_numbers.include?(test_line)
33
33
 
@@ -62,7 +62,7 @@ module ParallelTests
62
62
  plural = "s" if (word == group) && (number != 1)
63
63
  "#{number} #{word}#{plural}"
64
64
  end
65
- "#{sums[0]} (#{sums[1..-1].join(", ")})"
65
+ "#{sums[0]} (#{sums[1..].join(", ")})"
66
66
  end.compact.join("\n")
67
67
  end
68
68
 
@@ -38,7 +38,7 @@ module ParallelTests
38
38
  # add all files that should run in a multiple isolated processes to their own groups
39
39
  group_features_by_size(items_to_group(single_items), groups[0..(isolate_count - 1)])
40
40
  # group the non-isolated by size
41
- group_features_by_size(items_to_group(items), groups[isolate_count..-1])
41
+ group_features_by_size(items_to_group(items), groups[isolate_count..])
42
42
  else
43
43
  # add all files that should run in a single non-isolated process to first group
44
44
  single_items.each { |item, size| add_to_group(groups.first, item, size) }
@@ -43,14 +43,14 @@ module ParallelTests
43
43
 
44
44
  def read
45
45
  sync do
46
- contents = IO.read(file_path)
46
+ contents = File.read(file_path)
47
47
  return if contents.empty?
48
48
  @pids = JSON.parse(contents)
49
49
  end
50
50
  end
51
51
 
52
52
  def save
53
- sync { IO.write(file_path, pids.to_json) }
53
+ sync { File.write(file_path, pids.to_json) }
54
54
  end
55
55
 
56
56
  def sync(&block)
@@ -92,6 +92,32 @@ module ParallelTests
92
92
 
93
93
  [num_processes, pattern.to_s, options.to_s, pass_through.to_s]
94
94
  end
95
+
96
+ def schema_format_based_on_rails_version
97
+ if rails_7_or_greater?
98
+ ActiveRecord.schema_format
99
+ else
100
+ ActiveRecord::Base.schema_format
101
+ end
102
+ end
103
+
104
+ def schema_type_based_on_rails_version
105
+ if rails_61_or_greater? || schema_format_based_on_rails_version == :ruby
106
+ "schema"
107
+ else
108
+ "structure"
109
+ end
110
+ end
111
+
112
+ private
113
+
114
+ def rails_7_or_greater?
115
+ Gem::Version.new(Rails.version) >= Gem::Version.new('7.0')
116
+ end
117
+
118
+ def rails_61_or_greater?
119
+ Gem::Version.new(Rails.version) >= Gem::Version.new('6.1.0')
120
+ end
95
121
  end
96
122
  end
97
123
  end
@@ -121,14 +147,10 @@ namespace :parallel do
121
147
  desc "Update test databases by dumping and loading --> parallel:prepare[num_cpus]"
122
148
  task(:prepare, [:count]) do |_, args|
123
149
  ParallelTests::Tasks.check_for_pending_migrations
124
- if defined?(ActiveRecord::Base) && [:ruby, :sql].include?(ActiveRecord::Base.schema_format)
150
+
151
+ if defined?(ActiveRecord) && [:ruby, :sql].include?(ParallelTests::Tasks.schema_format_based_on_rails_version)
125
152
  # fast: dump once, load in parallel
126
- type =
127
- if Gem::Version.new(Rails.version) >= Gem::Version.new('6.1.0')
128
- "schema"
129
- else
130
- ActiveRecord::Base.schema_format == :ruby ? "schema" : "structure"
131
- end
153
+ type = ParallelTests::Tasks.schema_type_based_on_rails_version
132
154
 
133
155
  Rake::Task["db:#{type}:dump"].invoke
134
156
 
@@ -163,7 +185,8 @@ namespace :parallel do
163
185
  # just load the schema (good for integration server <-> no development db)
164
186
  desc "Load dumped schema for test databases via db:schema:load --> parallel:load_schema[num_cpus]"
165
187
  task :load_schema, :count do |_, args|
166
- command = "#{ParallelTests::Tasks.rake_bin} #{ParallelTests::Tasks.purge_before_load} " \
188
+ command =
189
+ "#{ParallelTests::Tasks.rake_bin} #{ParallelTests::Tasks.purge_before_load} " \
167
190
  "db:schema:load RAILS_ENV=#{ParallelTests::Tasks.rails_env} DISABLE_DATABASE_ENVIRONMENT_CHECK=1"
168
191
  ParallelTests::Tasks.run_in_parallel(ParallelTests::Tasks.suppress_schema_load_output(command), args)
169
192
  end
@@ -211,7 +234,8 @@ namespace :parallel do
211
234
  # Using the relative path to find the binary allow to run a specific version of it
212
235
  executable = File.join(File.dirname(__FILE__), '..', '..', 'bin', 'parallel_test')
213
236
 
214
- command = "#{ParallelTests.with_ruby_binary(Shellwords.escape(executable))} #{type} " \
237
+ command =
238
+ "#{ParallelTests.with_ruby_binary(Shellwords.escape(executable))} #{type} " \
215
239
  "--type #{test_framework} " \
216
240
  "-n #{count} " \
217
241
  "--pattern '#{pattern}' " \
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ParallelTests
3
- VERSION = '3.7.3'
3
+ VERSION = '3.8.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel_tests
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.3
4
+ version: 3.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-17 00:00:00.000000000 Z
11
+ date: 2022-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -68,8 +68,8 @@ licenses:
68
68
  - MIT
69
69
  metadata:
70
70
  bug_tracker_uri: https://github.com/grosser/parallel_tests/issues
71
- documentation_uri: https://github.com/grosser/parallel_tests/blob/v3.7.3/Readme.md
72
- source_code_uri: https://github.com/grosser/parallel_tests/tree/v3.7.3
71
+ documentation_uri: https://github.com/grosser/parallel_tests/blob/v3.8.0/Readme.md
72
+ source_code_uri: https://github.com/grosser/parallel_tests/tree/v3.8.0
73
73
  wiki_uri: https://github.com/grosser/parallel_tests/wiki
74
74
  post_install_message:
75
75
  rdoc_options: []
@@ -79,14 +79,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 2.5.0
82
+ version: 2.7.0
83
83
  required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  requirements:
85
85
  - - ">="
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 3.2.16
89
+ rubygems_version: 3.1.6
90
90
  signing_key:
91
91
  specification_version: 4
92
92
  summary: Run Test::Unit / RSpec / Cucumber / Spinach in parallel