testbench2robotframework 0.9.2b7__tar.gz → 2.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.
Files changed (91) hide show
  1. testbench2robotframework-2.0.0/.github/dependabot.yml +12 -0
  2. testbench2robotframework-2.0.0/.github/workflows/release-binaries.yml +122 -0
  3. testbench2robotframework-2.0.0/.github/workflows/trigger-docs-release.yml +49 -0
  4. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/.gitignore +168 -169
  5. testbench2robotframework-2.0.0/DEVELOPMENT.md +50 -0
  6. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/json_config.json +40 -40
  7. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/pyproject_example.toml +44 -37
  8. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/toml_config.toml +44 -37
  9. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/LICENSE +201 -201
  10. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/MANIFEST.in +5 -5
  11. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/PKG-INFO +2 -2
  12. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/README.md +18 -18
  13. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/README_old.md +284 -284
  14. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/json_config_tests/1_tfs.robot +25 -25
  15. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/libs/json_config.py +45 -45
  16. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/libs/pyproject_config.py +8 -8
  17. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/resources/file_management.resource +16 -16
  18. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/resources/testbench2robotframework_cli.resource +24 -24
  19. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/json_config.robot +38 -38
  20. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/no_config_argument.robot +23 -23
  21. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/toml_config.robot +37 -37
  22. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/create_json_schema.py +45 -45
  23. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/configuration/_category_.json +3 -3
  24. testbench2robotframework-2.0.0/docs/configuration/cli_options.md +131 -0
  25. testbench2robotframework-2.0.0/docs/configuration/overview.md +555 -0
  26. testbench2robotframework-2.0.0/docs/configuration/pyproject_config.md +217 -0
  27. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/_category_.json +3 -3
  28. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/installation.md +37 -31
  29. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/quick_start.md +66 -54
  30. testbench2robotframework-2.0.0/docs/intro.md +76 -0
  31. testbench2robotframework-2.0.0/docs/media/func_kw.png +0 -0
  32. testbench2robotframework-2.0.0/docs/media/itorx-exec-overview.png +0 -0
  33. testbench2robotframework-2.0.0/docs/media/itorx-exec.png +0 -0
  34. testbench2robotframework-2.0.0/docs/media/robot-setup-teardown.png +0 -0
  35. testbench2robotframework-2.0.0/docs/media/robot-suite-code.png +0 -0
  36. testbench2robotframework-2.0.0/docs/media/robot-suite-log.png +0 -0
  37. testbench2robotframework-2.0.0/docs/media/tc-table.png +0 -0
  38. testbench2robotframework-2.0.0/docs/media/tcs-browser.png +0 -0
  39. testbench2robotframework-2.0.0/docs/media/tcs-exec-comment.png +0 -0
  40. testbench2robotframework-2.0.0/docs/media/tcs-exec-in-TB.png +0 -0
  41. testbench2robotframework-2.0.0/docs/media/tcs-sequence.png +0 -0
  42. testbench2robotframework-2.0.0/docs/media/te-tree.png +0 -0
  43. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/usage/_category_.json +3 -3
  44. testbench2robotframework-2.0.0/docs/usage/fetch_results.md +164 -0
  45. testbench2robotframework-2.0.0/docs/usage/generate_tests.md +262 -0
  46. testbench2robotframework-2.0.0/pyinstaller/imbusTB.ico +0 -0
  47. testbench2robotframework-2.0.0/pyinstaller/run.py +24 -0
  48. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/pyproject.toml +186 -184
  49. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/requirements.txt +142 -140
  50. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/robot.toml +5 -5
  51. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/tasks.py +69 -69
  52. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/__init__.py +20 -20
  53. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/__main__.py +19 -19
  54. testbench2robotframework-2.0.0/testbench2robotframework/blocked_filter.py +91 -0
  55. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/cli.py +293 -265
  56. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/config.py +310 -263
  57. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/execution_artifacts.py +254 -244
  58. testbench2robotframework-2.0.0/testbench2robotframework/execution_comment.py +157 -0
  59. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/html_parser.py +20 -20
  60. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/json_reader.py +178 -159
  61. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/json_writer.py +84 -67
  62. testbench2robotframework-2.0.0/testbench2robotframework/keyword_comment.py +337 -0
  63. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/log.py +27 -27
  64. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/model.py +1925 -1924
  65. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/model_utils.py +107 -107
  66. testbench2robotframework-2.0.0/testbench2robotframework/protocol_merge.py +169 -0
  67. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/result_writer.py +1028 -723
  68. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/robotframework2testbench.py +32 -32
  69. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/testbench2rf.py +944 -901
  70. testbench2robotframework-2.0.0/testbench2robotframework/testbench2robotframework.py +63 -0
  71. testbench2robotframework-2.0.0/testbench2robotframework/testsuite_write.py +113 -0
  72. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/utils.py +271 -218
  73. testbench2robotframework-0.9.2b7/DEVELOPMENT.md +0 -35
  74. testbench2robotframework-0.9.2b7/docs/configuration/cli_options.md +0 -112
  75. testbench2robotframework-0.9.2b7/docs/configuration/overview.md +0 -93
  76. testbench2robotframework-0.9.2b7/docs/configuration/pyproject_config.md +0 -171
  77. testbench2robotframework-0.9.2b7/docs/intro.md +0 -36
  78. testbench2robotframework-0.9.2b7/docs/usage/fetch_results.md +0 -77
  79. testbench2robotframework-0.9.2b7/docs/usage/generate_tests.md +0 -78
  80. testbench2robotframework-0.9.2b7/testbench2robotframework/testbench2robotframework.py +0 -53
  81. testbench2robotframework-0.9.2b7/testbench2robotframework/testsuite_write.py +0 -58
  82. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/LibrarySubdivision.PNG +0 -0
  83. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/Unbenannt.PNG +0 -0
  84. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/generated.png +0 -0
  85. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/libraries.PNG +0 -0
  86. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/resources.PNG +0 -0
  87. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/rfLibraryRootsTestBench.PNG +0 -0
  88. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testbench_rfLibraryRegex.PNG +0 -0
  89. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testbench_rfResourceRegex.PNG +0 -0
  90. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testthemen.PNG +0 -0
  91. {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/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,168 @@
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
+ 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
+ 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
+ }