httpdbg 2.1.7__tar.gz → 2.2.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 (99) hide show
  1. {httpdbg-2.1.7 → httpdbg-2.2.0}/PKG-INFO +1 -1
  2. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/__init__.py +1 -1
  3. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/args.py +17 -4
  4. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/index.htm +1 -1
  5. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/table.css +2 -2
  6. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg.egg-info/PKG-INFO +1 -1
  7. httpdbg-2.2.0/tests/test_cli.py +32 -0
  8. httpdbg-2.1.7/tests/test_cli.py +0 -13
  9. {httpdbg-2.1.7 → httpdbg-2.2.0}/LICENSE +0 -0
  10. {httpdbg-2.1.7 → httpdbg-2.2.0}/README.md +0 -0
  11. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/__main__.py +0 -0
  12. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/env.py +0 -0
  13. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/exception.py +0 -0
  14. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/export.py +0 -0
  15. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/__init__.py +0 -0
  16. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/aiohttp.py +0 -0
  17. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/all.py +0 -0
  18. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/external.py +0 -0
  19. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/fastapi.py +0 -0
  20. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/flask.py +0 -0
  21. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/generic.py +0 -0
  22. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/h2.py +0 -0
  23. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/http.py +0 -0
  24. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/httpx.py +0 -0
  25. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/pytest.py +0 -0
  26. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/record.py +0 -0
  27. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/recordhttp1.py +0 -0
  28. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/recordhttp2.py +0 -0
  29. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/requests.py +0 -0
  30. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/socket.py +0 -0
  31. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/starlette.py +0 -0
  32. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/template_sitecustomize.py +0 -0
  33. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/unittest.py +0 -0
  34. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/urllib3.py +0 -0
  35. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/utils.py +0 -0
  36. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/hooks/uvicorn.py +0 -0
  37. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/http_status_code.py +0 -0
  38. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/initiator.py +0 -0
  39. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/log.py +0 -0
  40. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/mode_console.py +0 -0
  41. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/mode_module.py +0 -0
  42. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/mode_script.py +0 -0
  43. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/preview.py +0 -0
  44. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/records.py +0 -0
  45. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/server.py +0 -0
  46. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/utils.py +0 -0
  47. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/__init__.py +0 -0
  48. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/api.py +0 -0
  49. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/app.py +0 -0
  50. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/api.js +0 -0
  51. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/column.css +0 -0
  52. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/configuration.css +0 -0
  53. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/configuration.js +0 -0
  54. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/detail.css +0 -0
  55. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/favicon.ico +0 -0
  56. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/filter.js +0 -0
  57. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/chevron-direction-top-outline-icon.svg +0 -0
  58. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/download-install-line-icon.svg +0 -0
  59. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/engine-gears-icon.svg +0 -0
  60. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/eye-blind-icon.svg +0 -0
  61. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/eye-icon.svg +0 -0
  62. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/files-papers-outline-icon.svg +0 -0
  63. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/filter-outline-icon.svg +0 -0
  64. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/lock-line-icon.svg +0 -0
  65. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/lock-open-line-icon.svg +0 -0
  66. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/math-multiplication-icon.svg +0 -0
  67. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/push-pin-green-icon.svg +0 -0
  68. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/question-mark-round-line-icon.svg +0 -0
  69. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/recycle-bin-line-icon.svg +0 -0
  70. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/icons/wait-sandclock-icon.svg +0 -0
  71. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/main.js +0 -0
  72. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/mustache.min.js +0 -0
  73. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/render.js +0 -0
  74. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg/webapp/static/style.css +0 -0
  75. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg.egg-info/SOURCES.txt +0 -0
  76. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg.egg-info/dependency_links.txt +0 -0
  77. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg.egg-info/entry_points.txt +0 -0
  78. {httpdbg-2.1.7 → httpdbg-2.2.0}/httpdbg.egg-info/top_level.txt +0 -0
  79. {httpdbg-2.1.7 → httpdbg-2.2.0}/pyproject.toml +0 -0
  80. {httpdbg-2.1.7 → httpdbg-2.2.0}/setup.cfg +0 -0
  81. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_api.py +0 -0
  82. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_context_manager.py +0 -0
  83. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_aiohttp.py +0 -0
  84. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_h2.py +0 -0
  85. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_httpx.py +0 -0
  86. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_pytest.py +0 -0
  87. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_requests.py +0 -0
  88. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_unittest.py +0 -0
  89. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_hook_urllib3.py +0 -0
  90. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_initiator.py +0 -0
  91. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_mode_console.py +0 -0
  92. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_mode_module_pytest.py +0 -0
  93. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_mode_script.py +0 -0
  94. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_multiprocess.py +0 -0
  95. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_preview.py +0 -0
  96. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_pyhttpdbg_server.py +0 -0
  97. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_server.py +0 -0
  98. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_server_hook_fastapi.py +0 -0
  99. {httpdbg-2.1.7 → httpdbg-2.2.0}/tests/test_server_hook_flask.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httpdbg
3
- Version: 2.1.7
3
+ Version: 2.2.0
4
4
  Summary: A very simple tool to debug HTTP(S) client and server requests.
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License-Expression: Apache-2.0
@@ -1,4 +1,4 @@
1
- __version__ = "2.1.7"
1
+ __version__ = "2.2.0"
2
2
 
3
3
  __all__ = ["export_html", "httprecord", "HTTPRecords"]
4
4
 
@@ -5,12 +5,25 @@ from httpdbg.log import LogLevel
5
5
 
6
6
 
7
7
  def read_args(args: list[str]) -> tuple[argparse.Namespace, list[str]]:
8
+ """
9
+ Parse the raw command-line arguments to separate the arguments intended
10
+ for httpdbg from those intended for the script or module being executed.
11
+
12
+ The httpdbg arguments are everything up to and including the selected
13
+ execution option (e.g. ``--script``, ``--module``, or ``-m``), while the
14
+ remaining arguments are passed to the target script or module.
15
+ """
8
16
  httpdbg_args = args
9
17
  client_args = []
10
- for action in ["--console", "--module", "-m", "--script"]:
11
- if action in args:
12
- httpdbg_args = args[: args.index(action) + 2]
13
- client_args = args[args.index(action) + 1 :]
18
+ for arg in args:
19
+ tostop = False
20
+ for action in ["--console", "--module", "-m", "--script"]:
21
+ if action == arg:
22
+ httpdbg_args = args[: args.index(action) + 2]
23
+ client_args = args[args.index(action) + 1 :]
24
+ tostop = True
25
+ break
26
+ if tostop:
14
27
  break
15
28
 
16
29
  parser = argparse.ArgumentParser(
@@ -235,7 +235,7 @@
235
235
  data-qa-request="{{id}}">
236
236
  <td class="pin" onclick="event.stopPropagation();">
237
237
  <input class="pin-checkbox" type="checkbox" id="pin{{id}}" onclick="pin_request('{{id}}',this.checked)" {{pin}}>
238
- <label class="pin-icon" for="pin{{id}}"><svg class="icon"><use href="#push-pin-green-icon.svg"></use></svg></label>
238
+ <label class="pin-icon" for="pin{{id}}"><svg class="icon"><use href="#push-pin-green-icon"></use></svg></label>
239
239
  </td>
240
240
  <td class="status"><span title="{{reason}}" data-qa-request-status>{{{status_code_view}}}</span></td>
241
241
  <td class="method"><span title="{{verb}}" data-qa-request-method>{{verb}}</span></td>
@@ -66,7 +66,7 @@
66
66
  opacity: 1 !important;
67
67
  }
68
68
 
69
- .pin-checkbox:checked+label img {
69
+ .pin-checkbox:checked+label svg {
70
70
  transform: rotate(-45deg);
71
71
  }
72
72
 
@@ -154,7 +154,7 @@
154
154
  filter: none !important;
155
155
  }
156
156
 
157
- .collapse-checkbox:checked+label img {
157
+ .collapse-checkbox:checked+label svg {
158
158
  transform: rotate(-90deg);
159
159
  }
160
160
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httpdbg
3
- Version: 2.1.7
3
+ Version: 2.2.0
4
4
  Summary: A very simple tool to debug HTTP(S) client and server requests.
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License-Expression: Apache-2.0
@@ -0,0 +1,32 @@
1
+ import pytest
2
+
3
+ from httpdbg import __version__
4
+ from httpdbg.__main__ import pyhttpdbg_entry_point
5
+ from httpdbg.args import read_args
6
+
7
+
8
+ @pytest.mark.cli
9
+ def test_cli_version(monkeypatch, capsys):
10
+ monkeypatch.setattr("sys.argv", ["pyhttpdb", "--version"])
11
+
12
+ pyhttpdbg_entry_point(test_mode=True)
13
+
14
+ assert __version__ in capsys.readouterr().out.strip()
15
+
16
+
17
+ @pytest.mark.cli
18
+ def test_read_args_split_httpdbg_and_script_args():
19
+ """Split httpdbg arguments from the arguments passed to the script/module."""
20
+ httpdbg_args_parsed, client_args = read_args(
21
+ ["--port", "345", "--script", "demo.py", "--script", "xyz"]
22
+ )
23
+ assert httpdbg_args_parsed.port == 345
24
+ assert httpdbg_args_parsed.script == "demo.py"
25
+ assert client_args == ["demo.py", "--script", "xyz"]
26
+
27
+
28
+ @pytest.mark.cli
29
+ def test_read_args_split_httpdbg_and_script_args_same_args():
30
+ """Allow script/module arguments to reuse httpdbg command-line same options."""
31
+ read_args(["--script", "demo.py", "--script", "xyz"])
32
+ read_args(["--script", "demo.py", "-m", "xyz"])
@@ -1,13 +0,0 @@
1
- import pytest
2
-
3
- from httpdbg import __version__
4
- from httpdbg.__main__ import pyhttpdbg_entry_point
5
-
6
-
7
- @pytest.mark.cli
8
- def test_cli_version(monkeypatch, capsys):
9
- monkeypatch.setattr("sys.argv", ["pyhttpdb", "--version"])
10
-
11
- pyhttpdbg_entry_point(test_mode=True)
12
-
13
- assert __version__ in capsys.readouterr().out.strip()
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