19 lines
1.1 KiB
Python
19 lines
1.1 KiB
Python
from unittest import TestCase
|
|
from station.node_inventory import inventory, node_group
|
|
|
|
|
|
class NodeInventoryTest(TestCase):
|
|
def test_namespaces_duplicates_and_discovery_do_not_imply_ownership_or_health(self):
|
|
result = inventory({'node_paths':['/left/servo_node','/right/servo_node','/left/servo_node','/_ros2cli_1']},
|
|
{'motion:89':{'pid':123,'running':True,'owner':'station'}}, [],
|
|
{'89':{'pose_live':False,'enabled':None}}, {})
|
|
left = next(n for n in result['nodes'] if n['name']=='/left/servo_node')
|
|
self.assertEqual(left['instances'],2)
|
|
self.assertEqual(left['owner'],'unverified')
|
|
self.assertEqual(result['duplicates'],['/left/servo_node'])
|
|
self.assertEqual(result['devices'][0]['health'],'offline')
|
|
self.assertEqual(result['processes'][0]['owner'],'station')
|
|
self.assertEqual(node_group('/right/rizon_arm_controller'),'运动控制')
|
|
self.assertEqual(node_group('/perception_node'),'算法任务')
|
|
self.assertEqual(node_group('/realsense_color_pub'),'设备驱动')
|