kettle-test 2.0.12 → 2.0.14

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: e3d99451fb3d703929eb67b660dfaf82a7cb6c4d6b46127397da966fd1e5a608
4
- data.tar.gz: d94ac78aba2d9259e0294158677ee8c9f6ecf559f685d670e981faa82ac02458
3
+ metadata.gz: b2ba37a906a95717cb1de6c2c49fa9e020bd5bb8e94ad3ac148f7e1df197425b
4
+ data.tar.gz: 8e5d684e1199e371259519818d62fa1dbb60a3686a716ca97d3ff36225306ec7
5
5
  SHA512:
6
- metadata.gz: 60caf01ff05b30ddcd873e8474f99454c2f5bb30c993aa4afe962374bd0a5f62ae1047014ab089fbf4519c844e84b80e383bfc1952009d44468e1a7bcaab5f85
7
- data.tar.gz: d519b019d4e66a33e273ae3922baa0f26bc8a9b09116fe7de892dc103894d2524a8ee186d03db10c98d6457b172c0149878cad0715a555ea4d5234df68861d24
6
+ metadata.gz: 5a7c12783a1fa25419b5859109e0f2de949b527f74598c47584720edfd60642ed8b21be369af935bd8fadd02428c70a508de925197f58afa15a90bdcce71caa1
7
+ data.tar.gz: dfdbed0e4a42c23afa444668a5fc948dcb7974cba40aec798025ec76fdce14a4386d55b034bc6a7e3c3ebb9e1285e4133b1b5082c99d5ba1846e0aecc4f54097
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,31 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.0.14] - 2026-07-23
34
+
35
+ - TAG: [v2.0.14][2.0.14t]
36
+ - COVERAGE: 96.84% -- 92/95 lines in 17 files
37
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
38
+ - 90.00% documented
39
+
40
+ ### Fixed
41
+
42
+ - Final run highlights now deduplicate identical failed-example lines emitted
43
+ more than once by runner output streams.
44
+
45
+ ## [2.0.13] - 2026-07-22
46
+
47
+ - TAG: [v2.0.13][2.0.13t]
48
+ - COVERAGE: 96.84% -- 92/95 lines in 17 files
49
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
50
+ - 90.00% documented
51
+
52
+ ### Fixed
53
+
54
+ - `kettle-test` now sets turbo_tests2 worker output to `quiet` by default when
55
+ kettle-test silent mode is enabled, while preserving an explicit
56
+ `TURBO_TESTS2_WORKER_OUTPUT` override.
57
+
33
58
  ## [2.0.12] - 2026-07-21
34
59
 
35
60
  - TAG: [v2.0.12][2.0.12t]
@@ -436,7 +461,11 @@ Please file a bug if you notice a violation of semantic versioning.
436
461
  - silent_stream
437
462
  - timecop-rspec
438
463
 
439
- [Unreleased]: https://github.com/kettle-dev/kettle-test/compare/v2.0.12...HEAD
464
+ [Unreleased]: https://github.com/kettle-dev/kettle-test/compare/v2.0.14...HEAD
465
+ [2.0.14]: https://github.com/kettle-dev/kettle-test/compare/v2.0.13...v2.0.14
466
+ [2.0.14t]: https://github.com/kettle-dev/kettle-test/releases/tag/v2.0.14
467
+ [2.0.13]: https://github.com/kettle-dev/kettle-test/compare/v2.0.12...v2.0.13
468
+ [2.0.13t]: https://github.com/kettle-dev/kettle-test/releases/tag/v2.0.13
440
469
  [2.0.12]: https://github.com/kettle-dev/kettle-test/compare/v2.0.11...v2.0.12
441
470
  [2.0.12t]: https://github.com/kettle-dev/kettle-test/releases/tag/v2.0.12
442
471
  [2.0.11]: https://github.com/kettle-dev/kettle-test/compare/v2.0.10...v2.0.11
data/LICENSE.md CHANGED
@@ -3,8 +3,8 @@
3
3
  This project is made available under the following licenses.
4
4
  Choose the option that best fits your use case:
5
5
 
6
- - [AGPL-3.0-only](AGPL-3.0-only.md)
7
- - [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md)
6
+ - [AGPL-3.0-only](https://github.com/kettle-dev/kettle-test/blob/main/AGPL-3.0-only.md)
7
+ - [PolyForm-Small-Business-1.0.0](https://github.com/kettle-dev/kettle-test/blob/main/PolyForm-Small-Business-1.0.0.md)
8
8
 
9
9
  If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
10
10
 
data/README.md CHANGED
@@ -61,7 +61,7 @@ and concordant releases of JRuby, and TruffleRuby.
61
61
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
62
62
  | Works with MRI Ruby 2 | [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
63
63
  | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
64
- | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
64
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
65
65
  | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
66
66
  | Compliance | [![License: AGPL-3.0-only OR PolyForm-Small-Business-1.0.0][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
67
67
  | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
@@ -196,7 +196,11 @@ Below are the environment variables recognized by kettle-test. Unless otherwise
196
196
  - Default: unset/empty → treated as false.
197
197
  - KETTLE_TEST_SILENT (String: "true"/"false")
198
198
  - Controls silencing of STDOUT/STDERR during specs (unless :check_output is used or DEBUG is true).
199
+ - When true with the default turbo_tests2 runner, sets TURBO_TESTS2_WORKER_OUTPUT=quiet unless already set.
199
200
  - Default: value of CI (true on CI, false locally unless CI=true).
201
+ - TURBO_TESTS2_WORKER_OUTPUT (String)
202
+ - Explicit turbo_tests2 worker output mode. When set, kettle-test preserves it.
203
+ - Default: quiet when KETTLE_TEST_SILENT is true; otherwise turbo_tests2's own default.
200
204
  - KETTLE_TEST_VERBOSE (String: "true"/"false")
201
205
  - Reserved for future verbose logging toggles. Default: "false".
202
206
  - KETTLE_TEST_FULL_BACKTRACE (String: "true"/"false")
@@ -360,7 +364,7 @@ end
360
364
 
361
365
  ### Silencing output and checking output
362
366
 
363
- STDOUT/STDERR are silenced by default when KETTLE_TEST_SILENT is true (defaults to true on CI). To assert output from the code under test, tag examples/groups with :check_output, or run with DEBUG=true to disable silencing globally.
367
+ STDOUT/STDERR are silenced by default when KETTLE_TEST_SILENT is true (defaults to true on CI). With the default turbo_tests2 runner, worker output summaries are also quiet by default in silent mode. To assert output from the code under test, tag examples/groups with :check_output, or run with DEBUG=true to disable silencing globally.
364
368
 
365
369
  ```ruby
366
370
  RSpec.describe("output", :check_output) do
@@ -580,7 +584,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases.
580
584
 
581
585
  ## 📄 License
582
586
 
583
- The gem is available under the following licenses: [AGPL-3.0-only](AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md).
587
+ The gem is available under the following licenses: [AGPL-3.0-only](https://github.com/kettle-dev/kettle-test/blob/main/AGPL-3.0-only.md), [PolyForm-Small-Business-1.0.0](https://github.com/kettle-dev/kettle-test/blob/main/PolyForm-Small-Business-1.0.0.md).
584
588
  See [LICENSE.md][📄license] for details.
585
589
 
586
590
  If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
@@ -697,7 +701,7 @@ Thanks for RTFM. ☺️
697
701
  [📜src-gl]: https://gitlab.com/kettle-dev/kettle-test
698
702
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
699
703
  [📜src-cb]: https://codeberg.org/kettle-dev/kettle-test
700
- [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
704
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
701
705
  [📜src-gh]: https://github.com/kettle-dev/kettle-test
702
706
  [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
703
707
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
data/exe/kettle-test.sh CHANGED
@@ -23,6 +23,7 @@
23
23
  # KETTLE_TEST_TURBO_PROCESSES - passed to turbo_tests2 -n
24
24
  # KETTLE_TEST_TURBO_RUNTIME_LOG - passed to turbo_tests2 --runtime-log
25
25
  # KETTLE_TEST_TURBO_NICE - set true to pass turbo_tests2 --nice
26
+ # TURBO_TESTS2_WORKER_OUTPUT - passed through when explicitly set
26
27
  #
27
28
  # Examples:
28
29
  # bundle exec kettle-test
@@ -55,6 +56,7 @@ Environment:
55
56
  KETTLE_TEST_TURBO_PROCESSES Passed to turbo_tests2 -n
56
57
  KETTLE_TEST_TURBO_RUNTIME_LOG Passed to turbo_tests2 --runtime-log
57
58
  KETTLE_TEST_TURBO_NICE Set true to pass turbo_tests2 --nice
59
+ TURBO_TESTS2_WORKER_OUTPUT Passed through when explicitly set
58
60
  K_SOUP_COV_DO Set true to enable coverage
59
61
  K_SOUP_COV_MIN_HARD Set true to hard-fail on coverage thresholds
60
62
 
@@ -115,6 +117,23 @@ TIMESTAMP="$(date -u +%Y%m%d-%H%M%S)"
115
117
  RUNNER="${KETTLE_TEST_RUNNER:-turbo_tests2}"
116
118
  LOG_FILE="$LOG_DIR/${RUNNER}-${TIMESTAMP}-$$.log"
117
119
 
120
+ silent_enabled() {
121
+ local configured_silent="${KETTLE_TEST_SILENT:-}"
122
+
123
+ if [ -n "$configured_silent" ]; then
124
+ case "$configured_silent" in
125
+ true|TRUE|True)
126
+ return 0
127
+ ;;
128
+ *)
129
+ return 1
130
+ ;;
131
+ esac
132
+ fi
133
+
134
+ [ "${CI:-}" = "true" ] || [ "${CI:-}" = "TRUE" ]
135
+ }
136
+
118
137
  run_kettle_soup_cover_hook() {
119
138
  local hook="$1"
120
139
 
@@ -135,6 +154,9 @@ cd "$PROJECT_ROOT"
135
154
  case "$RUNNER" in
136
155
  turbo|turbo_tests2)
137
156
  export PARALLEL_TEST_FIRST_IS_1="${PARALLEL_TEST_FIRST_IS_1:-true}"
157
+ if [ -z "${TURBO_TESTS2_WORKER_OUTPUT:-}" ] && silent_enabled; then
158
+ export TURBO_TESTS2_WORKER_OUTPUT="quiet"
159
+ fi
138
160
  run_kettle_soup_cover_hook "clear_turbo_tests_coverage_dir!"
139
161
  command=(bundle exec turbo_tests2)
140
162
  if [ -n "${KETTLE_TEST_TURBO_PROCESSES:-}" ]; then
@@ -183,7 +205,7 @@ finished_line=$(clean_log | grep -E '^Finished in' | tail -1 || true)
183
205
  seed_line=$(clean_log | grep -E '^Randomized with seed' | tail -1 || true)
184
206
 
185
207
  # Failed examples block (rspec ./path:N # description)
186
- failed_block=$(clean_log | grep -E '^rspec \./.*#' || true)
208
+ failed_block=$(clean_log | grep -E '^rspec \./.*#' | awk '!seen[$0]++' || true)
187
209
  failed_count=$(printf '%s\n' "$failed_block" | grep -c 'rspec \.' || true)
188
210
  failed_count=${failed_count:-0}
189
211
 
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Test
5
5
  module Version
6
- VERSION = "2.0.12"
6
+ VERSION = "2.0.14"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.12
4
+ version: 2.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -384,10 +384,10 @@ licenses:
384
384
  - PolyForm-Small-Business-1.0.0
385
385
  metadata:
386
386
  homepage_uri: https://kettle-test.galtzo.com
387
- source_code_uri: https://github.com/kettle-dev/kettle-test/tree/v2.0.12
388
- changelog_uri: https://github.com/kettle-dev/kettle-test/blob/v2.0.12/CHANGELOG.md
387
+ source_code_uri: https://github.com/kettle-dev/kettle-test/tree/v2.0.14
388
+ changelog_uri: https://github.com/kettle-dev/kettle-test/blob/v2.0.14/CHANGELOG.md
389
389
  bug_tracker_uri: https://github.com/kettle-dev/kettle-test/issues
390
- documentation_uri: https://www.rubydoc.info/gems/kettle-test/2.0.12
390
+ documentation_uri: https://www.rubydoc.info/gems/kettle-test/2.0.14
391
391
  funding_uri: https://github.com/sponsors/pboling
392
392
  wiki_uri: https://github.com/kettle-dev/kettle-test/wiki
393
393
  news_uri: https://www.railsbling.com/tags/kettle-test
@@ -416,7 +416,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
416
416
  - !ruby/object:Gem::Version
417
417
  version: '0'
418
418
  requirements: []
419
- rubygems_version: 4.0.16
419
+ rubygems_version: 4.0.17
420
420
  specification_version: 4
421
421
  summary: "\U0001F372 A kettle-dev meta tool to streamline testing"
422
422
  test_files: []
metadata.gz.sig CHANGED
Binary file