@@ -287,15 +287,35 @@ def test_get_available_profiles(self):
287287 )
288288 self .assertEqual ({"1" : source }, profiles )
289289
290- def test_iter_nodes_of_type (self ):
291- """Test iterating over nodes of a specific type."""
292- # TODO: Implement test
293- pass
294-
295290 def test_set_node_of_type (self ):
296291 """Test setting a node by type and name."""
297- # TODO: Implement test
298- pass
292+
293+ node = Node ("1" , "2" , "name" , "id" , "description" )
294+ raw_node = {"info" : {"props" : {"node.id" : "id" , "node.name" : "name" }}}
295+ self .pipewire ._set_card_profile = Mock ()
296+ self .pipewire ._set_default_audio_node = Mock ()
297+ self .pipewire ._get_audio_nodes = Mock (return_value = {"id" : raw_node })
298+
299+ self .pipewire ._set_node_of_type (node , NodeType .SINK )
300+
301+ self .pipewire ._set_card_profile .assert_called_once_with ("1" , "2" )
302+ self .pipewire ._set_default_audio_node .assert_called_once_with ("id" )
303+
304+ def test_set_node_of_type_ephemeral (self ):
305+ """Test setting a node by type and name when name/id changed."""
306+
307+ node = Node ("1" , "2" , "name.5" , "id" , "description" )
308+ raw_node = {
309+ "info" : {"props" : {"node.id" : "new_id" , "node.name" : "name.6" }}
310+ }
311+ self .pipewire ._set_card_profile = Mock ()
312+ self .pipewire ._set_default_audio_node = Mock ()
313+ self .pipewire ._get_audio_nodes = Mock (return_value = {"id" : raw_node })
314+
315+ self .pipewire ._set_node_of_type (node , NodeType .SINK )
316+
317+ self .pipewire ._set_card_profile .assert_called_once_with ("1" , "2" )
318+ self .pipewire ._set_default_audio_node .assert_called_once_with ("new_id" )
299319
300320
301321class PulseaudioUtilsTests (unittest .TestCase ):
0 commit comments