aboutsummaryrefslogtreecommitdiff
path: root/tests/test_root_component.py
diff options
context:
space:
mode:
authorhome_pc <[email protected]>2020-01-20 13:48:51 -0800
committerhome_pc <[email protected]>2020-01-20 13:48:51 -0800
commit75fa1d1810e98453960a81115d88302e276d817f (patch)
tree92f37accb3cb041d056d00525b5830a69862631a /tests/test_root_component.py
parentfixed install.mel issue (diff)
downloadartv2-75fa1d1810e98453960a81115d88302e276d817f.tar.xz
artv2-75fa1d1810e98453960a81115d88302e276d817f.zip
Uploading work on refactor
At this point, all components can build their skeletons. Next steps are to get components building their rigs.
Diffstat (limited to 'tests/test_root_component.py')
-rw-r--r--tests/test_root_component.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/test_root_component.py b/tests/test_root_component.py
new file mode 100644
index 0000000..5e99ef1
--- /dev/null
+++ b/tests/test_root_component.py
@@ -0,0 +1,76 @@
+import unittest
+import maya.cmds as cmds
+import artv2.components.base_components.rig_asset as rig_asset
+import artv2.components.root as root
+
+
+def format_position(pos):
+ return [float("{0:.3f}".format(pos[0])), float("{0:.3f}".format(pos[1])), float("{0:.3f}".format(pos[2]))]
+
+
+class Root_Component_Tests(unittest.TestCase):
+ """
+ Class containing tests for hinge module creation and manipulation.
+ """
+
+ def _create_asset(self):
+ new_asset = rig_asset.RigAsset()
+ self.assertEquals(new_asset.name, "asset")
+ self.assertEquals(new_asset.network_node, "asset_metadata")
+ return new_asset
+
+ def _create_root_inst(self):
+
+ inst = root.Root()
+ return inst
+
+ def test_create_root(self):
+
+ self._create_asset()
+ arm_inst = self._create_root_inst()
+ self.assertEquals(len(arm_inst.joint_mover.get_created_joints()), 1)
+
+ def test_delete_root(self):
+
+ self._create_asset()
+ root_inst = self._create_root_inst()
+
+ component_containers = root_inst.joint_mover.get_containers()
+ guide_nodes = component_containers[1].getNodeList()
+ utility_nodes = component_containers[2].getNodeList()
+
+ root_inst.delete()
+ self.assertFalse(cmds.objExists("master_metadata"))
+
+ for each in guide_nodes:
+ self.assertFalse(cmds.objExists(each.nodeName()))
+ for each in utility_nodes:
+ self.assertFalse(cmds.objExists(each.nodeName()))
+
+ def test_bake_offsets(self):
+
+ self._create_asset()
+ root_inst = root.Root()
+ cmds.setAttr("master_root_mover_offset.translateY", 30)
+
+ pre_offset_position = format_position(cmds.xform("master_root_mover_offset", q=True, ws=True, t=True))
+ pre_main_position = format_position(cmds.xform("master_root_mover", q=True, ws=True, t=True))
+ self.assertNotEquals(pre_main_position, pre_offset_position)
+ root_inst.joint_mover.bake_offsets()
+
+ post_offset_position = format_position(cmds.xform("master_root_mover_offset", q=True, ws=True, t=True))
+ post_main_position = format_position(cmds.xform("master_root_mover", q=True, ws=True, t=True))
+ self.assertEquals(post_main_position, post_offset_position)
+
+ def test_duplicate(self):
+
+ self._create_asset()
+ root_inst = root.Root()
+
+ dupe1 = root_inst.duplicate()
+ dupe2 = root_inst.duplicate()
+ dupe3 = root_inst.duplicate()
+
+ self.assertEquals(dupe1.suffix, "_01")
+ self.assertEquals(dupe2.suffix, "_02")
+ self.assertEquals(dupe3.suffix, "_03")