def test_reorder_short_chain(self): group1 = MagicMock() group1.name = "group1" group2 = MagicMock() group2.name = "group2" group3 = MagicMock() group3.name = "group3" group3.subgroups = [group2] group2.subgroups = [] group1.subgroups = [] order = _flatten_group_hierarchy([group1, group2, group3]) self.assertTrue(order.index("group3") < order.index("group2"))
def test_loop(self): group1 = MagicMock() group1.name = "group1" group2 = MagicMock() group2.name = "group2" group3 = MagicMock() group3.name = "group3" group3.subgroups = [group2] group2.subgroups = [group1] group1.subgroups = [group3] with self.assertRaises(RuntimeError): _flatten_group_hierarchy([group1, group2, group3])
def test_reorder_chain(self): group1 = MagicMock() group1.name = "group1" group2 = MagicMock() group2.name = "group2" group3 = MagicMock() group3.name = "group3" group3.subgroups = [group2] group2.subgroups = [group1] group1.subgroups = [] self.assertEqual( _flatten_group_hierarchy([group1, group2, group3]), ["group3", "group2", "group1"], )