Skip to content

Release 1.0#19

Merged
Snooz82 merged 15 commits into
mainfrom
Release-1.0
Jul 25, 2026
Merged

Release 1.0#19
Snooz82 merged 15 commits into
mainfrom
Release-1.0

Conversation

@Snooz82

@Snooz82 Snooz82 commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings July 25, 2026 10:43
@Snooz82
Snooz82 merged commit 712961e into main Jul 25, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR packages the “Release 1.0” set of changes: it updates the public version to 1.0.0, refreshes the generated TestBench data model, adds TestBench report version compatibility checks, and reorganizes/expands end-user documentation while adjusting configuration keys and behaviors.

Changes:

  • Add TestBench report manifest.json version checking and expose supported server versions in the CLI UX.
  • Refresh the generated dataclass model + add a reproducible model-generation task/config (datamodel-code-generator).
  • Update configuration schema/keys and generation behavior (e.g., optional output ZIP creation), plus doc restructuring into docs/.

Reviewed changes

Copilot reviewed 43 out of 44 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/test_zip_file_generation.py Removes pytest coverage for ZIP generation behavior.
tests/test_robot_files_should_not_contain_invalid_characters.py Removes pytest coverage for filename sanitization.
tests/test_missing_files.py Removes pytest coverage for invalid input path handling.
tests/test_data/configurations/valid_config.json Removes test fixture configuration file.
tests/test_data/configurations/invalid_config.json Removes test fixture configuration file.
testbench2robotframework/utils.py Adds report version-check helpers and switches to `X
testbench2robotframework/testsuite_write.py Adds optional “create output ZIP” behavior when generating suites.
testbench2robotframework/testbench2robotframework.py Adds version check on input report; accepts `dict
testbench2robotframework/testbench2rf.py Validates/compiles regex patterns; adjusts import-prefix detection and phase-pattern field name.
testbench2robotframework/robotframework2testbench.py Adds version check on input report; updates typing annotations.
testbench2robotframework/result_writer.py Adds safe default keyword execution objects; updates config field usage and typing.
testbench2robotframework/model.py Regenerates the OpenAPI-derived dataclass model and injects __VERSION__.
testbench2robotframework/json_writer.py Updates typing to `A
testbench2robotframework/json_reader.py Updates typing to `X
testbench2robotframework/execution_artifacts.py Updates typing to `X
testbench2robotframework/config.py Adds create_output_zip, renames phasePattern to phase_pattern, updates config keys.
testbench2robotframework/cli.py Improves CLI description/version output to include compatible TestBench server versions.
testbench2robotframework/init.py Bumps package version to 1.0.0.
tasks.py Adds an invoke task to regenerate model.py from OpenAPI + post-processing.
README.md Replaces long-form README with links to docs/ and release info.
pyproject.toml Updates Ruff target to Py3.10; adds datamodel-code-generator tooling config/dependency.
pydantic_model.py Removes legacy generated Pydantic model file.
oldModel.py Removes legacy model artifact.
ExampleConfiguration/toml_config.toml Updates example config keys/values (e.g., compound keyword logging, regex keys).
ExampleConfiguration/pyproject_example.toml Updates example config keys/values (e.g., compound keyword logging, regex keys).
ExampleConfiguration/json_config.json Updates example JSON config keys/structure to new schema.
docs/usage/generate_tests.md Adds new documentation page for generate-tests.
docs/usage/fetch_results.md Adds new documentation page for fetch-results.
docs/usage/category.json Adds docs category metadata for Usage section.
docs/intro.md Adds docs landing/intro page.
docs/getting_started/quick_start.md Adds quick-start workflow documentation.
docs/getting_started/installation.md Adds installation guide.
docs/getting_started/category.json Adds docs category metadata for Getting started section.
docs/configuration/pyproject_config.md Adds detailed configuration reference/examples.
docs/configuration/overview.md Adds configuration overview and precedence rules.
docs/configuration/cli_options.md Adds CLI options reference documentation.
docs/configuration/category.json Adds docs category metadata for Configuration section.
DEVELOPMENT.md Updates contributor workflow (build/publish steps, model regeneration instructions).
CreatePiPWheel.sh Removes legacy publish helper script.
CreatePiPWheel.bat Removes legacy publish helper script.
create_json_schema.py Minor cleanup/formatting changes for schema generation helper.
atest/robot/libs/pyproject_config.py Reformats atest helper; still writes TOML config.
atest/robot/libs/json_config.py Removes trailing whitespace line in atest helper.
.gitignore Ignores openapi.yml (model input spec file).
Comments suppressed due to low confidence (2)

testbench2robotframework/testbench2rf.py:513

  • Same capture-group issue as above: _get_keyword_import_prefix uses group(1) even though patterns may rely on the named resourceName group.
    testbench2robotframework/testbench2rf.py:747
  • _get_resource_name also assumes the desired value is in capture group 1, which conflicts with allowing multi-group patterns where resourceName may not be the first group.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +33 to +36
try:
manifest = read_manifest_json_from_testbench_report(testbench_report)
except Exception as e:
sys.exit(ERROR_COULD_NOT_READ_VERSION)
Comment on lines +23 to 26
perform_version_check(Path(json_input_report))

configuration = Configuration.from_dict(config)
setup_logger(configuration)
Comment on lines 156 to 165
test_uid = test_chain.name if test_chain else test.name
itb_test_case = self.json_reader.read_test_case(test_uid) # TODO What if name != UID
if not itb_test_case:
logger.warning(f"No JSON file corresponding to test '{test_uid}' found in report.")
return
self.protocol_test_case: TestCaseExecutionForImport = TestCaseExecutionForImport(
test_uid, itb_test_case.exec.key, None, None, None
)
if itb_test_case.exec is None:
itb_test_case.exec = from_dict(TestCaseExecutionDetails, {})
if itb_test_case.exec.key in ["", "-1"]:
logger.warning(
Comment on lines +236 to 241
def _get_keyword_import(self, test_step: TBKeywordCall, keyword_path: str) -> tuple[str, str]:
for pattern in self.lib_pattern_list:
match = pattern.search(keyword_path)
if match:
return LIBRARY_IMPORT_TYPE, match.group("resourceName").strip()
return LIBRARY_IMPORT_TYPE, match.group(1).strip()
for pattern in self.res_pattern_list:
Comment on lines 1 to +4
import tomli_w

data = {
"tool": {
"testbench2robotframework": {
"generationDirectory": "{root}/toml_config_tests"
}
}
}
data = {"tool": {"testbench2robotframework": {"generationDirectory": "{root}/toml_config_tests"}}}

@Snooz82
Snooz82 deleted the Release-1.0 branch July 25, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants