diff options
| author | home_pc <[email protected]> | 2020-01-20 13:48:51 -0800 |
|---|---|---|
| committer | home_pc <[email protected]> | 2020-01-20 13:48:51 -0800 |
| commit | 75fa1d1810e98453960a81115d88302e276d817f (patch) | |
| tree | 92f37accb3cb041d056d00525b5830a69862631a /tests/test_root_component.py | |
| parent | fixed install.mel issue (diff) | |
| download | artv2-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.py | 76 |
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") |