Пример #1
0
    def testStylePaths(self):
        p = QgsProjectStyleSettings()
        spy = QSignalSpy(p.styleDatabasesChanged)

        model = QgsProjectStyleDatabaseModel(p)
        model_with_default = QgsProjectStyleDatabaseModel(p)
        model_with_default.setShowDefaultStyle(True)
        proxy_model = QgsProjectStyleDatabaseProxyModel(model_with_default)
        proxy_model.setFilters(
            QgsProjectStyleDatabaseProxyModel.Filter.FilterHideReadOnly)

        project_style = QgsStyle()
        project_style.setName('project')
        model_with_project_style = QgsProjectStyleDatabaseModel(p)
        model_with_project_style.setShowDefaultStyle(True)
        model_with_project_style.setProjectStyle(project_style)

        self.assertFalse(p.styleDatabasePaths())
        self.assertFalse(p.styles())
        self.assertEqual(p.combinedStyleModel().rowCount(), 0)
        self.assertEqual(model.rowCount(QModelIndex()), 0)
        self.assertFalse(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole))
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())

        self.assertEqual(model_with_project_style.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                Qt.DisplayRole), 'project')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole), project_style)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                Qt.DisplayRole), 'Default')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())

        self.assertEqual(proxy_model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             Qt.DisplayRole), 'Default')
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())

        p.addStyleDatabasePath(unitTestDataPath() + '/style1.db')
        self.assertEqual(len(spy), 1)
        self.assertEqual(p.styleDatabasePaths(),
                         [unitTestDataPath() + '/style1.db'])
        self.assertEqual(p.combinedStyleModel().rowCount(), 1)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'style1')
        self.assertEqual(len(p.styles()), 1)
        self.assertEqual(p.styles()[0].fileName(),
                         unitTestDataPath() + '/style1.db')
        self.assertEqual(p.styles()[0].name(), 'style1')
        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.PathRole),
            unitTestDataPath() + '/style1.db')

        self.assertEqual(model_with_default.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.PathRole),
            unitTestDataPath() + '/style1.db')

        self.assertEqual(model_with_project_style.rowCount(QModelIndex()), 3)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                Qt.DisplayRole), 'project')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole), project_style)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                Qt.DisplayRole), 'Default')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                Qt.DisplayRole), 'style1')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.PathRole),
            unitTestDataPath() + '/style1.db')

        self.assertEqual(proxy_model.rowCount(QModelIndex()), 2)
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             Qt.DisplayRole), 'Default')
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            proxy_model.data(proxy_model.index(1, 0, QModelIndex()),
                             Qt.DisplayRole), 'style1')
        self.assertEqual(
            proxy_model.data(proxy_model.index(1, 0, QModelIndex()),
                             QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            proxy_model.data(proxy_model.index(1, 0, QModelIndex()),
                             QgsProjectStyleDatabaseModel.PathRole),
            unitTestDataPath() + '/style1.db')

        # try re-adding path which is already present
        p.addStyleDatabasePath(unitTestDataPath() + '/style1.db')
        self.assertEqual(len(spy), 1)
        self.assertEqual(p.styleDatabasePaths(),
                         [unitTestDataPath() + '/style1.db'])
        self.assertEqual(p.combinedStyleModel().rowCount(), 1)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'style1')
        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])

        p.addStyleDatabasePath(unitTestDataPath() + '/style2.db')
        self.assertEqual(len(spy), 2)
        self.assertEqual(p.styleDatabasePaths(), [
            unitTestDataPath() + '/style1.db',
            unitTestDataPath() + '/style2.db'
        ])
        self.assertEqual(p.styles()[0].fileName(),
                         unitTestDataPath() + '/style1.db')
        self.assertEqual(p.styles()[0].name(), 'style1')
        self.assertEqual(p.styles()[1].fileName(),
                         unitTestDataPath() + '/style2.db')
        self.assertEqual(p.styles()[1].name(), 'style2')
        self.assertEqual(p.combinedStyleModel().rowCount(), 2)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'style1')
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(1, 0)),
            'style2')
        self.assertEqual(model.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style2')
        self.assertEqual(
            model.data(model.index(1, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[1])
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 3)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style1')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(2, 0, QModelIndex()), Qt.DisplayRole),
            'style2')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(2, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[1])

        self.assertEqual(model_with_project_style.rowCount(QModelIndex()), 4)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                Qt.DisplayRole), 'project')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole), project_style)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                Qt.DisplayRole), 'Default')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                Qt.DisplayRole), 'style1')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(3, 0, QModelIndex()),
                Qt.DisplayRole), 'style2')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(3, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[1])

        self.assertEqual(p.styleAtPath(unitTestDataPath() + '/style1.db'),
                         p.styles()[0])
        self.assertEqual(p.styleAtPath(unitTestDataPath() + '/style2.db'),
                         p.styles()[1])
        self.assertFalse(p.styleAtPath('.xxx'))

        p.setStyleDatabasePaths([unitTestDataPath() + '/style3.db'])
        self.assertEqual(len(spy), 3)
        self.assertEqual(p.styleDatabasePaths(),
                         [unitTestDataPath() + '/style3.db'])

        self.assertEqual(p.combinedStyleModel().rowCount(), 1)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'style3')

        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'style3')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style3')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])

        self.assertEqual(model_with_project_style.rowCount(QModelIndex()), 3)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                Qt.DisplayRole), 'project')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole), project_style)
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                Qt.DisplayRole), 'Default')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                Qt.DisplayRole), 'style3')
        self.assertEqual(
            model_with_project_style.data(
                model_with_project_style.index(2, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])

        self.assertEqual(p.styles()[0].fileName(),
                         unitTestDataPath() + '/style3.db')
        self.assertEqual(p.styles()[0].name(), 'style3')

        p.setStyleDatabasePaths([unitTestDataPath() + '/style3.db'])
        self.assertEqual(len(spy), 3)
        self.assertEqual(p.combinedStyleModel().rowCount(), 1)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'style3')

        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'style3')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'style3')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])

        p.setStyleDatabasePaths([])
        self.assertEqual(len(spy), 4)
        self.assertFalse(p.styleDatabasePaths())
        self.assertFalse(p.styles())
        self.assertEqual(p.combinedStyleModel().rowCount(), 0)

        self.assertEqual(model.rowCount(QModelIndex()), 0)
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())

        # test using a .xml path
        p.addStyleDatabasePath(unitTestDataPath() + '/categorized.xml')
        self.assertEqual(p.styles()[0].fileName(),
                         unitTestDataPath() + '/categorized.xml')
        self.assertEqual(p.combinedStyleModel().rowCount(), 4)
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(0, 0)),
            'categorized')
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(1, 0)),
            ' ----c/- ')
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(2, 0)),
            'B ')
        self.assertEqual(
            p.combinedStyleModel().data(p.combinedStyleModel().index(3, 0)),
            'a')

        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'categorized')
        self.assertEqual(
            model.data(model.index(0, 0, QModelIndex()),
                       QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        self.assertEqual(model_with_default.rowCount(QModelIndex()), 2)
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()), Qt.DisplayRole),
            'Default')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(0, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()), Qt.DisplayRole),
            'categorized')
        self.assertEqual(
            model_with_default.data(
                model_with_default.index(1, 0, QModelIndex()),
                QgsProjectStyleDatabaseModel.StyleRole),
            p.styles()[0])
        # read only style should not be included
        self.assertEqual(proxy_model.rowCount(QModelIndex()), 1)
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             Qt.DisplayRole), 'Default')
        self.assertEqual(
            proxy_model.data(proxy_model.index(0, 0, QModelIndex()),
                             QgsProjectStyleDatabaseModel.StyleRole),
            QgsStyle.defaultStyle())
Пример #2
0
    def test_model(self):
        model = QgsCombinedStyleModel()
        self.assertFalse(model.styles())
        self.assertEqual(model.rowCount(), 0)

        style1 = QgsStyle()
        style1.createMemoryDatabase()
        style1.setName('first style')
        style1.setFileName('/home/my style1.db')

        model.addStyle(style1)
        self.assertEqual(model.styles(), [style1])
        self.assertEqual(model.headerData(0, Qt.Horizontal), 'Name')
        self.assertEqual(model.headerData(1, Qt.Horizontal), 'Tags')

        self.assertEqual(model.columnCount(), 2)
        self.assertEqual(model.rowCount(), 1)
        self.assertEqual(model.data(model.index(0, 0)), 'first style')
        self.assertTrue(model.data(model.index(0, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(0, 0), QgsStyleModel.StyleName), 'first style')
        self.assertEqual(model.data(model.index(0, 0), QgsStyleModel.StyleFileName), '/home/my style1.db')

        style1.addTextFormat('format 1', QgsTextFormat(), True)
        self.assertEqual(model.rowCount(), 2)
        self.assertEqual(model.data(model.index(0, 0)), 'first style')
        self.assertTrue(model.data(model.index(0, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(1, 0)), 'format 1')
        self.assertFalse(model.data(model.index(1, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(1, 0), QgsStyleModel.StyleName), 'first style')
        self.assertEqual(model.data(model.index(1, 0), QgsStyleModel.StyleFileName), '/home/my style1.db')

        style2 = QgsStyle()
        style2.createMemoryDatabase()
        style2.setName('second style')
        style2.setFileName('/home/my style2.db')
        style2.addTextFormat('format 2', QgsTextFormat(), True)
        style2.addTextFormat('format 3', QgsTextFormat(), True)

        model.addStyle(style2)
        self.assertEqual(model.styles(), [style1, style2])

        self.assertEqual(model.rowCount(), 5)
        self.assertEqual(model.data(model.index(0, 0)), 'first style')
        self.assertTrue(model.data(model.index(0, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(0, 0), QgsStyleModel.StyleName), 'first style')
        self.assertEqual(model.data(model.index(0, 0), QgsStyleModel.StyleFileName), '/home/my style1.db')
        self.assertEqual(model.data(model.index(1, 0)), 'format 1')
        self.assertFalse(model.data(model.index(1, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(1, 0), QgsStyleModel.StyleName), 'first style')
        self.assertEqual(model.data(model.index(1, 0), QgsStyleModel.StyleFileName), '/home/my style1.db')
        self.assertEqual(model.data(model.index(2, 0)), 'second style')
        self.assertTrue(model.data(model.index(2, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(2, 0), QgsStyleModel.StyleName), 'second style')
        self.assertEqual(model.data(model.index(2, 0), QgsStyleModel.StyleFileName), '/home/my style2.db')
        self.assertEqual(model.data(model.index(3, 0)), 'format 2')
        self.assertFalse(model.data(model.index(3, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(3, 0), QgsStyleModel.StyleName), 'second style')
        self.assertEqual(model.data(model.index(3, 0), QgsStyleModel.StyleFileName), '/home/my style2.db')
        self.assertEqual(model.data(model.index(4, 0)), 'format 3')
        self.assertFalse(model.data(model.index(4, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(4, 0), QgsStyleModel.StyleName), 'second style')
        self.assertEqual(model.data(model.index(4, 0), QgsStyleModel.StyleFileName), '/home/my style2.db')

        style1.deleteLater()
        style1 = None
        QCoreApplication.sendPostedEvents(None, QEvent.DeferredDelete)

        self.assertEqual(model.rowCount(), 3)
        self.assertEqual(model.data(model.index(0, 0)), 'second style')
        self.assertTrue(model.data(model.index(0, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(1, 0)), 'format 2')
        self.assertFalse(model.data(model.index(1, 0), QgsStyleModel.IsTitleRole))
        self.assertEqual(model.data(model.index(2, 0)), 'format 3')
        self.assertFalse(model.data(model.index(2, 0), QgsStyleModel.IsTitleRole))

        model.removeStyle(style2)
        self.assertEqual(model.rowCount(), 0)

        model.removeStyle(style2)