Skip to content

Commit d94afc4

Browse files
chore: Remove old integ test code. (#502)
Signed-off-by: Karthik Bekal Pattathana <133984042+karthikbekalp@users.noreply.github.com>
1 parent 1332323 commit d94afc4

336 files changed

Lines changed: 1450 additions & 7394 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ See [DEVELOPMENT.md](https://github.com/aws-deadline/deadline-cloud-for-cinema-4
2323

2424
- Have you made changes to the submitter?
2525
If yes, please include the results of both the automated tests and any manual tests that you ran.
26-
Also, check if there is a change to the `integ_test_helpers.py` file within cinema4d_submitter as a result of your submitter change.
2726
*delete text ending here*
2827

2928
### Was this change documented?
@@ -51,4 +50,4 @@ please ensure that the title of your commit follows our conventional commit guid
5150

5251
----
5352

54-
*By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.*
53+
*By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.*

.github/workflows/integ_macos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ jobs:
6464
# Create the hatch environment first so that pip's install output
6565
# (which can include marker-mismatch messages containing quotes)
6666
# doesn't pollute the captured Python path below.
67-
hatch env create integ-xa11y
68-
HATCH_PYTHON=$(hatch -e integ-xa11y run python -c "import os,sys; print(os.path.realpath(sys.executable))")
67+
hatch env create integ
68+
HATCH_PYTHON=$(hatch -e integ run python -c "import os,sys; print(os.path.realpath(sys.executable))")
6969
SETUP_PYTHON=$(python3 -c "import os,sys; print(os.path.realpath(sys.executable))")
7070
for BIN_PATH in "$SETUP_PYTHON" "$HATCH_PYTHON"; do
7171
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" \
@@ -151,7 +151,7 @@ jobs:
151151
echo "SSM_SESSION_ID=$ssmSessionId" >> "$GITHUB_ENV"
152152
echo "SSM session id: ${ssmSessionId:-<not captured>}"
153153
154-
hatch run integ-xa11y:test
154+
hatch run integ:test
155155
156156
- name: Tear down
157157
if: always()

.github/workflows/integ_windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
"SSM_SESSION_ID=$ssmSessionId" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
134134
if ($ssmSessionId) { Write-Host "SSM session id: $ssmSessionId" } else { Write-Host "SSM session id: <not captured>" }
135135
136-
hatch run integ-xa11y:test
136+
hatch run integ:test
137137
138138
- name: Tear down
139139
if: always()

.github/workflows/integration_tests.yml

Lines changed: 0 additions & 45 deletions
This file was deleted.

.github/workflows/release_publish.yml

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
UnitTests:
3131
needs: [TagRelease]
32-
name: Unit and Integration Tests
32+
name: Unit Tests
3333
uses: ./.github/workflows/code_quality.yml
3434
with:
3535
tag: ${{ needs.TagRelease.outputs.tag }}
@@ -66,13 +66,6 @@ jobs:
6666
id-token: write
6767
contents: read
6868

69-
ManualTestGate:
70-
needs: [TagRelease, BuildInstaller]
71-
runs-on: ubuntu-latest
72-
environment: release-gate
73-
steps:
74-
- run: echo "Manual testing approved for ${{ needs.TagRelease.outputs.tag }}"
75-
7669
PreRelease:
7770
needs: [TagRelease, UnitTests, Xa11yWindows, Xa11yMacOS]
7871
uses: aws-deadline/.github/.github/workflows/reusable_prerelease.yml@mainline
@@ -116,7 +109,7 @@ jobs:
116109
:
117110
118111
ReleaseInstaller:
119-
needs: [TagRelease, IsCondaReady, ManualTestGate]
112+
needs: [TagRelease, IsCondaReady]
120113
uses: aws-deadline/.github/.github/workflows/reusable_release_installers.yml@mainline
121114
secrets: inherit
122115
permissions:

.gitignore

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,7 @@ __pycache__/
1111

1212
/dependency_bundle/
1313
/dev_install/
14-
/job_bundle_output_tests/*/scene/renders
15-
/job_bundle_output_tests/*/scene/*.c4d
16-
/job_bundle_output_tests/*/scene/*.deadline_render_settings.json
17-
/job_bundle_output_tests/*/scene/tex
18-
/job_bundle_output_tests/*/*.psd
19-
/test/integ/**/generated_bundle/*
20-
/test/integ_xa11y/**/actual/
14+
/test/integ/**/actual/
2115
/scripts/dependency_bundle/
2216
/wheels/
2317
**/otls/backup

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ hatch run test -k "test_name" # One test by name
5050
hatch run all:test # All supported Python versions
5151
```
5252

53-
**Integration Tests (Windows Only):** See [`test/AGENTS.md`](test/AGENTS.md).
53+
**Integration Tests:** See [`test/AGENTS.md`](test/AGENTS.md).
5454

5555
## Linting
5656

DEVELOPMENT.md

Lines changed: 35 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,13 @@ To develop the Python code in this repository you will need:
3232
of Python on the same system. When running unit tests against all supported Python versions, for instance.
3333
2. The [hatch](https://github.com/pypa/hatch) package installed (`pip install --upgrade hatch`) into your Python environment.
3434
3. An install of a supported version of Cinema 4D.
35-
4. A valid AWS Account.
36-
5. An AWS Deadline Cloud Farm to run jobs on. We recommend following the quickstart in the Deadline Cloud console to create a
37-
Queue with the default Queue Environment, and a Service Managed Fleet.
3835

39-
You can develop on any Windows workstation.
36+
The xa11y integration suite uses an offline mock Deadline backend, so it does
37+
not require an AWS account or farm. A real AWS account, farm, queue, and fleet
38+
are only required when testing jobs on Deadline Cloud.
39+
40+
Submitter and xa11y development are supported on Windows and macOS. Adaptor
41+
development is supported on Windows and Linux.
4042

4143
## Software Architecture
4244

@@ -51,7 +53,7 @@ from any directory of this repository:
5153
* `hatch build` - To build the installable Python wheel and sdist packages into the `dist/` directory.
5254
* `hatch run test` - To run the PyTest unit tests found in the `test/unit` directory. See [Testing](#testing).
5355
* `hatch run all:test` - To run the PyTest unit tests against all available supported versions of Python.
54-
* `hatch run integ:test` - To run all the integration tests against your current build.
56+
* `hatch run integ:test` - To run the xa11y integration tests against your current build.
5557
* `hatch run lint` - To check that the package's formatting adheres to our standards.
5658
* `hatch run fmt` - To automatically reformat all code to adhere to our formatting standards.
5759
* `hatch shell` - Enter a shell environment that will have Python set up to import your development version of this package.
@@ -90,7 +92,7 @@ The tests for the plug-in have two forms:
9092

9193
##### Unit Tests
9294

93-
Unit tests are all located under the `test/deadline_submitter_for_cinema4d/unit` directory of this repository. If you are adding
95+
Unit tests are located under the `test/unit/deadline_submitter_for_cinema4d/` directory of this repository. If you are adding
9496
or modifying functionality, then you will almost always want to be writing one or more unit tests to demonstrate that your
9597
logic behaves as expected and that future changes do not accidentally break your change.
9698

@@ -186,7 +188,7 @@ This should have automatically added the latest patch onto the S3 bucket for the
186188

187189
##### Unit tests
188190

189-
Unit tests are all located under the `test/deadline_adaptor_for_cinema4d/unit` directory of this repository. If you are adding
191+
Unit tests are located under the `test/unit/deadline_adaptor_for_cinema4d/` directory of this repository. If you are adding
190192
or modifying functionality, then you will almost always want to be writing one or more unit tests to demonstrate that your
191193
logic behaves as expected and that future changes do not accidentally break your change.
192194

@@ -200,83 +202,34 @@ hatch run test
200202

201203
### Integration Tests
202204

203-
We run integration tests by running it in Cinema 4D's python i.e. c4dpy for submitter and using Commandline.exe for adaptor tests.
204-
205-
#### Test Flow
206-
1. Scene generation:
207-
- Each test case uses scene generation scripts to create test scenes (and assets if necessary)
208-
- Scenes are created with specific configurations for testing different scenarios
209-
210-
2. Job bundle generation:
211-
- Generated scenes are processed through the submitter code
212-
- Job bundles are exported to a temporary location within the /integ folder.
205+
The xa11y suite launches the real Cinema 4D submitter, drives its UI against an
206+
offline mock Deadline backend, validates the exported job bundle, and renders
207+
the bundle on Windows. Cinema 4D and renderer licensing must be configured.
213208

214-
3. Validation of job bundle:
215-
- Exported bundles are compared against expected bundles
216-
- Tests verify structure and content of the exports.
217-
218-
4. Scene rendering:
219-
- The job bundles are run using OpenJD `run` command with Cinema 4D Commandline.
209+
#### Test Structure
220210

221-
5. Validation of output files:
222-
- The generated output files are compared with expected scene files.
211+
```text
212+
test/integ/
213+
├── test_cinema4d.py # Orchestrates scene build, UI export, and validation
214+
├── conftest.py # Cinema 4D and mock Deadline fixtures
215+
├── submitter_ui.py # xa11y controls for the submitter dialog
216+
├── utils.py # Scene, bundle, and render helpers
217+
├── fixtures/auto_open_submitter/ # Test-only plugin that opens the submitter
218+
└── test_cases/<name>/
219+
├── input/
220+
│ ├── scene.py # Builds the Cinema 4D scene
221+
│ └── configure.py # Optional xa11y dialog configuration
222+
├── expected/
223+
│ ├── job_bundle/ # Golden bundle files
224+
│ └── renders/ # Golden render images
225+
└── actual/ # Gitignored runtime output
226+
```
223227

224-
#### Test Structure
228+
Run the suite with:
225229

226-
<pre>
227-
/test
228-
/integ
229-
/test_scenes/
230-
/scene_1
231-
/expected_job_bundle/ # Reference job bundle for validation
232-
asset_references.yaml
233-
parameter_values.yaml
234-
template.yaml
235-
/expected_job_output/
236-
renders/
237-
output files
238-
/scene
239-
scene.py # Contains test scene generation scripts
240-
conftest.py # Test configuration and fixtures
241-
test_cinema4d.py # Runs all the tests scenes in a parametrized fashion.
242-
</pre>
243-
244-
You would have to setup Cinema 4D and Redshift licensing before you run the tests.
245-
For Cinema 4D licensing, set environment variable by using `$env:g_licenseServerURL = <your-license-server-host>:<port>` on Windows Powershell.
246-
For redshift licensing, set the environment variable by using `$env:redshift_LICENSE = <port>@<your-license-server-host>` on Windows Powershell.
247-
Or
248-
You can also run `c4dpy` and `Commandline.exe` separately and set the license information there.
249-
1. Set the environment variable `C4D_LOCATION` to the installation folder of Cinema 4D.
250-
1. `set C4D_LOCATION=<Cinema 4D location>` on Windows Command or `$env:C4D_LOCATION = <Cinema 4D location>` on Windows Powershell.
251-
1. The default location for `Cinema 4D` on Windows is `C:\Program Files\Maxon Cinema 4D 2026\`. This location would be automatically used if the directory exists.
252-
2. For running the adaptor tests, we would need to install `pywin32` to the installation paths as its an adaptor dependency.
253-
254-
> **Important: Python version must match Cinema 4D's bundled Python.**
255-
>
256-
> Cinema 4D 2026 bundles Python 3.11. Your system Python and hatch must also use 3.11 to avoid DLL version conflicts.
257-
>
258-
> Using a different version (e.g., 3.13) will cause pywin32 DLLs to be built for the wrong version, resulting in:
259-
> ```
260-
> ImportError: Module use of python313.dll conflicts with this version of Python.
261-
> ```
262-
>
263-
> To ensure compatibility:
264-
> 1. Install Python 3.11 and make it your default (`python --version` should show 3.11.x)
265-
> 2. Install hatch using Python 3.11 (`python -m pip install hatch`)
266-
> 3. Use Python 3.11's pip for the pywin32 install below
267-
>
268-
> You can verify Cinema 4D's Python version by checking the `resource/modules/python/libs/` folder inside your Cinema 4D installation directory.
269-
270-
2.1 Run `pip install pywin32==308 -t <your Python site-packages location>`
271-
* e.g. `pip install pywin32==308 -t "C:\Program Files\Maxon Cinema 4D 2026\resource\modules\python\libs\win64\lib\site-packages"`
272-
273-
During testing, pywin32's version 308 was required because of other dependencies requiring this version.
274-
2.2. Copy PyWin32 DLLs (there are some post installation things required for PyWin32):
275-
* Copy `pythoncom311.dll` and `pywintypes311.dll`.
276-
* From: `C:\Program Files\Maxon Cinema 4D 2026\resource\modules\python\libs\win64\lib\site-packages\pywin32_system32`
277-
* To: `C:\Program Files\Maxon Cinema 4D 2026\resource\modules\python\libs\win64\dlls`
278-
3. Set the environment variable `PYTHONIOENCODING` to `utf-8` so that the test can use non-ASCII characters.
279-
280-
281-
3. Run `hatch run integ:test`
230+
```bash
231+
hatch run integ:test
232+
```
282233

234+
See [`test/AGENTS.md`](test/AGENTS.md) for platform support, setup, focused runs,
235+
test-case authoring, selector discovery, and golden-bundle capture.

hatch.toml

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,44 +32,18 @@ deps = "pip install -r requirements-release.txt"
3232
bump = "semantic-release -v --strict version --no-push --no-commit --no-tag --skip-build {args}"
3333
version = "semantic-release -v --strict version --print {args}"
3434

35+
# Drives the real Deadline Cloud submitter dialog end-to-end with xa11y.
3536
[envs.integ]
36-
pre-install-commands = [
37-
"pip install -r requirements-testing.txt"
38-
]
39-
40-
[envs.integ.scripts]
41-
test = "pytest --no-cov {args:test/integ} -vvv --numprocesses=1"
42-
43-
# xa11y-driven integration test. Drives the real Deadline Cloud submitter
44-
# dialog end-to-end. Will replace `integ` once we're happy with it.
45-
[envs.integ-xa11y]
4637
python = "3.11"
4738
pre-install-commands = [
4839
"pip install -r requirements-testing.txt"
4940
]
5041

51-
[envs.integ-xa11y.env-vars]
42+
[envs.integ.env-vars]
5243
PYTHONIOENCODING = "utf-8"
5344

54-
[envs.integ-xa11y.scripts]
55-
test = "pytest --no-cov {args:test/integ_xa11y} -vvv --numprocesses=1"
45+
[envs.integ.scripts]
46+
test = "pytest --no-cov {args:test/integ} -vvv --numprocesses=1"
5647

5748
[envs.installer.scripts]
5849
build-installer = "python {root}/scripts/build_installer_cli.py --installer-source-path {root}/installer/DeadlineCloudForCinema4dSubmitter.xml {args:}"
59-
60-
[envs.integ-ci]
61-
pre-install-commands = [
62-
"pip install -r requirements-testing.txt"
63-
]
64-
65-
[[envs.integ-ci.matrix]]
66-
cinema4d = ["2025", "2026"]
67-
python = ["3.11"]
68-
69-
[envs.integ-ci.env-vars]
70-
C4D_VERSION = "{matrix:cinema4d}"
71-
PYTHONIOENCODING = "utf-8"
72-
73-
[envs.integ-ci.scripts]
74-
setup = "python ./pipeline/setup-runner.py --versions {matrix:cinema4d} {args}"
75-
integ = "pytest --no-cov {args:test/integ} -vvv --numprocesses=1"

job_bundle_output_tests/redshift_multipass/expected_job_bundle/asset_references.yaml

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)