testbench2robotframework 1.0.0__tar.gz → 2.0.1rc1__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 (111) hide show
  1. testbench2robotframework-2.0.1rc1/.github/dependabot.yml +12 -0
  2. testbench2robotframework-2.0.1rc1/.github/workflows/release-binaries.yml +122 -0
  3. testbench2robotframework-2.0.1rc1/.github/workflows/trigger-docs-release.yml +49 -0
  4. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/.gitignore +167 -169
  5. testbench2robotframework-2.0.1rc1/DEVELOPMENT.md +50 -0
  6. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/ExampleConfiguration/json_config.json +40 -40
  7. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/ExampleConfiguration/pyproject_example.toml +44 -37
  8. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/ExampleConfiguration/toml_config.toml +44 -37
  9. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/LICENSE +201 -201
  10. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/MANIFEST.in +5 -5
  11. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/PKG-INFO +7 -5
  12. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/README.md +18 -18
  13. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/json_config_tests/1_tfs.robot +25 -25
  14. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/libs/json_config.py +45 -45
  15. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/libs/pyproject_config.py +8 -8
  16. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/resources/file_management.resource +16 -16
  17. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/resources/testbench2robotframework_cli.resource +24 -24
  18. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/rf_tests/cli_interface/write/json_config.robot +38 -38
  19. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/rf_tests/cli_interface/write/no_config_argument.robot +23 -23
  20. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/atest/robot/rf_tests/cli_interface/write/toml_config.robot +37 -37
  21. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/create_json_schema.py +45 -45
  22. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/docs/configuration/_category_.json +3 -3
  23. testbench2robotframework-2.0.1rc1/docs/configuration/cli_options.md +131 -0
  24. testbench2robotframework-2.0.1rc1/docs/configuration/overview.md +646 -0
  25. testbench2robotframework-2.0.1rc1/docs/configuration/pyproject_config.md +217 -0
  26. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/docs/getting_started/_category_.json +3 -3
  27. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/docs/getting_started/installation.md +37 -31
  28. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/docs/getting_started/quick_start.md +66 -54
  29. testbench2robotframework-2.0.1rc1/docs/intro.md +76 -0
  30. testbench2robotframework-2.0.1rc1/docs/media/func_kw.png +0 -0
  31. testbench2robotframework-2.0.1rc1/docs/media/itorx-exec-overview.png +0 -0
  32. testbench2robotframework-2.0.1rc1/docs/media/itorx-exec.png +0 -0
  33. testbench2robotframework-2.0.1rc1/docs/media/robot-setup-teardown.png +0 -0
  34. testbench2robotframework-2.0.1rc1/docs/media/robot-suite-code.png +0 -0
  35. testbench2robotframework-2.0.1rc1/docs/media/robot-suite-log.png +0 -0
  36. testbench2robotframework-2.0.1rc1/docs/media/tc-table.png +0 -0
  37. testbench2robotframework-2.0.1rc1/docs/media/tcs-browser.png +0 -0
  38. testbench2robotframework-2.0.1rc1/docs/media/tcs-exec-comment.png +0 -0
  39. testbench2robotframework-2.0.1rc1/docs/media/tcs-exec-in-TB.png +0 -0
  40. testbench2robotframework-2.0.1rc1/docs/media/tcs-sequence.png +0 -0
  41. testbench2robotframework-2.0.1rc1/docs/media/te-tree.png +0 -0
  42. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/docs/usage/_category_.json +3 -3
  43. testbench2robotframework-2.0.1rc1/docs/usage/fetch_results.md +194 -0
  44. testbench2robotframework-2.0.1rc1/docs/usage/generate_tests.md +297 -0
  45. testbench2robotframework-2.0.1rc1/pyinstaller/imbusTB.ico +0 -0
  46. testbench2robotframework-2.0.1rc1/pyinstaller/run.py +24 -0
  47. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/pyproject.toml +192 -184
  48. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/requirements.txt +142 -140
  49. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/robot.toml +5 -5
  50. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/tasks.py +69 -69
  51. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/__init__.py +20 -20
  52. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/__main__.py +19 -19
  53. testbench2robotframework-2.0.1rc1/testbench2robotframework/attachments.py +66 -0
  54. testbench2robotframework-2.0.1rc1/testbench2robotframework/blocked_filter.py +91 -0
  55. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/cli.py +304 -265
  56. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/config.py +316 -263
  57. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/execution_artifacts.py +262 -244
  58. testbench2robotframework-2.0.1rc1/testbench2robotframework/execution_comment.py +157 -0
  59. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/html_parser.py +20 -20
  60. testbench2robotframework-2.0.1rc1/testbench2robotframework/json_codec.py +55 -0
  61. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/json_reader.py +176 -159
  62. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/json_writer.py +65 -67
  63. testbench2robotframework-2.0.1rc1/testbench2robotframework/keyword_comment.py +337 -0
  64. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/log.py +27 -27
  65. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/model.py +1925 -1924
  66. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/model_utils.py +119 -107
  67. testbench2robotframework-2.0.1rc1/testbench2robotframework/protocol_merge.py +169 -0
  68. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/result_writer.py +1050 -723
  69. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/robotframework2testbench.py +32 -32
  70. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench2robotframework/testbench2rf.py +1067 -901
  71. testbench2robotframework-2.0.1rc1/testbench2robotframework/testbench2robotframework.py +39 -0
  72. testbench2robotframework-2.0.1rc1/testbench2robotframework/testsuite_write.py +125 -0
  73. testbench2robotframework-2.0.1rc1/testbench2robotframework/utils.py +317 -0
  74. testbench2robotframework-2.0.1rc1/tests/test_attachment_parameters.py +159 -0
  75. testbench2robotframework-2.0.1rc1/tests/test_attachments_export.py +247 -0
  76. testbench2robotframework-2.0.1rc1/tests/test_blocked_filter.py +177 -0
  77. testbench2robotframework-2.0.1rc1/tests/test_clean.py +122 -0
  78. testbench2robotframework-2.0.1rc1/tests/test_config_optional_options.py +96 -0
  79. testbench2robotframework-2.0.1rc1/tests/test_execution_artifacts.py +96 -0
  80. testbench2robotframework-2.0.1rc1/tests/test_fetch_results_output.py +160 -0
  81. testbench2robotframework-2.0.1rc1/tests/test_json_codec.py +29 -0
  82. testbench2robotframework-2.0.1rc1/tests/test_json_writer_tree_order.py +96 -0
  83. testbench2robotframework-2.0.1rc1/tests/test_keyword_comment.py +207 -0
  84. testbench2robotframework-2.0.1rc1/tests/test_main_protocol_reader.py +51 -0
  85. testbench2robotframework-2.0.1rc1/tests/test_open_report.py +67 -0
  86. testbench2robotframework-2.0.1rc1/tests/test_protocol_merge.py +196 -0
  87. testbench2robotframework-2.0.1rc1/tests/test_protocol_references.py +109 -0
  88. testbench2robotframework-2.0.1rc1/tests/test_protocol_rows.py +136 -0
  89. testbench2robotframework-2.0.1rc1/tests/test_subdivision_patterns.py +284 -0
  90. testbench2robotframework-2.0.1rc1/tests/test_tree_verdicts.py +172 -0
  91. testbench2robotframework-1.0.0/DEVELOPMENT.md +0 -35
  92. testbench2robotframework-1.0.0/README_old.md +0 -284
  93. testbench2robotframework-1.0.0/docs/configuration/cli_options.md +0 -112
  94. testbench2robotframework-1.0.0/docs/configuration/overview.md +0 -93
  95. testbench2robotframework-1.0.0/docs/configuration/pyproject_config.md +0 -171
  96. testbench2robotframework-1.0.0/docs/intro.md +0 -36
  97. testbench2robotframework-1.0.0/docs/usage/fetch_results.md +0 -77
  98. testbench2robotframework-1.0.0/docs/usage/generate_tests.md +0 -78
  99. testbench2robotframework-1.0.0/testbench2robotframework/testbench2robotframework.py +0 -53
  100. testbench2robotframework-1.0.0/testbench2robotframework/testsuite_write.py +0 -58
  101. testbench2robotframework-1.0.0/testbench2robotframework/utils.py +0 -218
  102. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/LibrarySubdivision.PNG +0 -0
  103. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/Unbenannt.PNG +0 -0
  104. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/generated.png +0 -0
  105. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/libraries.PNG +0 -0
  106. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/resources.PNG +0 -0
  107. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/rfLibraryRootsTestBench.PNG +0 -0
  108. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/testbench_rfLibraryRegex.PNG +0 -0
  109. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/testbench_rfResourceRegex.PNG +0 -0
  110. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/images/testthemen.PNG +0 -0
  111. {testbench2robotframework-1.0.0 → testbench2robotframework-2.0.1rc1}/testbench-tools.zip +0 -0
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ day: "monday"
8
+ open-pull-requests-limit: 5
9
+ groups:
10
+ python-dependencies:
11
+ patterns:
12
+ - "*"
@@ -0,0 +1,122 @@
1
+ name: Release binaries
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ defaults:
12
+ run:
13
+ shell: bash
14
+
15
+ jobs:
16
+ build_wheel:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.10"
26
+
27
+ - name: Install build tooling
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install flit
31
+
32
+ - name: Build wheel
33
+ run: flit build --format wheel
34
+
35
+ - name: Upload wheel artifact
36
+ uses: actions/upload-artifact@v4
37
+ with:
38
+ name: wheel-dist
39
+ path: dist/*.whl
40
+
41
+ build_binaries:
42
+ needs: build_wheel
43
+ runs-on: ${{ matrix.os }}
44
+ strategy:
45
+ fail-fast: false
46
+ matrix:
47
+ include:
48
+ - os: ubuntu-latest
49
+ platform: linux
50
+ artifact_name: testbench2robotframework-linux
51
+ binary_name: testbench2robotframework
52
+ - os: macos-latest
53
+ platform: macos
54
+ artifact_name: testbench2robotframework-macos
55
+ binary_name: testbench2robotframework
56
+ - os: windows-latest
57
+ platform: windows
58
+ artifact_name: testbench2robotframework-windows.exe
59
+ binary_name: testbench2robotframework.exe
60
+ steps:
61
+ - name: Checkout
62
+ uses: actions/checkout@v4
63
+
64
+ - name: Set up Python
65
+ uses: actions/setup-python@v5
66
+ with:
67
+ python-version: "3.10"
68
+
69
+ - name: Install runtime dependencies
70
+ run: |
71
+ python -m pip install --upgrade pip
72
+ pip install pyinstaller .
73
+
74
+ - name: Build executable
75
+ run: |
76
+ ICON_PATH=$(python -c "from pathlib import Path; print(Path('pyinstaller/imbusTB.ico').resolve())")
77
+ pyinstaller pyinstaller/run.py \
78
+ -i "$ICON_PATH" \
79
+ --onefile \
80
+ --name testbench2robotframework \
81
+ --clean \
82
+ -y \
83
+ --distpath "pyinstaller/dist/${{ matrix.platform }}" \
84
+ --workpath "pyinstaller/build/${{ matrix.platform }}" \
85
+ --specpath "pyinstaller/build/${{ matrix.platform }}"
86
+
87
+ - name: Collect build output
88
+ run: |
89
+ mkdir -p release
90
+ cp "pyinstaller/dist/${{ matrix.platform }}/${{ matrix.binary_name }}" "release/${{ matrix.artifact_name }}"
91
+
92
+ - name: Upload executable artifact
93
+ uses: actions/upload-artifact@v4
94
+ with:
95
+ name: ${{ matrix.artifact_name }}
96
+ path: release/${{ matrix.artifact_name }}
97
+
98
+ publish_release:
99
+ needs:
100
+ - build_wheel
101
+ - build_binaries
102
+ runs-on: ubuntu-latest
103
+ steps:
104
+ - name: Download artifacts
105
+ uses: actions/download-artifact@v4
106
+ with:
107
+ path: release-assets
108
+ merge-multiple: true
109
+
110
+ - name: List assets
111
+ run: ls -R release-assets
112
+
113
+ - name: Upload assets to release
114
+ uses: softprops/action-gh-release@v2
115
+ with:
116
+ files: |
117
+ release-assets/*.whl
118
+ release-assets/testbench2robotframework-linux
119
+ release-assets/testbench2robotframework-macos
120
+ release-assets/testbench2robotframework-windows.exe
121
+ env:
122
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,49 @@
1
+ name: Trigger Documentation Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ trigger-docs:
9
+ name: Trigger ecosystem docs versioning
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Derive tool metadata
13
+ id: meta
14
+ run: |
15
+ # Tool ID = repository name (must match tools.config.json in ecosystem-docs)
16
+ TOOL_ID="${{ github.event.repository.name }}"
17
+
18
+ # Version = release tag, strip leading 'v' if present
19
+ RAW_TAG="${{ github.event.release.tag_name }}"
20
+ VERSION="${RAW_TAG#v}"
21
+
22
+ echo "tool_id=${TOOL_ID}" >> $GITHUB_OUTPUT
23
+ echo "version=${VERSION}" >> $GITHUB_OUTPUT
24
+ echo "tag=${RAW_TAG}" >> $GITHUB_OUTPUT
25
+
26
+ echo "Tool: ${TOOL_ID}"
27
+ echo "Version: ${VERSION}"
28
+ echo "Tag: ${RAW_TAG}"
29
+
30
+ - name: Trigger ecosystem documentation workflow
31
+ run: |
32
+ jq -n \
33
+ --arg tool_id "${{ steps.meta.outputs.tool_id }}" \
34
+ --arg version "${{ steps.meta.outputs.version }}" \
35
+ --arg tag "${{ steps.meta.outputs.tag }}" \
36
+ --arg source_repo "${{ github.repository }}" \
37
+ '{
38
+ event_type: "tool-docs-release",
39
+ client_payload: {
40
+ tool_id: $tool_id,
41
+ version: $version,
42
+ tag: $tag,
43
+ source_repo: $source_repo
44
+ }
45
+ }' | gh api repos/${{ github.repository_owner }}/testbench-ecosystem-documentation/dispatches \
46
+ --method POST \
47
+ --input -
48
+ env:
49
+ GH_TOKEN: ${{ secrets.ECOSYSTEM_DOCS_TOKEN }}
@@ -1,169 +1,167 @@
1
- # Byte-compiled / optimized / DLL files
2
- __pycache__/
3
- *.py[cod]
4
- *$py.class
5
-
6
- # C extensions
7
- *.so
8
- ignore/
9
- .ruff_cache/
10
- tests/
11
-
12
- # Distribution / packaging
13
- .Python
14
- build/
15
- develop-eggs/
16
- dist/
17
- downloads/
18
- eggs/
19
- .eggs/
20
- lib/
21
- lib64/
22
- parts/
23
- sdist/
24
- var/
25
- wheels/
26
- pip-wheel-metadata/
27
- share/python-wheels/
28
- *.egg-info/
29
- .installed.cfg
30
- *.egg
31
- MANIFEST
32
-
33
- # PyInstaller
34
- # Usually these files are written by a python script from a template
35
- # before PyInstaller builds the exe, so as to inject date/other infos into it.
36
- *.manifest
37
- *.spec
38
-
39
- # Installer logs
40
- pip-log.txt
41
- pip-delete-this-directory.txt
42
-
43
- # Unit test / coverage reports
44
- htmlcov/
45
- .tox/
46
- .nox/
47
- .coverage
48
- .coverage.*
49
- .cache
50
- nosetests.xml
51
- coverage.xml
52
- *.cover
53
- *.py,cover
54
- .hypothesis/
55
- .pytest_cache/
56
-
57
- # Translations
58
- *.mo
59
- *.pot
60
-
61
- # Django stuff:
62
- *.log
63
- local_settings.py
64
- db.sqlite3
65
- db.sqlite3-journal
66
-
67
- # Flask stuff:
68
- instance/
69
- .webassets-cache
70
-
71
- # Scrapy stuff:
72
- .scrapy
73
-
74
- # Sphinx documentation
75
- docs/_build/
76
-
77
- # PyBuilder
78
- target/
79
-
80
- # Jupyter Notebook
81
- .ipynb_checkpoints
82
-
83
- # IPython
84
- profile_default/
85
- ipython_config.py
86
-
87
- # pyenv
88
- .python-version
89
-
90
- # pipenv
91
- # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
- # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
- # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
- # install all needed dependencies.
95
- #Pipfile.lock
96
-
97
- # PEP 582; used by e.g. github.com/David-OConnor/pyflow
98
- __pypackages__/
99
-
100
- # Celery stuff
101
- celerybeat-schedule
102
- celerybeat.pid
103
-
104
- # SageMath parsed files
105
- *.sage.py
106
-
107
- # Environments
108
- .env
109
- .venv
110
- env/
111
- venv/
112
- ENV/
113
- env.bak/
114
- venv.bak/
115
-
116
- # Spyder project settings
117
- .spyderproject
118
- .spyproject
119
-
120
- # Rope project settings
121
- .ropeproject
122
-
123
- # mkdocs documentation
124
- /site
125
-
126
- # mypy
127
- .mypy_cache/
128
- .dmypy.json
129
- dmypy.json
130
-
131
- # Pyre type checker
132
- .pyre/
133
- *.egg-info
134
- __pycache__
135
- build
136
- .vscode
137
- json_report
138
- testbench2robotframework.log*
139
- result_example
140
- Generated/
141
- TestBenchExport
142
- .idea
143
- *.zip
144
- json-report_out
145
- report_out
146
- dist
147
- IssueDebugging/
148
- MyResources/
149
- log.html
150
- output.xml
151
- playwright-log.txt
152
- results/
153
- report.html
154
- ExampleConfiguration/toml_config_minimal.toml
155
- ExampleConfiguration/toml_new_names.toml
156
- README_new.md
157
- report/
158
- reportt/
159
- itorx_report/
160
- config.json
161
- resources/
162
- robot.toml
163
- .robot.toml
164
- cli-export-config.json
165
- cli-import-config.json
166
- robot_tests/
167
- reports/
168
- .github/
169
- openapi.yml
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+ ignore/
9
+ .ruff_cache/
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ eggs/
18
+ .eggs/
19
+ lib/
20
+ lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ pip-wheel-metadata/
26
+ share/python-wheels/
27
+ *.egg-info/
28
+ .installed.cfg
29
+ *.egg
30
+ MANIFEST
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .nox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ *.py,cover
53
+ .hypothesis/
54
+ .pytest_cache/
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django stuff:
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+
66
+ # Flask stuff:
67
+ instance/
68
+ .webassets-cache
69
+
70
+ # Scrapy stuff:
71
+ .scrapy
72
+
73
+ # Sphinx documentation
74
+ docs/_build/
75
+
76
+ # PyBuilder
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+ *.egg-info
133
+ __pycache__
134
+ build
135
+ .vscode
136
+ json_report
137
+ testbench2robotframework.log*
138
+ result_example
139
+ Generated/
140
+ TestBenchExport
141
+ .idea
142
+ *.zip
143
+ json-report_out
144
+ report_out
145
+ dist
146
+ IssueDebugging/
147
+ MyResources/
148
+ log.html
149
+ output.xml
150
+ playwright-log.txt
151
+ results/
152
+ report.html
153
+ ExampleConfiguration/toml_config_minimal.toml
154
+ ExampleConfiguration/toml_new_names.toml
155
+ README_new.md
156
+ report/
157
+ reportt/
158
+ itorx_report/
159
+ config.json
160
+ resources/
161
+ robot.toml
162
+ .robot.toml
163
+ cli-export-config.json
164
+ cli-import-config.json
165
+ robot_tests/
166
+ reports/
167
+ openapi.yml
@@ -0,0 +1,50 @@
1
+ # Contributing
2
+
3
+ ## Setting up project for the first time
4
+
5
+ 1. Create venv and activate it:
6
+ ```bash
7
+ python -m venv .venv
8
+ source .venv/bin/activate # Linux/macOS
9
+ .venv\scripts\activate # Windows
10
+ ```
11
+ 2. Install project with dev dependencies:
12
+ ```bash
13
+ pip install -e .[dev]
14
+ ```
15
+
16
+ ## Release process
17
+
18
+ This project is published with `flit`.
19
+
20
+ 1. Prepare the release
21
+ 1. Make sure you are on the correct branch and your working tree is clean.
22
+ 2. Update the version in `testbench2robotframework/__init__.py` (`__version__`).
23
+ 3. Commit the version change (and other release-related updates).
24
+ 2. Build artifacts locally (without upload)
25
+ ```bash
26
+ flit build
27
+ ```
28
+ This creates source and wheel distributions in `dist/` so you can verify the build output.
29
+ 3. Publish to PyPI
30
+ ```bash
31
+ flit publish
32
+ ```
33
+ `flit publish` builds, validates, and uploads the package.
34
+ 4. Verify the release
35
+ 1. Confirm the new version is visible on PyPI.
36
+ 2. Create and push a git tag for the released version (for example `v1.1.0`).
37
+
38
+ If you only need to validate packaging locally, use `flit build` and skip the publish step.
39
+
40
+ ## Updating the data model
41
+
42
+ `testbench2robotframework/model.py` is generated from the TestBench OpenAPI spec using [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator).
43
+
44
+ 1. Download the OpenAPI YAML from the TestBench Swagger documentation (e.g. `openapi.yml`).
45
+ 2. Generate the model (settings are in `pyproject.toml` under `[tool.datamodel-codegen]`):
46
+ ```bash
47
+ invoke generate-model --input openapi.yml
48
+ ```
49
+ This runs `datamodel-codegen` and injects `__VERSION__` from the spec's `info.version` field into `model.py`.
50
+ 3. Review the generated file
@@ -1,40 +1,40 @@
1
- {
2
- "library-root": [
3
- "Keywords",
4
- "RF-Library"
5
- ],
6
- "resource-root": [
7
- "RF-Resource"
8
- ],
9
- "fully-qualified": false,
10
- "output-directory": "{root}/Generated",
11
- "log-suite-numbering": true,
12
- "resource-directory": "{root}/Resources",
13
- "resource-directory-regex": ".*\\[Robot-Resources\\].*",
14
- "clean": true,
15
- "compound-keyword-logging": "GROUP",
16
- "reference-behaviour": "ATTACHMENT",
17
- "attachment-conflict-behaviour": "USE_EXISTING",
18
- "testcase-splitting-regex": "^StopWithRestart\\..*",
19
- "phase-pattern": "{testcase} : Phase {index}/{length}",
20
- "metadata": {},
21
- "library-mapping": {
22
- "SeleniumLibrary": "SeleniumLibrary timeout=10 implicit_wait=1 run_on_failure=Capture Page Screenshot",
23
- "SuperRemoteLibrary": "Remote http://127.0.0.1:8270 WITH NAME SuperRemoteLibrary"
24
- },
25
- "resource-mapping": {
26
- "MyKeywords": "{root}/../MyKeywords.resource",
27
- "MyOtherKeywords": "{resourceDirectory}/subdir/MyOtherKeywords.resource"
28
- },
29
- "forced-import": {
30
- "libraries": [],
31
- "resources": [],
32
- "variables": []
33
- },
34
- "console-logging": {
35
- "logLevel": "debug"
36
- },
37
- "file-logging": {
38
- "logLevel": "info"
39
- }
40
- }
1
+ {
2
+ "library-root": [
3
+ "Keywords",
4
+ "RF-Library"
5
+ ],
6
+ "resource-root": [
7
+ "RF-Resource"
8
+ ],
9
+ "fully-qualified": false,
10
+ "output-directory": "{root}/Generated",
11
+ "log-suite-numbering": true,
12
+ "resource-directory": "{root}/Resources",
13
+ "resource-directory-regex": ".*\\[Robot-Resources\\].*",
14
+ "clean": true,
15
+ "compound-keyword-logging": "GROUP",
16
+ "reference-behaviour": "ATTACHMENT",
17
+ "attachment-conflict-behaviour": "USE_EXISTING",
18
+ "testcase-splitting-regex": "^StopWithRestart\\..*",
19
+ "phase-pattern": "{testcase} : Phase {index}/{length}",
20
+ "metadata": {},
21
+ "library-mapping": {
22
+ "Browser": "Browser timeout=10s run_on_failure=Take Screenshot",
23
+ "SuperRemoteLibrary": "Remote http://127.0.0.1:8270 WITH NAME SuperRemoteLibrary"
24
+ },
25
+ "resource-mapping": {
26
+ "MyKeywords": "{root}/../MyKeywords.resource",
27
+ "MyOtherKeywords": "{resourceDirectory}/subdir/MyOtherKeywords.resource"
28
+ },
29
+ "forced-import": {
30
+ "libraries": [],
31
+ "resources": [],
32
+ "variables": []
33
+ },
34
+ "console-logging": {
35
+ "logLevel": "debug"
36
+ },
37
+ "file-logging": {
38
+ "logLevel": "info"
39
+ }
40
+ }