qase-python-commons 3.0.2b4__tar.gz → 3.0.2b5__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 (36) hide show
  1. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/PKG-INFO +1 -1
  2. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/pyproject.toml +1 -1
  3. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/profilers/network.py +25 -10
  4. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/reporters/core.py +2 -1
  5. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase_python_commons.egg-info/PKG-INFO +1 -1
  6. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/README.md +0 -0
  7. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/setup.cfg +0 -0
  8. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/__init__.py +0 -0
  9. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/client/api_v1_client.py +0 -0
  10. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/client/api_v2_client.py +0 -0
  11. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/client/base_api_client.py +0 -0
  12. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/config.py +0 -0
  13. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/exceptions/reporter.py +0 -0
  14. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/loader.py +0 -0
  15. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/logger.py +0 -0
  16. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/__init__.py +0 -0
  17. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/attachment.py +0 -0
  18. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/basemodel.py +0 -0
  19. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/relation.py +0 -0
  20. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/result.py +0 -0
  21. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/run.py +0 -0
  22. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/runtime.py +0 -0
  23. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/step.py +0 -0
  24. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/models/suite.py +0 -0
  25. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/profilers/__init__.py +0 -0
  26. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/profilers/db.py +0 -0
  27. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/profilers/sleep.py +0 -0
  28. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/reporters/__init__.py +0 -0
  29. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/reporters/report.py +0 -0
  30. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/reporters/testops.py +0 -0
  31. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/utils.py +0 -0
  32. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase/commons/validators/base.py +0 -0
  33. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase_python_commons.egg-info/SOURCES.txt +0 -0
  34. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase_python_commons.egg-info/dependency_links.txt +0 -0
  35. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase_python_commons.egg-info/requires.txt +0 -0
  36. {qase_python_commons-3.0.2b4 → qase_python_commons-3.0.2b5}/src/qase_python_commons.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qase-python-commons
3
- Version: 3.0.2b4
3
+ Version: 3.0.2b5
4
4
  Summary: A library for Qase TestOps and Qase Report
5
5
  Author-email: Qase Team <support@qase.io>
6
6
  Project-URL: Homepage, https://github.com/qase-tms/qase-python/tree/master/qase-python-commons
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qase-python-commons"
7
- version = "3.0.2b4"
7
+ version = "3.0.2b5"
8
8
  description = "A library for Qase TestOps and Qase Report"
9
9
  readme = "README.md"
10
10
  authors = [{name = "Qase Team", email = "support@qase.io"}]
@@ -8,9 +8,10 @@ from ..models.step import Step, StepRequestData, StepType
8
8
  class NetworkProfiler:
9
9
  _instance = None
10
10
 
11
- def __init__(self, runtime: Runtime, track_on_fail: bool = True):
11
+ def __init__(self, runtime: Runtime, skip_domain: str, track_on_fail: bool = True):
12
12
  self._original_functions = {}
13
13
  self.runtime = runtime
14
+ self.skip_domain = skip_domain
14
15
  self.track_on_fail = track_on_fail
15
16
  self.step = None
16
17
 
@@ -37,46 +38,60 @@ class NetworkProfiler:
37
38
  def _requests_send_wrapper(self, func):
38
39
  @wraps(func)
39
40
  def wrapper(self, request, *args, **kwargs):
40
- NetworkProfilerSingleton.get_instance()._log_pre_request(request)
41
+ NetworkProfilerSingleton.get_instance()._log_request(request)
41
42
  response = func(self, request, *args, **kwargs)
42
- NetworkProfilerSingleton.get_instance()._log_post_response(response)
43
+ NetworkProfilerSingleton.get_instance()._log_response(response)
43
44
  return response
44
45
 
45
46
  return wrapper
46
47
 
47
48
  def _urllib3_request_wrapper(self, func):
49
+ skip_domain = self.skip_domain
50
+
48
51
  @wraps(func)
49
52
  def wrapper(self, method, url, *args, **kwargs):
53
+ if skip_domain in url:
54
+ return func(self, method, url, *args, **kwargs)
55
+
50
56
  interceptor = NetworkProfilerSingleton.get_instance()
51
57
  request = lambda: None
52
58
  request.method = method
53
59
  request.url = url
54
60
 
55
- interceptor._log_pre_request(request)
61
+ interceptor._log_request(request)
56
62
  response = func(self, method, url, *args, **kwargs)
57
- if response is not None and interceptor.track_on_fail and response.status >= 400:
58
- interceptor._log_post_response(response, url=url)
63
+ interceptor._log_response(response, url=url)
59
64
  return response
60
65
 
61
66
  return wrapper
62
67
 
63
68
  @staticmethod
64
- def _log_pre_request(request):
69
+ def _log_request(request):
65
70
  NetworkProfilerSingleton.get_instance().step = Step(
66
71
  id=str(uuid.uuid4()),
67
72
  step_type=StepType.REQUEST,
68
73
  data=StepRequestData(
69
74
  request_method=request.method,
70
75
  request_url=request.url,
71
- request_body=request.body,
72
- request_headers=request.headers,
76
+ request_body=request.body if hasattr(request, 'body') else None,
77
+ request_headers=request.headers if hasattr(request, 'headers') else None
73
78
  ),
74
79
  )
75
80
 
76
81
  @staticmethod
77
- def _log_post_response(response, url=None, *args, **kwargs):
82
+ def _log_response(response, url=None, *args, **kwargs):
78
83
  status = response.status if hasattr(response, 'status') else response.status_code
79
84
  profiler = NetworkProfilerSingleton.get_instance()
85
+ if profiler.step is None:
86
+ profiler.step = Step(
87
+ id=str(uuid.uuid4()),
88
+ step_type=StepType.REQUEST,
89
+ data=StepRequestData(
90
+ request_method=response.request.method,
91
+ request_url=response.request.url,
92
+ request_body=response.request.body if hasattr(response.request, 'body') else None,
93
+ request_headers=response.request.headers if hasattr(response.request, 'headers') else None
94
+ ))
80
95
  profiler.step.data.add_response(
81
96
  status_code=status,
82
97
  response_body=str(response.data if hasattr(response,
@@ -109,7 +109,8 @@ class QaseCoreReporter:
109
109
  if profiler == "network":
110
110
  # Lazy import
111
111
  from ..profilers import NetworkProfilerSingleton
112
- NetworkProfilerSingleton.init(runtime=runtime)
112
+ NetworkProfilerSingleton.init(runtime=runtime,
113
+ skip_domain=self.config.get("testops.api.host", "qase.io"))
113
114
  self.profilers.append(NetworkProfilerSingleton.get_instance())
114
115
  if profiler == "sleep":
115
116
  from ..profilers import SleepProfiler
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qase-python-commons
3
- Version: 3.0.2b4
3
+ Version: 3.0.2b5
4
4
  Summary: A library for Qase TestOps and Qase Report
5
5
  Author-email: Qase Team <support@qase.io>
6
6
  Project-URL: Homepage, https://github.com/qase-tms/qase-python/tree/master/qase-python-commons