qase-python-commons 3.5.6__tar.gz → 4.0.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.

Potentially problematic release.


This version of qase-python-commons might be problematic. Click here for more details.

Files changed (47) hide show
  1. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/PKG-INFO +5 -6
  2. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/pyproject.toml +7 -8
  3. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/attachment.py +11 -8
  4. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/step.py +24 -4
  5. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase_python_commons.egg-info/PKG-INFO +5 -6
  6. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase_python_commons.egg-info/requires.txt +2 -2
  7. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/README.md +0 -0
  8. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/setup.cfg +0 -0
  9. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/__init__.py +0 -0
  10. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/client/api_v1_client.py +0 -0
  11. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/client/api_v2_client.py +0 -0
  12. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/client/base_api_client.py +0 -0
  13. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/config.py +0 -0
  14. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/exceptions/reporter.py +0 -0
  15. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/loader.py +0 -0
  16. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/logger.py +0 -0
  17. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/__init__.py +0 -0
  18. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/basemodel.py +0 -0
  19. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/api.py +0 -0
  20. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/batch.py +0 -0
  21. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/connection.py +0 -0
  22. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/framework.py +0 -0
  23. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/plan.py +0 -0
  24. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/qaseconfig.py +0 -0
  25. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/report.py +0 -0
  26. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/run.py +0 -0
  27. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/config/testops.py +0 -0
  28. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/external_link.py +0 -0
  29. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/relation.py +0 -0
  30. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/result.py +0 -0
  31. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/run.py +0 -0
  32. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/models/runtime.py +0 -0
  33. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/profilers/__init__.py +0 -0
  34. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/profilers/db.py +0 -0
  35. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/profilers/network.py +0 -0
  36. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/profilers/sleep.py +0 -0
  37. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/reporters/__init__.py +0 -0
  38. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/reporters/core.py +0 -0
  39. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/reporters/report.py +0 -0
  40. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/reporters/testops.py +0 -0
  41. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/util/__init__.py +0 -0
  42. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/util/host_data.py +0 -0
  43. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/utils.py +0 -0
  44. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase/commons/validators/base.py +0 -0
  45. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase_python_commons.egg-info/SOURCES.txt +0 -0
  46. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase_python_commons.egg-info/dependency_links.txt +0 -0
  47. {qase_python_commons-3.5.6 → qase_python_commons-4.0.0}/src/qase_python_commons.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qase-python-commons
3
- Version: 3.5.6
3
+ Version: 4.0.0
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/main/qase-python-commons
@@ -12,18 +12,17 @@ Classifier: Topic :: Software Development :: Quality Assurance
12
12
  Classifier: Topic :: Software Development :: Testing
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3 :: Only
15
- Classifier: Programming Language :: Python :: 3.7
16
- Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Programming Language :: Python :: 3.10
19
17
  Classifier: Programming Language :: Python :: 3.11
20
18
  Classifier: Programming Language :: Python :: 3.12
21
- Requires-Python: >=3.7
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.9
22
21
  Description-Content-Type: text/markdown
23
22
  Requires-Dist: certifi>=2024.2.2
24
23
  Requires-Dist: attrs>=23.2.0
25
- Requires-Dist: qase-api-client~=1.2.3
26
- Requires-Dist: qase-api-v2-client~=1.2.2
24
+ Requires-Dist: qase-api-client~=2.0.0
25
+ Requires-Dist: qase-api-v2-client~=2.0.0
27
26
  Requires-Dist: more_itertools
28
27
  Provides-Extra: testing
29
28
  Requires-Dist: pytest; extra == "testing"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qase-python-commons"
7
- version = "3.5.6"
7
+ version = "4.0.0"
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"}]
@@ -18,20 +18,19 @@ classifiers = [
18
18
  'Topic :: Software Development :: Testing',
19
19
  'Programming Language :: Python :: 3',
20
20
  'Programming Language :: Python :: 3 :: Only',
21
- 'Programming Language :: Python :: 3.7',
22
- 'Programming Language :: Python :: 3.8',
23
21
  'Programming Language :: Python :: 3.9',
24
22
  'Programming Language :: Python :: 3.10',
25
23
  'Programming Language :: Python :: 3.11',
26
24
  'Programming Language :: Python :: 3.12',
25
+ 'Programming Language :: Python :: 3.13',
27
26
  ]
28
27
  urls = {"Homepage" = "https://github.com/qase-tms/qase-python/tree/main/qase-python-commons"}
29
- requires-python = ">=3.7"
28
+ requires-python = ">=3.9"
30
29
  dependencies = [
31
30
  "certifi>=2024.2.2",
32
31
  "attrs>=23.2.0",
33
- "qase-api-client~=1.2.3",
34
- "qase-api-v2-client~=1.2.2",
32
+ "qase-api-client~=2.0.0",
33
+ "qase-api-v2-client~=2.0.0",
35
34
  "more_itertools"
36
35
  ]
37
36
 
@@ -48,8 +47,8 @@ testing = [
48
47
  [tool.tox]
49
48
  legacy_tox_ini = """
50
49
  [tox]
51
- minversion = 3.7
52
- envlist = py{37,38,39,310,311}
50
+ minversion = 3.9
51
+ envlist = py{39,310,311,312,313}
53
52
 
54
53
  [testenv]
55
54
  deps =
@@ -29,16 +29,19 @@ class Attachment(BaseModel):
29
29
  def get_id(self) -> str:
30
30
  return self.id
31
31
 
32
- def get_for_upload(self) -> BytesIO:
32
+ def get_for_upload(self) -> tuple:
33
+ """Returns attachment data in format expected by new API client: (filename, filedata)"""
34
+
33
35
  if self.file_path:
34
36
  with open(self.file_path, "rb") as fc:
35
- content = BytesIO(fc.read())
37
+ filedata = fc.read()
36
38
  else:
37
39
  if isinstance(self.content, str):
38
- content = BytesIO(bytes(self.content, 'utf-8'))
40
+ filedata = bytes(self.content, 'utf-8')
39
41
  elif isinstance(self.content, bytes):
40
- content = BytesIO(self.content)
41
- content.name = self.file_name
42
- content.mime = self.mime_type
43
-
44
- return content
42
+ filedata = self.content
43
+ else:
44
+ # Handle case where content is not str or bytes (e.g., JSON serialized)
45
+ filedata = bytes(self.content, 'utf-8')
46
+
47
+ return (self.file_name, filedata)
@@ -43,10 +43,20 @@ class StepRequestData(BaseModel):
43
43
  self.response_body = None
44
44
  self.status_code = None
45
45
  if isinstance(request_body, bytes):
46
- request_body = request_body.decode('utf-8')
46
+ try:
47
+ request_body = request_body.decode('utf-8')
48
+ except UnicodeDecodeError:
49
+ # For binary data (like file uploads), keep as base64 encoded string
50
+ import base64
51
+ request_body = base64.b64encode(request_body).decode('ascii')
47
52
  self.request_body = request_body
48
53
  if isinstance(request_headers, bytes):
49
- request_headers = request_headers.decode('utf-8')
54
+ try:
55
+ request_headers = request_headers.decode('utf-8')
56
+ except UnicodeDecodeError:
57
+ # For binary headers, keep as base64 encoded string
58
+ import base64
59
+ request_headers = base64.b64encode(request_headers).decode('ascii')
50
60
  self.request_headers = request_headers
51
61
  self.request_method = request_method
52
62
  self.request_url = request_url
@@ -56,10 +66,20 @@ class StepRequestData(BaseModel):
56
66
  self.status_code = status_code
57
67
 
58
68
  if isinstance(response_body, bytes):
59
- response_body = response_body.decode('utf-8')
69
+ try:
70
+ response_body = response_body.decode('utf-8')
71
+ except UnicodeDecodeError:
72
+ # For binary data (like file downloads), keep as base64 encoded string
73
+ import base64
74
+ response_body = base64.b64encode(response_body).decode('ascii')
60
75
  self.response_body = response_body
61
76
  if isinstance(response_headers, bytes):
62
- response_headers = response_headers.decode('utf-8')
77
+ try:
78
+ response_headers = response_headers.decode('utf-8')
79
+ except UnicodeDecodeError:
80
+ # For binary headers, keep as base64 encoded string
81
+ import base64
82
+ response_headers = base64.b64encode(response_headers).decode('ascii')
63
83
  self.response_headers = response_headers
64
84
 
65
85
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qase-python-commons
3
- Version: 3.5.6
3
+ Version: 4.0.0
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/main/qase-python-commons
@@ -12,18 +12,17 @@ Classifier: Topic :: Software Development :: Quality Assurance
12
12
  Classifier: Topic :: Software Development :: Testing
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3 :: Only
15
- Classifier: Programming Language :: Python :: 3.7
16
- Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Programming Language :: Python :: 3.10
19
17
  Classifier: Programming Language :: Python :: 3.11
20
18
  Classifier: Programming Language :: Python :: 3.12
21
- Requires-Python: >=3.7
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.9
22
21
  Description-Content-Type: text/markdown
23
22
  Requires-Dist: certifi>=2024.2.2
24
23
  Requires-Dist: attrs>=23.2.0
25
- Requires-Dist: qase-api-client~=1.2.3
26
- Requires-Dist: qase-api-v2-client~=1.2.2
24
+ Requires-Dist: qase-api-client~=2.0.0
25
+ Requires-Dist: qase-api-v2-client~=2.0.0
27
26
  Requires-Dist: more_itertools
28
27
  Provides-Extra: testing
29
28
  Requires-Dist: pytest; extra == "testing"
@@ -1,7 +1,7 @@
1
1
  certifi>=2024.2.2
2
2
  attrs>=23.2.0
3
- qase-api-client~=1.2.3
4
- qase-api-v2-client~=1.2.2
3
+ qase-api-client~=2.0.0
4
+ qase-api-v2-client~=2.0.0
5
5
  more_itertools
6
6
 
7
7
  [testing]