pytestomatio 2.8.2.dev7__tar.gz → 2.8.2.dev9__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 (40) hide show
  1. {pytestomatio-2.8.2.dev7/pytestomatio.egg-info → pytestomatio-2.8.2.dev9}/PKG-INFO +3 -1
  2. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/README.md +2 -0
  3. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pyproject.toml +1 -1
  4. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/connect/connector.py +5 -5
  5. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/connect/s3_connector.py +15 -8
  6. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/main.py +2 -1
  7. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/utils/helper.py +5 -4
  8. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9/pytestomatio.egg-info}/PKG-INFO +3 -1
  9. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/LICENSE +0 -0
  10. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/__init__.py +0 -0
  11. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/connect/__init__.py +0 -0
  12. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/decor/__init__.py +0 -0
  13. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/decor/decorator_updater.py +0 -0
  14. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/decor/default.py +0 -0
  15. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/decor/pep8.py +0 -0
  16. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testing/__init__.py +0 -0
  17. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testing/code_collector.py +0 -0
  18. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testing/testItem.py +0 -0
  19. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testomatio/__init__.py +0 -0
  20. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testomatio/testRunConfig.py +0 -0
  21. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testomatio/testomat_item.py +0 -0
  22. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/testomatio/testomatio.py +0 -0
  23. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/utils/__init__.py +0 -0
  24. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/utils/parser_setup.py +0 -0
  25. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio/utils/validations.py +0 -0
  26. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio.egg-info/SOURCES.txt +0 -0
  27. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio.egg-info/dependency_links.txt +0 -0
  28. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio.egg-info/entry_points.txt +0 -0
  29. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio.egg-info/requires.txt +0 -0
  30. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/pytestomatio.egg-info/top_level.txt +0 -0
  31. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/setup.cfg +0 -0
  32. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/__init__.py +0 -0
  33. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/sub_mob/__init__.py +0 -0
  34. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/sub_mob/sub_sub_class_test.py +0 -0
  35. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/sub_mob/sub_sub_test.py +0 -0
  36. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/test_class_sub.py +0 -0
  37. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/sub/test_sub.py +0 -0
  38. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/test_class_root.py +0 -0
  39. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/test_decorators.py +0 -0
  40. {pytestomatio-2.8.2.dev7 → pytestomatio-2.8.2.dev9}/tests/test_root.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pytestomatio
3
- Version: 2.8.2.dev7
3
+ Version: 2.8.2.dev9
4
4
  Summary: Pytest plugin to sync test with testomat.io
5
5
  Author: Oleksii Ostapov, TikoQA
6
6
  Project-URL: Testomat.io, https://testomat.io/
@@ -219,6 +219,8 @@ def test_example():
219
219
  - test run labels, tags
220
220
 
221
221
  ## TODO
222
+ - retry test run update with less attributes, we get 500 from api
223
+ - handler non configured s3 bucket error
222
224
  - Fix test duration
223
225
 
224
226
  ## Contribution
@@ -197,6 +197,8 @@ def test_example():
197
197
  - test run labels, tags
198
198
 
199
199
  ## TODO
200
+ - retry test run update with less attributes, we get 500 from api
201
+ - handler non configured s3 bucket error
200
202
  - Fix test duration
201
203
 
202
204
  ## Contribution
@@ -13,7 +13,7 @@ version_provider = "pep621"
13
13
  update_changelog_on_bump = false
14
14
  [project]
15
15
  name = "pytestomatio"
16
- version = "2.8.2.dev7"
16
+ version = "2.8.2.dev9"
17
17
 
18
18
  dependencies = [
19
19
  "requests>=2.29.0",
@@ -121,14 +121,14 @@ class Connector:
121
121
 
122
122
  try:
123
123
  response = self.session.put(f'{self.base_url}/api/reporter/{id}', json=filtered_request)
124
- except ConnectionError:
125
- log.error(f'Failed to connect to {self.base_url}')
124
+ except ConnectionError as ce:
125
+ log.error(f'Failed to connect to {self.base_url}: {ce}')
126
126
  return
127
- except HTTPError:
128
- log.error(f'Failed to connect to {self.base_url}')
127
+ except HTTPError as he:
128
+ log.error(f'Failed to connect to {self.base_url}: {he}')
129
129
  return
130
130
  except Exception as e:
131
- log.error(f'Generic exception happened. Please report an issue. {e}')
131
+ log.error(f'Generic exception happened. Please report an issue: {e}')
132
132
  return
133
133
 
134
134
  if response.status_code == 200:
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  import boto3
2
3
  import logging
3
4
  from io import BytesIO
@@ -6,7 +7,7 @@ log = logging.getLogger(__name__)
6
7
  log.setLevel('INFO')
7
8
 
8
9
 
9
- def parse_endpoint(endpoint: str or None) -> str or None:
10
+ def parse_endpoint(endpoint: str = None) -> Optional[str]:
10
11
  if endpoint is None:
11
12
  return
12
13
  if endpoint.startswith('https://'):
@@ -17,11 +18,14 @@ def parse_endpoint(endpoint: str or None) -> str or None:
17
18
 
18
19
 
19
20
  class S3Connector:
20
- def __init__(self, aws_access_key_id: str or None = None,
21
- aws_secret_access_key: str or None = None,
22
- endpoint: str or None = None,
23
- bucket_name: str or None = None):
21
+ def __init__(self,
22
+ aws_region_name: Optional[str],
23
+ aws_access_key_id: Optional[str],
24
+ aws_secret_access_key: Optional[str],
25
+ endpoint: Optional[str],
26
+ bucket_name: Optional[str]):
24
27
 
28
+ self.aws_region_name = aws_region_name
25
29
  self.endpoint = parse_endpoint(endpoint)
26
30
  self.bucket_name = bucket_name
27
31
  self.client = None
@@ -35,11 +39,14 @@ class S3Connector:
35
39
  's3',
36
40
  endpoint_url=f'https://{self.endpoint}',
37
41
  aws_access_key_id=self.aws_access_key_id,
38
- aws_secret_access_key=self.aws_secret_access_key)
42
+ aws_secret_access_key=self.aws_secret_access_key,
43
+ region_name=self.aws_region_name
44
+ ),
45
+
39
46
  self._is_logged_in = True
40
47
  log.info('s3 session created')
41
48
 
42
- def upload_file(self, file_path: str, key: str = None, bucket_name: str = None) -> str or None:
49
+ def upload_file(self, file_path: str, key: str = None, bucket_name: str = None) -> Optional[str]:
43
50
  if not self._is_logged_in:
44
51
  log.warning('s3 session is not created, creating new one')
45
52
  return
@@ -54,7 +61,7 @@ class S3Connector:
54
61
  log.info(f'artifact {file_path} uploaded to s3://{bucket_name}/{key}')
55
62
  return f'https://{bucket_name}.{self.endpoint}/{key}'
56
63
 
57
- def upload_file_object(self, file_bytes: bytes, key: str, bucket_name: str = None) -> str or None:
64
+ def upload_file_object(self, file_bytes: bytes, key: str, bucket_name: str = None) -> Optional[str]:
58
65
  if not self._is_logged_in:
59
66
  log.warning('s3 session is not created, creating new one')
60
67
  return
@@ -111,7 +111,8 @@ def pytest_collection_modifyitems(session: Session, config: Config, items: list[
111
111
  run_details = pytest.testomatio.connector.update_test_run(**run.to_dict())
112
112
 
113
113
  if run_details is None:
114
- raise Exception('Test run failed to create. Reporting skipped')
114
+ log.error('Test run failed to create. Reporting skipped')
115
+ return
115
116
 
116
117
  artifact = run_details.get('artifacts')
117
118
  if artifact:
@@ -86,10 +86,11 @@ def add_and_enrich_tests(meta: list[TestItem], test_files: set,
86
86
 
87
87
  def read_env_s3_keys(artifact: dict) -> tuple:
88
88
  return (
89
- os.environ.get('ACCESS_KEY_ID') or artifact.get('ACCESS_KEY_ID'),
90
- os.environ.get('SECRET_ACCESS_KEY') or artifact.get('SECRET_ACCESS_KEY'),
91
- os.environ.get('ENDPOINT') or artifact.get('ENDPOINT'),
92
- os.environ.get('BUCKET') or artifact.get('BUCKET')
89
+ os.environ.get('REGION') or os.environ.get('S3_REGION') or artifact.get('REGION'),
90
+ os.environ.get('ACCESS_KEY_ID') or os.environ.get('S3_ACCESS_KEY_ID') or artifact.get('ACCESS_KEY_ID'),
91
+ os.environ.get('SECRET_ACCESS_KEY') or os.environ.get('S3_SECRET_ACCESS_KEY') or artifact.get('SECRET_ACCESS_KEY'),
92
+ os.environ.get('ENDPOINT') or os.environ.get('S3_ENDPOINT') or artifact.get('ENDPOINT'),
93
+ os.environ.get('BUCKET') or os.environ.get('S3_BUCKET') or artifact.get('BUCKET')
93
94
  )
94
95
 
95
96
  def safe_string_list(param: str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pytestomatio
3
- Version: 2.8.2.dev7
3
+ Version: 2.8.2.dev9
4
4
  Summary: Pytest plugin to sync test with testomat.io
5
5
  Author: Oleksii Ostapov, TikoQA
6
6
  Project-URL: Testomat.io, https://testomat.io/
@@ -219,6 +219,8 @@ def test_example():
219
219
  - test run labels, tags
220
220
 
221
221
  ## TODO
222
+ - retry test run update with less attributes, we get 500 from api
223
+ - handler non configured s3 bucket error
222
224
  - Fix test duration
223
225
 
224
226
  ## Contribution