drun 2.2.2__tar.gz → 2.3.2__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 (61) hide show
  1. {drun-2.2.2 → drun-2.3.2}/PKG-INFO +1 -1
  2. {drun-2.2.2 → drun-2.3.2}/drun/__init__.py +1 -1
  3. {drun-2.2.2 → drun-2.3.2}/drun/loader/yaml_loader.py +12 -1
  4. {drun-2.2.2 → drun-2.3.2}/drun/scaffolds/templates.py +1 -1
  5. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/PKG-INFO +1 -1
  6. {drun-2.2.2 → drun-2.3.2}/pyproject.toml +1 -1
  7. {drun-2.2.2 → drun-2.3.2}/LICENSE +0 -0
  8. {drun-2.2.2 → drun-2.3.2}/README.md +0 -0
  9. {drun-2.2.2 → drun-2.3.2}/drun/cli.py +0 -0
  10. {drun-2.2.2 → drun-2.3.2}/drun/db/__init__.py +0 -0
  11. {drun-2.2.2 → drun-2.3.2}/drun/db/database_proxy.py +0 -0
  12. {drun-2.2.2 → drun-2.3.2}/drun/db/generate_mysql_config.py +0 -0
  13. {drun-2.2.2 → drun-2.3.2}/drun/engine/__init__.py +0 -0
  14. {drun-2.2.2 → drun-2.3.2}/drun/engine/http.py +0 -0
  15. {drun-2.2.2 → drun-2.3.2}/drun/exporters/curl.py +0 -0
  16. {drun-2.2.2 → drun-2.3.2}/drun/importers/base.py +0 -0
  17. {drun-2.2.2 → drun-2.3.2}/drun/importers/curl.py +0 -0
  18. {drun-2.2.2 → drun-2.3.2}/drun/importers/har.py +0 -0
  19. {drun-2.2.2 → drun-2.3.2}/drun/importers/openapi.py +0 -0
  20. {drun-2.2.2 → drun-2.3.2}/drun/importers/postman.py +0 -0
  21. {drun-2.2.2 → drun-2.3.2}/drun/loader/__init__.py +0 -0
  22. {drun-2.2.2 → drun-2.3.2}/drun/loader/collector.py +0 -0
  23. {drun-2.2.2 → drun-2.3.2}/drun/loader/env.py +0 -0
  24. {drun-2.2.2 → drun-2.3.2}/drun/loader/hooks.py +0 -0
  25. {drun-2.2.2 → drun-2.3.2}/drun/models/case.py +0 -0
  26. {drun-2.2.2 → drun-2.3.2}/drun/models/config.py +0 -0
  27. {drun-2.2.2 → drun-2.3.2}/drun/models/report.py +0 -0
  28. {drun-2.2.2 → drun-2.3.2}/drun/models/request.py +0 -0
  29. {drun-2.2.2 → drun-2.3.2}/drun/models/step.py +0 -0
  30. {drun-2.2.2 → drun-2.3.2}/drun/models/validators.py +0 -0
  31. {drun-2.2.2 → drun-2.3.2}/drun/notifier/__init__.py +0 -0
  32. {drun-2.2.2 → drun-2.3.2}/drun/notifier/base.py +0 -0
  33. {drun-2.2.2 → drun-2.3.2}/drun/notifier/dingtalk.py +0 -0
  34. {drun-2.2.2 → drun-2.3.2}/drun/notifier/emailer.py +0 -0
  35. {drun-2.2.2 → drun-2.3.2}/drun/notifier/feishu.py +0 -0
  36. {drun-2.2.2 → drun-2.3.2}/drun/notifier/format.py +0 -0
  37. {drun-2.2.2 → drun-2.3.2}/drun/reporter/__init__.py +0 -0
  38. {drun-2.2.2 → drun-2.3.2}/drun/reporter/allure_reporter.py +0 -0
  39. {drun-2.2.2 → drun-2.3.2}/drun/reporter/html_reporter.py +0 -0
  40. {drun-2.2.2 → drun-2.3.2}/drun/reporter/json_reporter.py +0 -0
  41. {drun-2.2.2 → drun-2.3.2}/drun/runner/__init__.py +0 -0
  42. {drun-2.2.2 → drun-2.3.2}/drun/runner/assertions.py +0 -0
  43. {drun-2.2.2 → drun-2.3.2}/drun/runner/extractors.py +0 -0
  44. {drun-2.2.2 → drun-2.3.2}/drun/runner/runner.py +0 -0
  45. {drun-2.2.2 → drun-2.3.2}/drun/scaffolds/__init__.py +0 -0
  46. {drun-2.2.2 → drun-2.3.2}/drun/templating/__init__.py +0 -0
  47. {drun-2.2.2 → drun-2.3.2}/drun/templating/builtins.py +0 -0
  48. {drun-2.2.2 → drun-2.3.2}/drun/templating/context.py +0 -0
  49. {drun-2.2.2 → drun-2.3.2}/drun/templating/engine.py +0 -0
  50. {drun-2.2.2 → drun-2.3.2}/drun/utils/__init__.py +0 -0
  51. {drun-2.2.2 → drun-2.3.2}/drun/utils/curl.py +0 -0
  52. {drun-2.2.2 → drun-2.3.2}/drun/utils/errors.py +0 -0
  53. {drun-2.2.2 → drun-2.3.2}/drun/utils/logging.py +0 -0
  54. {drun-2.2.2 → drun-2.3.2}/drun/utils/mask.py +0 -0
  55. {drun-2.2.2 → drun-2.3.2}/drun/utils/timeit.py +0 -0
  56. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/SOURCES.txt +0 -0
  57. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/dependency_links.txt +0 -0
  58. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/entry_points.txt +0 -0
  59. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/requires.txt +0 -0
  60. {drun-2.2.2 → drun-2.3.2}/drun.egg-info/top_level.txt +0 -0
  61. {drun-2.2.2 → drun-2.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drun
3
- Version: 2.2.2
3
+ Version: 2.3.2
4
4
  Summary: Minimal HTTP API test runner (MVP)
5
5
  Author: Drun Team
6
6
  Requires-Python: >=3.10
@@ -1,2 +1,2 @@
1
1
  __all__ = ["__version__"]
2
- __version__ = "2.2.2"
2
+ __version__ = "2.3.2"
@@ -423,10 +423,21 @@ def _find_request_subfield_location(raw_text: str, step_index: int, subfield: st
423
423
 
424
424
 
425
425
  def _resolve_csv_path(path_value: str, source_path: Path | None) -> Path:
426
+ from drun.loader.hooks import find_hooks
427
+
426
428
  candidate = Path(path_value).expanduser()
427
429
  if candidate.is_absolute():
428
430
  return candidate
429
- base = Path(source_path).resolve().parent if source_path else Path.cwd()
431
+
432
+ base: Path | None = None
433
+ if source_path:
434
+ hooks_path = find_hooks(source_path)
435
+ if hooks_path:
436
+ base = hooks_path.parent.resolve()
437
+
438
+ if base is None:
439
+ base = Path.cwd().resolve()
440
+
430
441
  return (base / candidate).resolve()
431
442
 
432
443
 
@@ -161,7 +161,7 @@ CSV_DATA_TESTCASE = """config:
161
161
  tags: [demo, csv]
162
162
  parameters:
163
163
  - csv:
164
- path: ../data/users.csv
164
+ path: data/users.csv
165
165
  strip: true
166
166
 
167
167
  steps:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drun
3
- Version: 2.2.2
3
+ Version: 2.3.2
4
4
  Summary: Minimal HTTP API test runner (MVP)
5
5
  Author: Drun Team
6
6
  Requires-Python: >=3.10
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "drun"
7
- version = "2.2.2"
7
+ version = "2.3.2"
8
8
  description = "Minimal HTTP API test runner (MVP)"
9
9
  requires-python = ">=3.10"
10
10
  authors = [{ name = "Drun Team" }]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes