Skip to content

Commit

Permalink
Adding a unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
vlasovi committed Sep 29, 2022
1 parent ef01e03 commit bc0802c
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions test/lib/ufe/testDisplayLayer.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
import mayaUsd.ufe as mayaUsdUfe
import mayaUsd.lib as mayaUsdLib

from usdUtils import createSimpleXformScene

from pxr import Usd, Kind

import unittest
Expand Down Expand Up @@ -343,6 +345,40 @@ def testDisplayLayerClear(self):
self.assertFalse(layer1.contains(self.CUBE1))
self.assertFalse(layer1.contains(self.INVALID_PRIM))

def testDisplayLayerEditAsMaya(self):
'''Display layer membership in Edit As Maya workflow.'''

(ps, xlateOp, xlation, aUsdUfePathStr, aUsdUfePath, aUsdItem,
_, _, _, _, _) = createSimpleXformScene()

# Add an item to a new display layer
cmds.createDisplayLayer(name='layer1', number=1, empty=True)
cmds.editDisplayLayerMembers('layer1', '|stage1|stageShape1,/A', noRecurse=True)

# Edit aPrim as Maya data.
with mayaUsd.lib.OpUndoItemList():
self.assertTrue(mayaUsd.lib.PrimUpdaterManager.canEditAsMaya(aUsdUfePathStr))
self.assertTrue(mayaUsd.lib.PrimUpdaterManager.editAsMaya(aUsdUfePathStr))

# Check display layer membership on the other side
layerObjs = cmds.editDisplayLayerMembers('layer1', query=True, **self.kwArgsEditDisplayLayerMembers)
self.assertTrue("|__mayaUsd__|AParent|A" in layerObjs)

# Create a new layer and put the item there
cmds.createDisplayLayer(name='layer2', number=1, empty=True)
cmds.editDisplayLayerMembers('layer2', "|__mayaUsd__|AParent|A", noRecurse=True)

# Merge edits back to USD.
aMayaItem = ufe.GlobalSelection.get().front()
aMayaPath = aMayaItem.path()
aMayaPathStr = ufe.PathString.string(aMayaPath)
with mayaUsd.lib.OpUndoItemList():
self.assertTrue(mayaUsd.lib.PrimUpdaterManager.mergeToUsd(aMayaPathStr))

# Check display layer membership back on the USD side
layerObjs = cmds.editDisplayLayerMembers('layer2', query=True, **self.kwArgsEditDisplayLayerMembers)
self.assertTrue('|stage1|stageShape1,/A' in layerObjs)

@unittest.skipUnless(mayaUtils.ufeSupportFixLevel() >= 3, "Requires Display Layer Ufe subtree invalidate fix.")
def testDisplayLayerSubtreeInvalidate(self):
# Create a scene with two variants.
Expand Down

0 comments on commit bc0802c

Please sign in to comment.