Add unit tests for filename input handling across all workflow frameworks#182
Merged
Merged
Conversation
Agent-Logs-Url: https://github.com/pythonworkflow/python-workflow-definition/sessions/d3136b3e-7700-4e91-9463-1cd77bb36e95 Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com>
…orks Agent-Logs-Url: https://github.com/pythonworkflow/python-workflow-definition/sessions/d3136b3e-7700-4e91-9463-1cd77bb36e95 Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com>
Agent-Logs-Url: https://github.com/pythonworkflow/python-workflow-definition/sessions/d3136b3e-7700-4e91-9463-1cd77bb36e95 Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
jan-janssen
May 14, 2026 10:31
View session
Removed test-generated temporary files from .gitignore.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds unit tests verifying that all workflow frameworks correctly treat input values containing dots — such as
"image.png"— as plain strings, without mistaking them for Python module paths or floating-point numbers. This tests the recently-added guard conditionnodes_types_dict[int(k)] == "function" and isinstance(v, str) and "." in vpresent in every framework'sload_workflow_json.Changes
tests/test_models.pytest_input_node_valid_valuesto include"image.png"and"path/to/file.tar.gz"alongside existing values.test_input_node_filename_value_roundtrip: verifies that dotted filenames (image.png,archive.tar.gz,report.2024.pdf,data.csv) survive model construction →model_dump→model_validateround-trips intact.test_workflow_with_filename_input_roundtrip: verifies a full workflow containing"image.png"as an input node value serialises and deserialises correctly throughdump_json/load_json_str.tests/test_purepython.pytest_purepython_filename_input: writes anechofunction module + workflow JSON with"image.png"as input, runs viaload_workflow_json, and asserts the result is the string"image.png".test_purepython_filename_input_multiple_dots: same test with"archive.tar.gz"to cover multi-dot filenames.tests/test_executorlib.pytest_executorlib_filename_input: same echo-function round-trip as purepython, executed throughSingleNodeExecutor.tests/test_jobflow.pytest_jobflow_filename_input: creates a single-job flow withfilename="image.png", writes the workflow JSON, verifies the JSON contains"image.png"as an input value, then loads, runs, and asserts the job output equals"image.png".tests/test_pyiron_base.pytest_pyiron_base_filename_input: same write → inspect JSON → load →pull()round-trip for the pyiron_base delayed-object framework.tests/test_pyiron_workflow.pytest_pyiron_workflow_filename_input: writes workflow JSON with"image.png"directly, loads it, and runs the workflow.test_pyiron_workflow_filename_input_programmatic: creates a workflow programmatically usingto_function_node, saves withwrite_workflow_json, verifies the JSON contains"image.png", then reloads withload_workflow_jsonand runs..gitignoreNotes