provide-testkit 0.3.31__tar.gz → 0.4.0__tar.gz

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 (117) hide show
  1. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/PKG-INFO +1 -1
  2. provide_testkit-0.4.0/VERSION +1 -0
  3. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/pyproject.toml +15 -3
  4. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/cli/testing.py +1 -1
  5. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/temp.py +1 -1
  6. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/script_fixtures.py +1 -1
  7. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/PKG-INFO +1 -1
  8. provide_testkit-0.3.31/VERSION +0 -1
  9. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/LICENSE +0 -0
  10. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/README.md +0 -0
  11. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/setup.cfg +0 -0
  12. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/__init__.py +0 -0
  13. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/__init__.py +0 -0
  14. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/__main__.py +0 -0
  15. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/_blocker.py +0 -0
  16. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/_early_init.py +0 -0
  17. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/_install_blocker.py +0 -0
  18. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/_install_pth.py +0 -0
  19. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/base/__init__.py +0 -0
  20. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/base/foundation.py +0 -0
  21. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/base/harness.py +0 -0
  22. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/base/minimal.py +0 -0
  23. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/__init__.py +0 -0
  24. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/concurrency_strategies.py +0 -0
  25. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/fixtures.py +0 -0
  26. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/io_strategies.py +0 -0
  27. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/strategies.py +0 -0
  28. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/chaos/time_strategies.py +0 -0
  29. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/cli/__init__.py +0 -0
  30. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/cli/runner.py +0 -0
  31. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/common/__init__.py +0 -0
  32. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/common/fixtures.py +0 -0
  33. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/conftest.py +0 -0
  34. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/crypto/__init__.py +0 -0
  35. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/crypto/fixtures.py +0 -0
  36. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/__init__.py +0 -0
  37. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/content_fixtures.py +0 -0
  38. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/directory_fixtures.py +0 -0
  39. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/fixtures.py +0 -0
  40. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/file/special_fixtures.py +0 -0
  41. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/hub/__init__.py +0 -0
  42. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/hub/fixtures.py +0 -0
  43. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/logger/__init__.py +0 -0
  44. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/logger/hooks.py +0 -0
  45. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/logger/mocks.py +0 -0
  46. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/logger/reset.py +0 -0
  47. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/main.py +0 -0
  48. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/mocking/__init__.py +0 -0
  49. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/mocking/fixtures.py +0 -0
  50. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/mocking/time.py +0 -0
  51. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/__init__.py +0 -0
  52. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/async_fixtures.py +0 -0
  53. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/fixtures.py +0 -0
  54. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/script_assertions.py +0 -0
  55. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/subprocess_fixtures.py +0 -0
  56. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/process/system_fixtures.py +0 -0
  57. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/provide_testkit_init.pth +0 -0
  58. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/py.typed +0 -0
  59. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/pytest_plugin.py +0 -0
  60. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/__init__.py +0 -0
  61. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/artifacts.py +0 -0
  62. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/base.py +0 -0
  63. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/cli.py +0 -0
  64. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/complexity/__init__.py +0 -0
  65. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/complexity/analyzer.py +0 -0
  66. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/complexity/fixture.py +0 -0
  67. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/coverage/__init__.py +0 -0
  68. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/coverage/fixture.py +0 -0
  69. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/coverage/reporter.py +0 -0
  70. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/coverage/tracker.py +0 -0
  71. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/decorators.py +0 -0
  72. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/documentation/__init__.py +0 -0
  73. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/documentation/checker.py +0 -0
  74. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/documentation/fixture.py +0 -0
  75. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/profiling/__init__.py +0 -0
  76. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/profiling/fixture.py +0 -0
  77. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/profiling/profiler.py +0 -0
  78. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/report.py +0 -0
  79. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/runner.py +0 -0
  80. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/__init__.py +0 -0
  81. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/fixture.py +0 -0
  82. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/gitleaks_scanner.py +0 -0
  83. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/pip_audit_scanner.py +0 -0
  84. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/safety_scanner.py +0 -0
  85. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/scanner.py +0 -0
  86. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/semgrep_scanner.py +0 -0
  87. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/quality/security/trufflehog_scanner.py +0 -0
  88. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/streams/__init__.py +0 -0
  89. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/streams/testing.py +0 -0
  90. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/__init__.py +0 -0
  91. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/basic_fixtures.py +0 -0
  92. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/data_fixtures.py +0 -0
  93. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/execution_fixtures.py +0 -0
  94. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/fixtures.py +0 -0
  95. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/threading/sync_fixtures.py +0 -0
  96. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/__init__.py +0 -0
  97. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/classes.py +0 -0
  98. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/controlled.py +0 -0
  99. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/fixtures.py +0 -0
  100. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/freezing.py +0 -0
  101. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/measurement.py +0 -0
  102. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/mocking.py +0 -0
  103. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/time/rate_limiting.py +0 -0
  104. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/transport/__init__.py +0 -0
  105. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/transport/fixtures.py +0 -0
  106. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/utils/__init__.py +0 -0
  107. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/utils/environment.py +0 -0
  108. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide/testkit/utils/temp_env.py +0 -0
  109. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/SOURCES.txt +0 -0
  110. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/dependency_links.txt +0 -0
  111. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/entry_points.txt +0 -0
  112. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/requires.txt +0 -0
  113. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/src/provide_testkit.egg-info/top_level.txt +0 -0
  114. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/tests/test_async_fixtures.py +0 -0
  115. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/tests/test_early_init.py +0 -0
  116. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/tests/test_placeholder.py +0 -0
  117. {provide_testkit-0.3.31 → provide_testkit-0.4.0}/tests/test_pth_installation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: provide-testkit
3
- Version: 0.3.31
3
+ Version: 0.4.0
4
4
  Summary: Testing utilities and fixtures for the provide ecosystem.
5
5
  Author-email: Tim Perkins <code@tim.life>
6
6
  Maintainer-email: "provide.io" <code@provide.io>
@@ -0,0 +1 @@
1
+ 0.4.0
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2026 provide.io llc. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
1
4
  #
2
5
  # provide-testkit/pyproject.toml
3
6
  #
@@ -281,7 +284,6 @@ markers = [
281
284
  "slow: marks tests as slow (deselect with '-m \"not slow\"')",
282
285
  "integration: marks tests as integration tests",
283
286
  "unit: marks tests as unit tests",
284
- "memray: marks tests as memray allocation profiling tests",
285
287
  ]
286
288
 
287
289
  ################################################################################
@@ -341,13 +343,24 @@ warn_redundant_casts = true
341
343
  warn_unused_ignores = true
342
344
  show_error_codes = true
343
345
 
346
+ # memray ships without .pyi stubs; try/except import pattern handles absence.
347
+ [[tool.mypy.overrides]]
348
+ module = ["memray", "memray.*"]
349
+ ignore_missing_imports = true
350
+
351
+ # click.Path(path_type=Path) returns a generic _PathType typevar mypy can't
352
+ # narrow; the pattern appears 12+ times in this CLI module.
353
+ [[tool.mypy.overrides]]
354
+ module = ["provide.testkit.quality.cli"]
355
+ disable_error_code = ["type-var"]
356
+
344
357
  [tool.coverage.run]
345
358
  source = ["src"]
346
359
  branch = true
347
360
  parallel = true
348
361
 
349
362
  [tool.coverage.report]
350
- fail_under = 40
363
+ fail_under = 40 # TODO: Restore to 70 after adding tests for quality/, streams/, threading/ modules
351
364
  exclude_lines = [
352
365
  "pragma: no cover",
353
366
  "def __repr__",
@@ -370,7 +383,6 @@ exclude_dirs = [".venv", "tests", "workenv"]
370
383
 
371
384
  [tool.security]
372
385
  # Paths to exclude from secret scanning (TruffleHog, GitGuardian, Gitleaks)
373
- # Run: we security generate (via wrknv) to regenerate tool configs
374
386
  description = "Test fixtures with example credentials - intentionally committed"
375
387
  allowed_paths = [
376
388
  # Test EC private keys used for mTLS/crypto testing fixtures
@@ -124,7 +124,7 @@ def temp_config_file(
124
124
  f.write(f"{key} = {value}\n")
125
125
  elif format == "yaml":
126
126
  try:
127
- import yaml # type: ignore[import-untyped]
127
+ import yaml
128
128
 
129
129
  yaml.safe_dump(content, f)
130
130
  except ImportError as e:
@@ -107,7 +107,7 @@ class TempFileManager:
107
107
  ImportError: If PyYAML is not available.
108
108
  """
109
109
  try:
110
- import yaml # type: ignore[import-untyped]
110
+ import yaml
111
111
  except ImportError as e:
112
112
  raise ImportError("PyYAML required for YAML file creation") from e
113
113
 
@@ -15,7 +15,7 @@ from __future__ import annotations
15
15
  from collections.abc import Callable, Generator
16
16
  from pathlib import Path
17
17
  import shutil
18
- import subprocess
18
+ import subprocess # nosec
19
19
 
20
20
  import attrs
21
21
  import pytest
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: provide-testkit
3
- Version: 0.3.31
3
+ Version: 0.4.0
4
4
  Summary: Testing utilities and fixtures for the provide ecosystem.
5
5
  Author-email: Tim Perkins <code@tim.life>
6
6
  Maintainer-email: "provide.io" <code@provide.io>
@@ -1 +0,0 @@
1
- 0.3.31