Python Script Export Test Cases

Notes

Scope: User export behavior for Python Script and Environment entities directly into the database.
If the environment changes (overwrite or create new), the script dependency ID must always be updated to the resulting environment.

User Export to Database Tests

#

Setup

User Decision

Expectation

1

Script: not existing
Environment: not existing

No prompt expected

Create new script in DB.
Create new environment in DB.

2

Script: not existing
Environment: existing with identical content

No prompt expected

Create new script in DB with dependency ID pointing to the existing environment.
Skip environment creation/update.

3

Script: not existing
Environment: existing with different content

Prompt for environment overwrite

Yes: Create new script with dependency ID pointing to the updated environment. Overwrite environment with same ID, increase version, keep old version in DB.
No: Create new script with dependency ID pointing to the new environment. Create a new environment with unique name/ID.

4

Script: existing with identical content
Environment: not existing

No prompt expected

Environment is created.
Script is stored as new version with same logical ID and updated dependency to the new environment.

5

Script: existing with identical content
Environment: existing with identical content

No prompt expected

Environment is skipped.
Script is stored as new version with same logical ID and updated dependency ID.

6

Script: existing with identical content
Environment: existing with different content

Prompt for environment overwrite

Yes: Keep script content, overwrite environment (same ID, version++), keep old environment version in DB.
No: Keep script content, create new environment with unique name/ID.
In both branches, update script dependency ID to the resulting environment.

7

Script: existing with different content
Environment: not existing

Prompt for script overwrite

Yes: Overwrite script (same ID, version++, old version remains), create environment.
No: Create script with unique name/ID, create environment.
In both branches, resulting script must depend on the created environment.

8

Script: existing with different content
Environment: existing with identical content

Prompt for script overwrite

Yes: Overwrite script, skip environment.
No: Create script with unique name/ID, skip environment.
In both branches, resulting script must depend on the existing environment.

9

Script: existing with different content
Environment: existing with different content

Prompt sequence: script first, then environment

Yes/Yes: Overwrite both. Keep IDs, increase versions, old versions remain in DB.
Yes/No: Overwrite script. Create new environment with unique name/ID.
No/Yes: Create new script with unique name/ID. Overwrite environment.
No/No: Create new script and new environment with unique name/ID.
In every branch where the environment result differs, update script dependency ID accordingly.

Local Export to Filesystem Tests

Notes

Scope: Local export behavior for Python Script and Environment entities to the filesystem (LibraryData/).
The environment (manifest) is always processed before the script, because the script’s DependencyID must point to the environment’s final LibraryElementID.
If the environment needs a prompt, the script export is deferred until the environment prompt is answered.
“Existing” means the file already exists on disk from a previous export.
Content comparison excludes dynamic parameters (LibraryElementID, Version, Name, FileName, DependencyID, DependencyCollection).

#

Setup

User Decision

Expectation

1

Script: not existing
Environment: not existing

No prompt expected

Create environment file with LibraryElementID and Version = 1.
Create script file with LibraryElementID, Version = 1, and DependencyID pointing to the environment’s LibraryElementID.

2

Script: not existing
Environment: existing with identical content

No prompt expected

Skip environment (no changes).
Create script file with DependencyID pointing to the existing environment’s LibraryElementID (read from existing meta file).

3

Script: not existing
Environment: existing with different content

Prompt for environment overwrite

Yes: Overwrite environment file (same LibraryElementID, Version++). Create script file with DependencyID pointing to the environment’s (unchanged) LibraryElementID.
No: Create new environment file with incremented name (e.g. _1) and a new LibraryElementID, Version = 1. Create script file with DependencyID pointing to the environment’s new LibraryElementID.

4

Script: existing with identical content
Environment: not existing

No prompt expected

Create environment file with LibraryElementID and Version = 1.
Skip script export (content identical).

5

Script: existing with identical content
Environment: existing with identical content

No prompt expected

Skip environment (no changes).
Skip script (no changes).
DependencyID in existing script meta remains unchanged (already correct from previous export).

6

Script: existing with identical content
Environment: existing with different content

Prompt for environment overwrite

Yes: Overwrite environment (same LibraryElementID, Version++). Update script meta file’s DependencyID to the environment’s (unchanged) LibraryElementID.
No: Create new environment file with incremented name and new LibraryElementID, Version = 1. Update script meta file’s DependencyID to the environment’s new LibraryElementID.

7

Script: existing with different content
Environment: not existing

Prompt for script overwrite

Yes: Create environment file. Overwrite script (same LibraryElementID, Version++). Script DependencyID points to environment’s LibraryElementID.
No: Create environment file. Create new script file with incremented name, new LibraryElementID, Version = 1. Script DependencyID points to environment’s LibraryElementID.

8

Script: existing with different content
Environment: existing with identical content

Prompt for script overwrite

Yes: Skip environment. Overwrite script (same LibraryElementID, Version++). Script DependencyID points to existing environment’s LibraryElementID.
No: Skip environment. Create new script file with incremented name, new LibraryElementID, Version = 1. Script DependencyID points to existing environment’s LibraryElementID.

9

Script: existing with different content
Environment: existing with different content
Prompt sequence:
environment first, then script
Yes/Yes: Overwrite environment (same ID, Version++). Overwrite script (same ID, Version++). Script DependencyID points to the environment’s (unchanged) LibraryElementID.
Yes/No: Overwrite environment (same ID, Version++). Create new script with incremented name, new LibraryElementID. Script DependencyID points to the environment’s (unchanged) LibraryElementID.
No/Yes: Create new environment with incremented name, new LibraryElementID. Overwrite script (same ID, Version++). Script DependencyID updated to point to the environment’s new LibraryElementID.
No/No: Create new environment with incremented name, new LibraryElementID. Create new script with incremented name, new LibraryElementID. Script DependencyID points to the environment’s new LibraryElementID.