class TestPreferencesPage(TestCase):
    def setUp(self):
        self.app = QApplication(sys.argv)
        self.dialog = PreferencesDialog(None)

    def tearDown(self):
        del self.app

    def test_apply_preferences(self):
        self.assertTrue(self.dialog._applyPreferences())
        mock_page = mock.MagicMock()
        mock_page.data.return_value = mock_page
        mock_page.savePreferences.return_value = False
        self.dialog._items = [mock_page]
        self.assertFalse(self.dialog._applyPreferences())
        mock_page.savePreferences.return_value = None
        self.assertTrue(self.dialog._applyPreferences())