1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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")
|