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.
- testbench2robotframework-2.0.0/.github/dependabot.yml +12 -0
- testbench2robotframework-2.0.0/.github/workflows/release-binaries.yml +122 -0
- testbench2robotframework-2.0.0/.github/workflows/trigger-docs-release.yml +49 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/.gitignore +168 -169
- testbench2robotframework-2.0.0/DEVELOPMENT.md +50 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/json_config.json +40 -40
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/pyproject_example.toml +44 -37
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/ExampleConfiguration/toml_config.toml +44 -37
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/LICENSE +201 -201
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/MANIFEST.in +5 -5
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/PKG-INFO +2 -2
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/README.md +18 -18
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/README_old.md +284 -284
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/json_config_tests/1_tfs.robot +25 -25
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/libs/json_config.py +45 -45
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/libs/pyproject_config.py +8 -8
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/resources/file_management.resource +16 -16
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/resources/testbench2robotframework_cli.resource +24 -24
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/json_config.robot +38 -38
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/no_config_argument.robot +23 -23
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/atest/robot/rf_tests/cli_interface/write/toml_config.robot +37 -37
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/create_json_schema.py +45 -45
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/configuration/_category_.json +3 -3
- testbench2robotframework-2.0.0/docs/configuration/cli_options.md +131 -0
- testbench2robotframework-2.0.0/docs/configuration/overview.md +555 -0
- testbench2robotframework-2.0.0/docs/configuration/pyproject_config.md +217 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/_category_.json +3 -3
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/installation.md +37 -31
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/getting_started/quick_start.md +66 -54
- testbench2robotframework-2.0.0/docs/intro.md +76 -0
- testbench2robotframework-2.0.0/docs/media/func_kw.png +0 -0
- testbench2robotframework-2.0.0/docs/media/itorx-exec-overview.png +0 -0
- testbench2robotframework-2.0.0/docs/media/itorx-exec.png +0 -0
- testbench2robotframework-2.0.0/docs/media/robot-setup-teardown.png +0 -0
- testbench2robotframework-2.0.0/docs/media/robot-suite-code.png +0 -0
- testbench2robotframework-2.0.0/docs/media/robot-suite-log.png +0 -0
- testbench2robotframework-2.0.0/docs/media/tc-table.png +0 -0
- testbench2robotframework-2.0.0/docs/media/tcs-browser.png +0 -0
- testbench2robotframework-2.0.0/docs/media/tcs-exec-comment.png +0 -0
- testbench2robotframework-2.0.0/docs/media/tcs-exec-in-TB.png +0 -0
- testbench2robotframework-2.0.0/docs/media/tcs-sequence.png +0 -0
- testbench2robotframework-2.0.0/docs/media/te-tree.png +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/docs/usage/_category_.json +3 -3
- testbench2robotframework-2.0.0/docs/usage/fetch_results.md +164 -0
- testbench2robotframework-2.0.0/docs/usage/generate_tests.md +262 -0
- testbench2robotframework-2.0.0/pyinstaller/imbusTB.ico +0 -0
- testbench2robotframework-2.0.0/pyinstaller/run.py +24 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/pyproject.toml +186 -184
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/requirements.txt +142 -140
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/robot.toml +5 -5
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/tasks.py +69 -69
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/__init__.py +20 -20
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/__main__.py +19 -19
- testbench2robotframework-2.0.0/testbench2robotframework/blocked_filter.py +91 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/cli.py +293 -265
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/config.py +310 -263
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/execution_artifacts.py +254 -244
- testbench2robotframework-2.0.0/testbench2robotframework/execution_comment.py +157 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/html_parser.py +20 -20
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/json_reader.py +178 -159
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/json_writer.py +84 -67
- testbench2robotframework-2.0.0/testbench2robotframework/keyword_comment.py +337 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/log.py +27 -27
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/model.py +1925 -1924
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/model_utils.py +107 -107
- testbench2robotframework-2.0.0/testbench2robotframework/protocol_merge.py +169 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/result_writer.py +1028 -723
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/robotframework2testbench.py +32 -32
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/testbench2rf.py +944 -901
- testbench2robotframework-2.0.0/testbench2robotframework/testbench2robotframework.py +63 -0
- testbench2robotframework-2.0.0/testbench2robotframework/testsuite_write.py +113 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench2robotframework/utils.py +271 -218
- testbench2robotframework-0.9.2b7/DEVELOPMENT.md +0 -35
- testbench2robotframework-0.9.2b7/docs/configuration/cli_options.md +0 -112
- testbench2robotframework-0.9.2b7/docs/configuration/overview.md +0 -93
- testbench2robotframework-0.9.2b7/docs/configuration/pyproject_config.md +0 -171
- testbench2robotframework-0.9.2b7/docs/intro.md +0 -36
- testbench2robotframework-0.9.2b7/docs/usage/fetch_results.md +0 -77
- testbench2robotframework-0.9.2b7/docs/usage/generate_tests.md +0 -78
- testbench2robotframework-0.9.2b7/testbench2robotframework/testbench2robotframework.py +0 -53
- testbench2robotframework-0.9.2b7/testbench2robotframework/testsuite_write.py +0 -58
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/LibrarySubdivision.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/Unbenannt.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/generated.png +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/libraries.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/resources.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/rfLibraryRootsTestBench.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testbench_rfLibraryRegex.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testbench_rfResourceRegex.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/images/testthemen.PNG +0 -0
- {testbench2robotframework-0.9.2b7 → testbench2robotframework-2.0.0}/testbench-tools.zip +0 -0
|
@@ -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
|
-
.
|
|
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
|
-
"
|
|
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
|
+
}
|