def testThemes(self): layout = QgsPrintLayout(QgsProject.instance()) layout.setName('LAYOUT') map = QgsLayoutItemMap(layout) layout.addLayoutItem(map) legend = QgsLayoutItemLegend(layout) self.assertFalse(legend.themeName()) legend.setLinkedMap(map) self.assertFalse(legend.themeName()) map.setFollowVisibilityPresetName('theme1') map.setFollowVisibilityPreset(True) self.assertEqual(legend.themeName(), 'theme1') map.setFollowVisibilityPresetName('theme2') self.assertEqual(legend.themeName(), 'theme2') map.setFollowVisibilityPreset(False) self.assertFalse(legend.themeName()) # with theme set before linking map map2 = QgsLayoutItemMap(layout) map2.setFollowVisibilityPresetName('theme3') map2.setFollowVisibilityPreset(True) legend.setLinkedMap(map2) self.assertEqual(legend.themeName(), 'theme3') map2.setFollowVisibilityPresetName('theme2') self.assertEqual(legend.themeName(), 'theme2') # replace with map with no theme map3 = QgsLayoutItemMap(layout) legend.setLinkedMap(map3) self.assertFalse(legend.themeName())