"""ClipDeAjuste deve gerar filtros como filhos diretos do . O DTD 1.13 não define nenhum elemento — filter-video/ filter-audio vêm direto no , depois de audio-channel-source* e antes de metadata?. Ver Engine/docs/09_MANUTENCAO.md §2.6 e 05_EXPERIENCIAS.md. """ import xml.etree.ElementTree as ET from fcpxml.models.timeline import EfeitoAjuste, ParametroEfeito from fcpxml.models.timing import TimeValue from fcpxml.writer.adjustment import ClipDeAjuste def test_criar_nao_usa_wrapper_adjustment(): resources = ET.Element("resources") efeito = EfeitoAjuste( nome="Color Curves", uid="FFFF0000-0000-0000-0000-000000000000", tipo="video", parametros=[ParametroEfeito(nome="Amount", valor="0.5", chave=".../9999")], ) clip = ClipDeAjuste( nome="Ajuste de cor", duracao=TimeValue(300, 30), efeitos=[efeito] ).criar(resources) assert clip.find("adjustment") is None filtro = clip.find("filter-video") assert filtro is not None assert filtro.get("name") == "Color Curves" assert filtro in list(clip) def test_filter_video_vem_antes_de_filter_audio(): resources = ET.Element("resources") efeito_audio = EfeitoAjuste( nome="Gain", uid="AAAA0000-0000-0000-0000-000000000000", tipo="audio" ) efeito_video = EfeitoAjuste( nome="Blur", uid="BBBB0000-0000-0000-0000-000000000000", tipo="video" ) clip = ClipDeAjuste( nome="Ajuste misto", duracao=TimeValue(300, 30), efeitos=[efeito_audio, efeito_video], ).criar(resources) tags = [child.tag for child in clip] assert tags == ["filter-video", "filter-audio"] def test_criar_registra_recurso_effect_uma_vez_por_uid(): resources = ET.Element("resources") efeito = EfeitoAjuste( nome="Color Curves", uid="FFFF0000-0000-0000-0000-000000000000", tipo="video" ) ClipDeAjuste(nome="A", duracao=TimeValue(300, 30), efeitos=[efeito]).criar(resources) ClipDeAjuste(nome="B", duracao=TimeValue(300, 30), efeitos=[efeito]).criar(resources) assert len(resources.findall("effect")) == 1