mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
OP-3426 - DL support for AE automatic tests
WIP
This commit is contained in:
parent
e3864ead41
commit
5ee97fa8e2
3 changed files with 95 additions and 4 deletions
|
|
@ -2,10 +2,14 @@ import os
|
|||
import pytest
|
||||
import shutil
|
||||
|
||||
from tests.lib.testing_classes import HostFixtures
|
||||
from tests.lib.testing_classes import (
|
||||
HostFixtures,
|
||||
PublishTest,
|
||||
DeadlinePublishTest
|
||||
)
|
||||
|
||||
|
||||
class AfterEffectsTestClass(HostFixtures):
|
||||
class AEHostFixtures(HostFixtures):
|
||||
@pytest.fixture(scope="module")
|
||||
def last_workfile_path(self, download_test_data, output_folder_url):
|
||||
"""Get last_workfile_path from source data.
|
||||
|
|
@ -32,3 +36,11 @@ class AfterEffectsTestClass(HostFixtures):
|
|||
def startup_scripts(self, monkeypatch_session, download_test_data):
|
||||
"""Points Maya to userSetup file from input data"""
|
||||
pass
|
||||
|
||||
|
||||
class AELocalPublishTestClass(AEHostFixtures, PublishTest):
|
||||
"""Testing class for local publishes."""
|
||||
|
||||
|
||||
class AEDeadlinePublishTestClass(AEHostFixtures, DeadlinePublishTest):
|
||||
"""Testing class for Deadline publishes."""
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
import logging
|
||||
|
||||
from tests.lib.assert_classes import DBAssert
|
||||
from tests.integration.hosts.aftereffects.lib import AEDeadlinePublishTestClass
|
||||
|
||||
log = logging.getLogger("test_publish_in_aftereffects")
|
||||
|
||||
|
||||
class TestDeadlinePublishInAfterEffects(AEDeadlinePublishTestClass):
|
||||
"""Basic test case for DL publishing in AfterEffects
|
||||
|
||||
Uses generic TestCase to prepare fixtures for test data, testing DBs,
|
||||
env vars.
|
||||
|
||||
Opens AfterEffects, run DL publish on prepared workile.
|
||||
|
||||
Test zip file sets 3 required env vars:
|
||||
- HEADLESS_PUBLISH - this triggers publish immediately app is open
|
||||
- IS_TEST - this differentiate between regular webpublish
|
||||
- PYBLISH_TARGETS
|
||||
|
||||
Waits for publish job on DL is finished.
|
||||
|
||||
Then checks content of DB (if subset, version, representations were
|
||||
created.
|
||||
Checks tmp folder if all expected files were published.
|
||||
|
||||
"""
|
||||
PERSIST = False
|
||||
|
||||
TEST_FILES = [
|
||||
("1c8261CmHwyMgS-g7S4xL5epAp0jCBmhf",
|
||||
"test_aftereffects_publish.zip",
|
||||
"")
|
||||
]
|
||||
|
||||
APP = "aftereffects"
|
||||
APP_VARIANT = ""
|
||||
|
||||
APP_NAME = "{}/{}".format(APP, APP_VARIANT)
|
||||
|
||||
TIMEOUT = 120 # publish timeout
|
||||
|
||||
def test_db_asserts(self, dbcon, publish_finished):
|
||||
"""Host and input data dependent expected results in DB."""
|
||||
print("test_db_asserts")
|
||||
failures = []
|
||||
|
||||
failures.append(DBAssert.count_of_types(dbcon, "version", 2))
|
||||
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "version", 0, name={"$ne": 1}))
|
||||
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "subset", 1,
|
||||
name="imageMainBackgroundcopy"))
|
||||
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "subset", 1,
|
||||
name="workfileTest_task"))
|
||||
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "subset", 1,
|
||||
name="reviewTesttask"))
|
||||
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "representation", 4))
|
||||
|
||||
additional_args = {"context.subset": "renderTestTaskDefault",
|
||||
"context.ext": "png"}
|
||||
failures.append(
|
||||
DBAssert.count_of_types(dbcon, "representation", 1,
|
||||
additional_args=additional_args))
|
||||
|
||||
assert not any(failures)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_case = TestDeadlinePublishInAfterEffects()
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import logging
|
||||
|
||||
from tests.lib.assert_classes import DBAssert
|
||||
from tests.integration.hosts.aftereffects.lib import AfterEffectsTestClass
|
||||
from tests.integration.hosts.aftereffects.lib import AELocalPublishTestClass
|
||||
|
||||
log = logging.getLogger("test_publish_in_aftereffects")
|
||||
|
||||
|
||||
class TestPublishInAfterEffects(AfterEffectsTestClass):
|
||||
class TestPublishInAfterEffects(AELocalPublishTestClass):
|
||||
"""Basic test case for publishing in AfterEffects
|
||||
|
||||
Uses generic TestCase to prepare fixtures for test data, testing DBs,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue