robotframework-robotlog2rqm 1.4.1__tar.gz → 1.4.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 (25) hide show
  1. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/PKG-INFO +13 -20
  2. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/CRQM.py +15 -9
  3. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RobotLog2RQM.pdf +0 -0
  4. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/robotlog2rqm.py +9 -8
  5. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/version.py +2 -3
  6. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/PKG-INFO +13 -20
  7. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/LICENSE +0 -0
  8. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/README.rst +0 -0
  9. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/buildrecord.xml +0 -0
  10. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/configuration.xml +0 -0
  11. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/executionresult.xml +0 -0
  12. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/executionworkitem.xml +0 -0
  13. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/suiteexecutionrecord.xml +0 -0
  14. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/testcase.xml +0 -0
  15. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/testsuite.xml +0 -0
  16. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/RQM_templates/testsuitelog.xml +0 -0
  17. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/__init__.py +0 -0
  18. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/RobotLog2RQM/__main__.py +0 -0
  19. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/SOURCES.txt +0 -0
  20. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/dependency_links.txt +0 -0
  21. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/entry_points.txt +0 -0
  22. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/requires.txt +0 -0
  23. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/robotframework_robotlog2rqm.egg-info/top_level.txt +0 -0
  24. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/setup.cfg +0 -0
  25. {robotframework-robotlog2rqm-1.4.1 → robotframework-robotlog2rqm-1.4.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework-robotlog2rqm
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Imports robot result(s) to IBM Rational Quality Manager (RQM)
5
5
  Home-page: https://github.com/test-fullautomation/robotframework-robotlog2rqm
6
6
  Author: Tran Duy Ngoan
@@ -17,8 +17,7 @@ Requires-Python: >=3.0
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
 
20
- RobotLog2RQM Description
21
- ========================
20
+ # RobotLog2RQM Description
22
21
 
23
22
  The Python package **RobotLog2RQM** provides ability to import [Robot
24
23
  Framework test
@@ -38,14 +37,13 @@ Manager](https://www.ibm.com/support/knowledgecenter/SSYMRC_6.0.2/com.ibm.ration
38
37
  **RobotLog2RQM** tool is operating system independent and only works
39
38
  with Python 3.
40
39
 
41
- How to install
42
- --------------
40
+ ## How to install
43
41
 
44
42
  **RobotLog2RQM** can be installed in two different ways.
45
43
 
46
44
  1. Installation via PyPi (recommended for users)
47
45
 
48
- ``` {.}
46
+ ```
49
47
  pip install RobotLog2RQM
50
48
  ```
51
49
 
@@ -57,7 +55,7 @@ How to install
57
55
  - Clone the **robotframework-robotlog2rqm** repository to your
58
56
  machine.
59
57
 
60
- ``` {.}
58
+ ```
61
59
  git clone https://github.com/test-fullautomation/robotframework-robotlog2rqm.git
62
60
  ```
63
61
 
@@ -72,7 +70,7 @@ How to install
72
70
  packages you can find in the file `requirements.txt` in the
73
71
  repository root folder. Use pip to install them:
74
72
 
75
- ``` {.}
73
+ ```
76
74
  pip install -r ./requirements.txt
77
75
  ```
78
76
 
@@ -91,7 +89,7 @@ How to install
91
89
  to find **LaTeX**. This is defined in the **GenPackageDoc**
92
90
  configuration file
93
91
 
94
- ``` {.}
92
+ ```
95
93
  packagedoc\packagedoc_config.json
96
94
  ```
97
95
 
@@ -103,7 +101,7 @@ How to install
103
101
 
104
102
  - Use the following command to install **RobotLog2RQM**:
105
103
 
106
- ``` {.}
104
+ ```
107
105
  python setup.py install
108
106
  ```
109
107
 
@@ -114,8 +112,7 @@ be available (under *Scripts* folder of Python on Windows and
114
112
  In case above location is added to **PATH** environment variable then
115
113
  you can run it directly as operation system\'s command.
116
114
 
117
- How to use
118
- ----------
115
+ ## How to use
119
116
 
120
117
  **RobotLog2RQM** tool requires the Robot Framework `output.xml` result
121
118
  file(s) which will be imported, RQM information(e.g. host url, project,
@@ -219,8 +216,7 @@ cases and their results are reflected on RQM, please refer to
219
216
  [RobotLog2RQM tool's
220
217
  Documentation](https://github.com/test-fullautomation/robotframework-robotlog2rqm/blob/develop/RobotLog2RQM/RobotLog2RQM.pdf).
221
218
 
222
- Feedback
223
- --------
219
+ ## Feedback
224
220
 
225
221
  To give us a feedback, you can send an email to [Thomas
226
222
  Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com).
@@ -228,15 +224,13 @@ Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com).
228
224
  In case you want to report a bug or request any interesting feature,
229
225
  please don\'t hesitate to raise a ticket.
230
226
 
231
- Maintainers
232
- -----------
227
+ ## Maintainers
233
228
 
234
229
  [Thomas Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com)
235
230
 
236
231
  [Tran Duy Ngoan](mailto:Ngoan.TranDuy@vn.bosch.com)
237
232
 
238
- Contributors
239
- ------------
233
+ ## Contributors
240
234
 
241
235
  [Nguyen Huynh Tri Cuong](mailto:Cuong.NguyenHuynhTri@vn.bosch.com)
242
236
 
@@ -246,8 +240,7 @@ Contributors
246
240
 
247
241
  [Holger Queckenstedt](mailto:Holger.Queckenstedt@de.bosch.com)
248
242
 
249
- License
250
- -------
243
+ ## License
251
244
 
252
245
  Copyright 2020-2024 Robert Bosch GmbH
253
246
 
@@ -147,7 +147,7 @@ Resource type mapping:
147
147
  "testresult" : "Execution result: {testcase}",
148
148
  "testsuite" : "{testsuite}",
149
149
  "tser" : "TSER: {testsuite}",
150
- "suiteresult" : "Testsuite result: {testsuite}"
150
+ "suiteresult" : "Testsuite result: {testsuite}"
151
151
  }
152
152
 
153
153
  def __init__(self, user, password, project, host):
@@ -309,7 +309,7 @@ Disconnect from RQM.
309
309
  self.session.close()
310
310
 
311
311
  def config(self, plan_id, build_name=None, config_name=None,
312
- createmissing=False, updatetestcase=False, suite_id=None,
312
+ createmissing=False, updatetestcase=False, suite_id=None,
313
313
  stream=None, baseline=None, naming_convention=None):
314
314
  """
315
315
  Configure RQMClient with testplan ID, build, configuration, createmissing, ...
@@ -371,7 +371,7 @@ Configure RQMClient with testplan ID, build, configuration, createmissing, ...
371
371
  self.updatetestcase = updatetestcase
372
372
  self.testplan.id = plan_id
373
373
  self.testsuite.id = suite_id
374
-
374
+
375
375
  # Add Configuration-Context header information due to given stream or baseline
376
376
  if stream:
377
377
  res = self.getAllByResource('stream')
@@ -386,7 +386,7 @@ Configure RQMClient with testplan ID, build, configuration, createmissing, ...
386
386
  self.headers['Configuration-Context'] = stream_id
387
387
  self.session.headers = self.headers
388
388
  break
389
-
389
+
390
390
  if not bFoundStream:
391
391
  raise Exception(f"Cannot found given stream '{stream}'")
392
392
  else:
@@ -404,7 +404,7 @@ Configure RQMClient with testplan ID, build, configuration, createmissing, ...
404
404
  self.headers['Configuration-Context'] = baseline_id
405
405
  self.session.headers = self.headers
406
406
  break
407
-
407
+
408
408
  if not bFoundBaseline:
409
409
  raise Exception(f"Cannot found given baseline '{baseline}'")
410
410
  else:
@@ -454,7 +454,7 @@ Configure RQMClient with testplan ID, build, configuration, createmissing, ...
454
454
 
455
455
  # get all team-areas for testcase template
456
456
  self.getAllTeamAreas()
457
-
457
+
458
458
 
459
459
  except Exception as error:
460
460
  raise Exception('Configure RQMClient failed: %s'%error)
@@ -1096,7 +1096,7 @@ Return testcase execution record template from provided information.
1096
1096
  nsmap = root.nsmap
1097
1097
  # prepare required data for template
1098
1098
  TCERTittle = self.__genResourceName('tcer', testcaseName)
1099
-
1099
+
1100
1100
 
1101
1101
  # Check tcid is internalid or externalid
1102
1102
  testcaseURL = self.integrationURL('testcase', testcaseID)
@@ -1462,7 +1462,7 @@ Return testsuite execution record (TSER) template from provided configuration na
1462
1462
 
1463
1463
  def createTestsuiteResultTemplate(self, testsuiteID, testsuiteName, TSERID,
1464
1464
  lTCER, lTCResults, resultState, startTime='',
1465
- endTime='', duration='', sOwnerID=''):
1465
+ endTime='', duration='', sOwnerID='', buildrecordID=''):
1466
1466
  """
1467
1467
  Return testsuite execution result template from provided configuration name.
1468
1468
 
@@ -1581,7 +1581,7 @@ Return testsuite execution result template from provided configuration name.
1581
1581
  oState.text = prefixState + 'inconclusive'
1582
1582
  if resultState.lower() in self.RESULT_STATES:
1583
1583
  oState.text = prefixState +resultState.lower()
1584
-
1584
+
1585
1585
  for idx, sTCER in enumerate(lTCER):
1586
1586
  sTCERURL = self.integrationURL('executionworkitem', sTCER)
1587
1587
  oSuiteElem = etree.Element('{http://jazz.net/xmlns/alm/qm/v0.1/tsl/v0.1/}suiteelement', nsmap=nsmap)
@@ -1599,6 +1599,12 @@ Return testsuite execution result template from provided configuration name.
1599
1599
  oExecutionResult.set('href', sTCResultURL)
1600
1600
  root.append(oExecutionResult)
1601
1601
 
1602
+ if buildrecordID:
1603
+ oBuildRecord = etree.Element('{http://jazz.net/xmlns/alm/qm/v0.1/}buildrecord', nsmap=nsmap)
1604
+ buildrecordURL = self.integrationURL('buildrecord', buildrecordID)
1605
+ oBuildRecord.set('href', buildrecordURL)
1606
+ root.append(oBuildRecord)
1607
+
1602
1608
  # return xml template as string
1603
1609
  sTSResultxml = etree.tostring(oTree)
1604
1610
  return sTSResultxml
@@ -319,7 +319,7 @@ Parse and validate content of configuration file
319
319
  fatal_error=True)
320
320
 
321
321
  if not is_valid_config(dConfig, bExitOnFail=False):
322
- Logger.log_error(f"Error in naming configuration file '{path_file}'.",
322
+ Logger.log_error(f"Error in naming configuration file '{path_file}'.",
323
323
  fatal_error=True)
324
324
  return dConfig
325
325
 
@@ -441,7 +441,7 @@ Avalable arguments in command line:
441
441
  cmdParser.add_argument('password', type=str, help='password for RQM login.')
442
442
  cmdParser.add_argument('testplan', type=str,
443
443
  help='testplan ID for this execution.')
444
- cmdParser.add_argument('--testsuite', type=str,
444
+ cmdParser.add_argument('--testsuite', type=str,
445
445
  help="testsuite ID for this execution. If 'new', then create a new testsuite for this execution.")
446
446
  cmdParser.add_argument('--recursive',action="store_true",
447
447
  help='if set, then the path is searched recursively for log files to be imported.')
@@ -744,7 +744,7 @@ Process robot test for importing to RQM.
744
744
  # Append lTestcaseIDs (for linking testplan/testsuite)
745
745
  if _tc_id not in RQMClient.lTestcaseIDs:
746
746
  RQMClient.lTestcaseIDs.append(_tc_id)
747
-
747
+
748
748
  # Collect starttime and endtime for testsuite log creation
749
749
  RQMClient.lStartTimes.append(_tc_start_time)
750
750
  RQMClient.lEndTimes.append(_tc_end_time)
@@ -844,7 +844,7 @@ Flow to import Robot results to RQM:
844
844
  Logger.log()
845
845
  Logger.log(f"Login RQM as user '{args.user}' successfully!")
846
846
  else:
847
- Logger.log_error("Could not login to RQM: 'Unkown reason'.")
847
+ Logger.log_error("Could not login to RQM: 'Unknown reason'.")
848
848
  except Exception as reason:
849
849
  Logger.log_error(f"Could not login to RQM: '{str(reason)}'.")
850
850
 
@@ -860,7 +860,7 @@ Flow to import Robot results to RQM:
860
860
  metadata_info['version_sw'] = None
861
861
  metadata_info['project'] = None
862
862
  RQMClient.config(args.testplan, metadata_info['version_sw'],
863
- metadata_info['project'], args.createmissing, args.updatetestcase,
863
+ metadata_info['project'], args.createmissing, args.updatetestcase,
864
864
  args.testsuite, stream=args.stream, baseline=args.baseline,
865
865
  naming_convention=dNamingConvention)
866
866
 
@@ -906,10 +906,11 @@ Flow to import Robot results to RQM:
906
906
  sTSERID,
907
907
  RQMClient.lTCERIDs,
908
908
  RQMClient.lTCResultIDs,
909
- DRESULT_MAPPING[result.suite.status]
909
+ DRESULT_MAPPING[result.suite.status],
910
+ buildrecordID=RQMClient.build.id
910
911
  )
911
912
  res_TSLog = RQMClient.createResource('testsuitelog', testsuite_result_data)
912
- sSuiteResultID = res_TSLog['id']
913
+ sSuiteResultID = res_TSLog['id']
913
914
  if res_TSLog['success']:
914
915
  Logger.log(f"Created testsuite result with id {sSuiteResultID} successfully.", indent=2)
915
916
  else:
@@ -939,7 +940,7 @@ Flow to import Robot results to RQM:
939
940
  Logger.log(f"Link all imported test cases with testplan {args.testplan} successfully.")
940
941
  except Exception as reason:
941
942
  Logger.log_error(f"Link all imported test cases with testplan failed.\nReason: {reason}", fatal_error=True)
942
-
943
+
943
944
  # Update testcase(s) with generated ID(s)
944
945
  # Under developing
945
946
 
@@ -18,6 +18,5 @@
18
18
  #
19
19
  # Version and date of RobotLog2RQM
20
20
  #
21
- VERSION = "1.4.1"
22
- VERSION_DATE = "20.09.2024"
23
-
21
+ VERSION = "1.4.2"
22
+ VERSION_DATE = "18.02.2025"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework-robotlog2rqm
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Imports robot result(s) to IBM Rational Quality Manager (RQM)
5
5
  Home-page: https://github.com/test-fullautomation/robotframework-robotlog2rqm
6
6
  Author: Tran Duy Ngoan
@@ -17,8 +17,7 @@ Requires-Python: >=3.0
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
 
20
- RobotLog2RQM Description
21
- ========================
20
+ # RobotLog2RQM Description
22
21
 
23
22
  The Python package **RobotLog2RQM** provides ability to import [Robot
24
23
  Framework test
@@ -38,14 +37,13 @@ Manager](https://www.ibm.com/support/knowledgecenter/SSYMRC_6.0.2/com.ibm.ration
38
37
  **RobotLog2RQM** tool is operating system independent and only works
39
38
  with Python 3.
40
39
 
41
- How to install
42
- --------------
40
+ ## How to install
43
41
 
44
42
  **RobotLog2RQM** can be installed in two different ways.
45
43
 
46
44
  1. Installation via PyPi (recommended for users)
47
45
 
48
- ``` {.}
46
+ ```
49
47
  pip install RobotLog2RQM
50
48
  ```
51
49
 
@@ -57,7 +55,7 @@ How to install
57
55
  - Clone the **robotframework-robotlog2rqm** repository to your
58
56
  machine.
59
57
 
60
- ``` {.}
58
+ ```
61
59
  git clone https://github.com/test-fullautomation/robotframework-robotlog2rqm.git
62
60
  ```
63
61
 
@@ -72,7 +70,7 @@ How to install
72
70
  packages you can find in the file `requirements.txt` in the
73
71
  repository root folder. Use pip to install them:
74
72
 
75
- ``` {.}
73
+ ```
76
74
  pip install -r ./requirements.txt
77
75
  ```
78
76
 
@@ -91,7 +89,7 @@ How to install
91
89
  to find **LaTeX**. This is defined in the **GenPackageDoc**
92
90
  configuration file
93
91
 
94
- ``` {.}
92
+ ```
95
93
  packagedoc\packagedoc_config.json
96
94
  ```
97
95
 
@@ -103,7 +101,7 @@ How to install
103
101
 
104
102
  - Use the following command to install **RobotLog2RQM**:
105
103
 
106
- ``` {.}
104
+ ```
107
105
  python setup.py install
108
106
  ```
109
107
 
@@ -114,8 +112,7 @@ be available (under *Scripts* folder of Python on Windows and
114
112
  In case above location is added to **PATH** environment variable then
115
113
  you can run it directly as operation system\'s command.
116
114
 
117
- How to use
118
- ----------
115
+ ## How to use
119
116
 
120
117
  **RobotLog2RQM** tool requires the Robot Framework `output.xml` result
121
118
  file(s) which will be imported, RQM information(e.g. host url, project,
@@ -219,8 +216,7 @@ cases and their results are reflected on RQM, please refer to
219
216
  [RobotLog2RQM tool's
220
217
  Documentation](https://github.com/test-fullautomation/robotframework-robotlog2rqm/blob/develop/RobotLog2RQM/RobotLog2RQM.pdf).
221
218
 
222
- Feedback
223
- --------
219
+ ## Feedback
224
220
 
225
221
  To give us a feedback, you can send an email to [Thomas
226
222
  Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com).
@@ -228,15 +224,13 @@ Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com).
228
224
  In case you want to report a bug or request any interesting feature,
229
225
  please don\'t hesitate to raise a ticket.
230
226
 
231
- Maintainers
232
- -----------
227
+ ## Maintainers
233
228
 
234
229
  [Thomas Pollerspöck](mailto:Thomas.Pollerspoeck@de.bosch.com)
235
230
 
236
231
  [Tran Duy Ngoan](mailto:Ngoan.TranDuy@vn.bosch.com)
237
232
 
238
- Contributors
239
- ------------
233
+ ## Contributors
240
234
 
241
235
  [Nguyen Huynh Tri Cuong](mailto:Cuong.NguyenHuynhTri@vn.bosch.com)
242
236
 
@@ -246,8 +240,7 @@ Contributors
246
240
 
247
241
  [Holger Queckenstedt](mailto:Holger.Queckenstedt@de.bosch.com)
248
242
 
249
- License
250
- -------
243
+ ## License
251
244
 
252
245
  Copyright 2020-2024 Robert Bosch GmbH
253
246