Exemple #1
0
def _patch_configdata(monkeypatch, stubs, symbol):
    """Patch the configdata module to provide fake data."""
    data = collections.OrderedDict([
        ('general',
         sections.KeyValue(
             ('time',
              value.SettingValue(
                  stubs.FakeConfigType('fast', 'slow'),
                  default='slow'), 'Is an illusion.\n\nLunchtime doubly so.'),
             ('volume',
              value.SettingValue(stubs.FakeConfigType('0', '11'),
                                 default='11'), 'Goes to 11'))),
        ('ui',
         sections.KeyValue(
             ('gesture',
              value.SettingValue(
                  stubs.FakeConfigType(('on', 'off')),
                  default='off'), 'Waggle your hands to control qutebrowser'),
             ('mind',
              value.SettingValue(
                  stubs.FakeConfigType(('on', 'off')),
                  default='off'), 'Enable mind-control ui (experimental)'),
             ('voice',
              value.SettingValue(
                  stubs.FakeConfigType(('on', 'off')),
                  default='off'), 'Whether to respond to voice commands'))),
        ('searchengines',
         sections.ValueList(
             stubs.FakeConfigType(),
             stubs.FakeConfigType(),
             ('DEFAULT', 'https://duckduckgo.com/?q={}'),
         )),
    ])
    monkeypatch.setattr(symbol, data)
Exemple #2
0
    def __init__(self, keytype, valtype, *defaults, readonly=False):
        """Wrap types over default values. Take care when overriding this.

        Args:
            keytype: The type instance to be used for keys.
            valtype: The type instance to be used for values.
            *defaults: A (key, value) list of default values.
            readonly: Whether this config is readonly.
        """
        super().__init__()
        self._readonly = readonly
        self._ordered_value_cache = None
        self.keytype = keytype
        self.valtype = valtype
        self.layers = collections.OrderedDict([
            ('default', collections.OrderedDict()),
            ('conf', collections.OrderedDict()),
            ('temp', collections.OrderedDict()),
        ])
        defaultlayer = self.layers['default']
        for key, value in defaults:
            assert key not in defaultlayer, key
            defaultlayer[key] = confvalue.SettingValue(valtype, value)
        self.values = collections.ChainMap(
            self.layers['temp'], self.layers['conf'], self.layers['default'])
Exemple #3
0
 def setv(self, layer, key, value, interpolated):
     self.keytype.validate(key)
     if key in self.layers[layer]:
         self.layers[layer][key].setv(layer, value, interpolated)
     else:
         val = confvalue.SettingValue(self.valtype)
         val.setv(layer, value, interpolated)
         self.layers[layer][key] = val
     self._ordered_value_cache = None
Exemple #4
0
 def setv(self, layer, key, value, interpolated):
     if self._readonly:
         raise ValueError("Trying to modify a read-only config!")
     self.keytype.validate(key)
     if key in self.layers[layer]:
         self.layers[layer][key].setv(layer, value, interpolated)
     else:
         val = confvalue.SettingValue(self.valtype)
         val.setv(layer, value, interpolated)
         self.layers[layer][key] = val
     self._ordered_value_cache = None