def test_data_BackgroundRole(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) index = model.index(0, 0) self.assertEqual(index.data(Qt.BackgroundRole), QColor(Qt.lightGray)) index = model.index(1, 0) self.assertEqual(index.data(Qt.BackgroundRole), None)
def test_moveRows_move_domain_row_down(self): settings = Settings( ['domain1', 'domain2', 'domain3'], [], {}, [ SetMetadata(ExportFlag.EXPORTABLE), SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), ], ) model = GAMSSetListModel(settings) self.assertTrue(model.moveRows(QModelIndex(), 0, 1, QModelIndex(), 1)) self.assertEqual(settings.sorted_domain_names, ['domain2', 'domain1', 'domain3']) self.assertEqual( settings.domain_metadatas, [ SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), ], ) self.assertTrue(model.moveRows(QModelIndex(), 1, 1, QModelIndex(), 2)) self.assertEqual(settings.sorted_domain_names, ['domain2', 'domain3', 'domain1']) self.assertEqual( settings.domain_metadatas, [ SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), SetMetadata(ExportFlag.EXPORTABLE), ], ) self.assertFalse(model.moveRows(QModelIndex(), 2, 1, QModelIndex(), 3))
def test_data_DisplayRole(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) index = model.index(0, 0) self.assertEqual(index.data(), "domain1") index = model.index(1, 0) self.assertEqual(index.data(), "set1")
def test_moveRows_move_set_row_up(self): settings = Settings( [], ['set1', 'set2', 'set3'], {}, [], [ SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), SetMetadata(ExportFlag.EXPORTABLE), ], ) model = GAMSSetListModel(settings) self.assertTrue(model.moveRows(QModelIndex(), 2, 1, QModelIndex(), 1)) self.assertEqual(settings.sorted_set_names, ['set1', 'set3', 'set2']) self.assertEqual( settings.set_metadatas, [ SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), ], ) self.assertTrue(model.moveRows(QModelIndex(), 1, 1, QModelIndex(), 0)) self.assertEqual(settings.sorted_set_names, ['set3', 'set1', 'set2']) self.assertEqual( settings.set_metadatas, [ SetMetadata(ExportFlag.EXPORTABLE), SetMetadata(ExportFlag.NON_EXPORTABLE), SetMetadata(ExportFlag.FORCED_NON_EXPORTABLE), ], ) self.assertFalse(model.moveRows(QModelIndex(), 0, 1, QModelIndex(), -1))
def test_setData_CheckStateRole(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) index = model.index(0, 0) model.setData(index, Qt.Unchecked, Qt.CheckStateRole) self.assertEqual(settings.domain_metadatas[0], SetMetadata(ExportFlag.NON_EXPORTABLE)) index = model.index(1, 0) model.setData(index, Qt.Unchecked, Qt.CheckStateRole) self.assertEqual(settings.set_metadatas[0], SetMetadata(ExportFlag.NON_EXPORTABLE))
def test_data_CheckStateRole(self): settings = Settings( ['domain1'], ['set1'], {}, [SetMetadata(ExportFlag.NON_EXPORTABLE)], [SetMetadata(ExportFlag.NON_EXPORTABLE)], ) model = GAMSSetListModel(settings) index = model.index(0, 0) self.assertEqual(index.data(Qt.CheckStateRole), Qt.Unchecked) index = model.index(1, 0) self.assertEqual(index.data(Qt.CheckStateRole), Qt.Unchecked)
def test_is_domain(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) self.assertTrue(model.is_domain(model.index(0, 0))) self.assertFalse(model.is_domain(model.index(1, 0)))
def test_headerData(self): settings = Settings([], [], {}) model = GAMSSetListModel(settings) self.assertEqual(model.headerData(0, Qt.Horizontal), "")
def test_flags(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) flags = model.flags(model.index(0, 0)) self.assertEqual(flags, Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsUserCheckable)
def test_rowCount(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) self.assertEqual(model.rowCount(), 2)
def test_moveRows_set_cannot_cross_to_domains(self): settings = Settings(['domain1'], ['set1'], {}) model = GAMSSetListModel(settings) self.assertFalse(model.moveRows(QModelIndex(), 1, 1, QModelIndex(), 0))