Exemple #1
0
 def test_no_duplicate_settings(self):
     count1 = 0
     for key in UserProfileGroups.get_setting_groups_list():
         settings = UserProfileGroups.SETTINGS_GROUPS[key]["settings"]
         count1 += len(settings)
     count2 = len(UserProfileGroups.get_all_settings_list())
     self.assertEqual(count1, count2)
Exemple #2
0
    def setUp(self):
        super().setUp()

        self.tmp_directory = self.mktmpdir()

        self.configpath = os.path.join(self.tmp_directory, 'test.ini')
        shutil.copy(os.path.join('test', 'data', 'test.ini'), self.configpath)
        self.addCleanup(os.remove, self.configpath)

        self.config = Config.from_file(None, self.configpath)
        self.addCleanup(self.cleanup_config_obj)

        self.config.application["version"] = "testing"
        logging.disable(logging.ERROR)
        Option.registry = {}

        ListOption('profiles', self.PROFILES_KEY, [])
        Option('profiles', self.SETTINGS_KEY, {})

        # Get valid profile option settings for testing
        option_settings = list(UserProfileGroups.get_all_settings_list())
        self.test_setting_0 = option_settings[0]
        self.test_setting_1 = option_settings[1]
        self.test_setting_2 = option_settings[2]
        self.test_setting_3 = option_settings[3]

        TextOption("setting", self.test_setting_0, "abc")
        BoolOption("setting", self.test_setting_1, True)
        IntOption("setting", self.test_setting_2, 42)
        TextOption("setting", self.test_setting_3, "xyz")
Exemple #3
0
 def __getitem__(self, name):
     # Don't process settings that are not profile-specific
     if name in UserProfileGroups.get_all_settings_list():
         for id, settings in self._get_active_profile_settings():
             if name in settings and settings[name] is not None:
                 return settings[name]
     opt = Option.get(self.__name, name)
     if opt is None:
         return None
     return self.value(name, opt, opt.default)
Exemple #4
0
 def __setitem__(self, name, value):
     # Don't process settings that are not profile-specific
     if name in UserProfileGroups.get_all_settings_list():
         for id, settings in self._get_active_profile_settings():
             if name in settings:
                 self._save_profile_setting(id, name, value)
                 return
     key = self.key(name)
     self.__qt_config.setValue(key, value)
     self._memoization[key].dirty = True
Exemple #5
0
    def show_attached_profiles_dialog(self):
        window_title = _("Profiles Attached to Options")
        items = self.ui.pages_tree.selectedItems()
        if items:
            page = self.item_to_page[items[0]]
            name = page.NAME
        else:
            name = ''
        if name not in UserProfileGroups.get_setting_groups_list():
            message_box = QtWidgets.QMessageBox(self)
            message_box.setIcon(QtWidgets.QMessageBox.Information)
            message_box.setWindowModality(QtCore.Qt.WindowModal)
            message_box.setWindowTitle(window_title)
            message_box.setText(
                _("The options on this page are not currently available to be managed using profiles."
                  ))
            message_box.setStandardButtons(QtWidgets.QMessageBox.Ok)
            return message_box.exec_()

        profile_dialog = AttachedProfilesDialog(parent=self, option_group=name)
        profile_dialog.show()
        profile_dialog.raise_()
        profile_dialog.activateWindow()
Exemple #6
0
 def page_has_profile_options(self, page):
     try:
         name = page.PARENT if page.PARENT in UserProfileGroups.SETTINGS_GROUPS else page.NAME
     except AttributeError:
         return False
     return name in UserProfileGroups.get_setting_groups_list()
Exemple #7
0
 def test_groups_have_items(self):
     for key in UserProfileGroups.get_setting_groups_list():
         settings = UserProfileGroups.SETTINGS_GROUPS[key]["settings"]
         self.assertNotEqual(settings, {})
Exemple #8
0
 def test_has_groups(self):
     keys = list(UserProfileGroups.get_setting_groups_list())
     self.assertNotEqual(keys, [])
Exemple #9
0
 def test_settings_have_titles(self):
     for key in UserProfileGroups.get_setting_groups_list():
         settings = UserProfileGroups.SETTINGS_GROUPS[key]["settings"]
         self.assertNotEqual(settings, {})
         for key, title, fields in settings:
             self.assertNotEqual(title.strip(), "")
Exemple #10
0
 def test_settings_have_no_blank_keys(self):
     for key in UserProfileGroups.get_setting_groups_list():
         settings = UserProfileGroups.SETTINGS_GROUPS[key]["settings"]
         for key, title, fields in settings:
             self.assertNotEqual(key.strip(), "")