mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
OP-2019 - added test classes for remote publish
This commit is contained in:
parent
939eabfc41
commit
6b45101ed0
2 changed files with 125 additions and 0 deletions
29
openpype/hosts/aftereffects/plugins/publish/closeAE.py
Normal file
29
openpype/hosts/aftereffects/plugins/publish/closeAE.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""Close AE after publish. For Webpublishing only."""
|
||||||
|
import os
|
||||||
|
|
||||||
|
import pyblish.api
|
||||||
|
|
||||||
|
from avalon import aftereffects
|
||||||
|
|
||||||
|
|
||||||
|
class CloseAE(pyblish.api.ContextPlugin):
|
||||||
|
"""Close AE after publish. For Webpublishing only.
|
||||||
|
"""
|
||||||
|
|
||||||
|
order = pyblish.api.IntegratorOrder + 14
|
||||||
|
label = "Close AE"
|
||||||
|
optional = True
|
||||||
|
active = True
|
||||||
|
|
||||||
|
hosts = ["aftereffects"]
|
||||||
|
targets = ["remotepublish"]
|
||||||
|
|
||||||
|
def process(self, context):
|
||||||
|
self.log.info("CloseAE")
|
||||||
|
|
||||||
|
stub = aftereffects.stub()
|
||||||
|
self.log.info("Shutting down AE")
|
||||||
|
stub.save()
|
||||||
|
stub.close()
|
||||||
|
self.log.info("AE closed")
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
import pytest
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
from tests.lib.testing_classes import PublishTest
|
||||||
|
|
||||||
|
|
||||||
|
class TestPublishInAfterEffects(PublishTest):
|
||||||
|
"""Basic test case for publishing in AfterEffects
|
||||||
|
|
||||||
|
Uses generic TestCase to prepare fixtures for test data, testing DBs,
|
||||||
|
env vars.
|
||||||
|
|
||||||
|
Opens AfterEffects, run publish on prepared workile.
|
||||||
|
|
||||||
|
Then checks content of DB (if subset, version, representations were
|
||||||
|
created.
|
||||||
|
Checks tmp folder if all expected files were published.
|
||||||
|
|
||||||
|
"""
|
||||||
|
PERSIST = True
|
||||||
|
|
||||||
|
TEST_FILES = [
|
||||||
|
("1qsrq6OJWVpOeXE2LTWrdbsLqEVu155Uf",
|
||||||
|
"test_aftereffects_publish.zip",
|
||||||
|
"")
|
||||||
|
]
|
||||||
|
|
||||||
|
APP = "aftereffects"
|
||||||
|
APP_VARIANT = "2021"
|
||||||
|
|
||||||
|
APP_NAME = "{}/{}".format(APP, APP_VARIANT)
|
||||||
|
|
||||||
|
TIMEOUT = 120 # publish timeout
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def last_workfile_path(self, download_test_data):
|
||||||
|
"""Get last_workfile_path from source data.
|
||||||
|
|
||||||
|
Maya expects workfile in proper folder, so copy is done first.
|
||||||
|
"""
|
||||||
|
src_path = os.path.join(download_test_data,
|
||||||
|
"input",
|
||||||
|
"workfile",
|
||||||
|
"test_project_test_asset_TestTask_v001.aep")
|
||||||
|
dest_folder = os.path.join(download_test_data,
|
||||||
|
self.PROJECT,
|
||||||
|
self.ASSET,
|
||||||
|
"work",
|
||||||
|
self.TASK)
|
||||||
|
os.makedirs(dest_folder)
|
||||||
|
dest_path = os.path.join(dest_folder,
|
||||||
|
"test_project_test_asset_TestTask_v001.aep")
|
||||||
|
shutil.copy(src_path, dest_path)
|
||||||
|
|
||||||
|
yield dest_path
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def startup_scripts(self, monkeypatch_session, download_test_data):
|
||||||
|
"""Points AfterEffects to userSetup file from input data"""
|
||||||
|
os.environ["HEADLESS_PUBLISH"] = "true"
|
||||||
|
|
||||||
|
def test_db_asserts(self, dbcon, publish_finished):
|
||||||
|
"""Host and input data dependent expected results in DB."""
|
||||||
|
print("test_db_asserts")
|
||||||
|
assert 5 == dbcon.count_documents({"type": "version"}), \
|
||||||
|
"Not expected no of versions"
|
||||||
|
|
||||||
|
assert 0 == dbcon.count_documents({"type": "version",
|
||||||
|
"name": {"$ne": 1}}), \
|
||||||
|
"Only versions with 1 expected"
|
||||||
|
|
||||||
|
assert 1 == dbcon.count_documents({"type": "subset",
|
||||||
|
"name": "modelMain"}), \
|
||||||
|
"modelMain subset must be present"
|
||||||
|
|
||||||
|
assert 1 == dbcon.count_documents({"type": "subset",
|
||||||
|
"name": "workfileTest_task"}), \
|
||||||
|
"workfileTest_task subset must be present"
|
||||||
|
|
||||||
|
assert 11 == dbcon.count_documents({"type": "representation"}), \
|
||||||
|
"Not expected no of representations"
|
||||||
|
|
||||||
|
assert 2 == dbcon.count_documents({"type": "representation",
|
||||||
|
"context.subset": "modelMain",
|
||||||
|
"context.ext": "abc"}), \
|
||||||
|
"Not expected no of representations with ext 'abc'"
|
||||||
|
|
||||||
|
assert 2 == dbcon.count_documents({"type": "representation",
|
||||||
|
"context.subset": "modelMain",
|
||||||
|
"context.ext": "ma"}), \
|
||||||
|
"Not expected no of representations with ext 'abc'"
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
test_case = TestPublishInAfterEffects()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue