예제 #1
0
 def test_value(self):
     """test getter/setter for the value attribute"""
     value = wraptext("bar")
     node = Parameter(wraptext("foo"), value)
     self.assertIs(value, node.value)
     node.value = "héhehé"
     self.assertWikicodeEqual(wraptext("héhehé"), node.value)
예제 #2
0
 def test_value(self):
     """test getter/setter for the value attribute"""
     value = wraptext("bar")
     node = Parameter(wraptext("foo"), value)
     self.assertIs(value, node.value)
     node.value = "héhehé"
     self.assertWikicodeEqual(wraptext("héhehé"), node.value)
예제 #3
0
    def set(self, key, value, showkey=True):
        # Check for uniqueness.
        # Wikicode is not hashable, so we instead use the stringified version
        # as the key and include the Wikicode <parameter name> within the object.
        skey = str(key)
        if not self.is_supported(skey):
            raise ValueError("Not supported: parameter %s" % (skey, ))

        if skey not in self._parameters_map:
            o = Parameter(key, value, showkey)
            self._parameters.append(o)
            # Needed for consistency - allow future lookups of this parameter.
            self._parameters_map[skey] = o
        else:
            # Overwrite existing parameter.
            o = self._parameters_map[skey]
            # Don't allow changing parameter names - creates a consistency problem.
            o.value = value
            o.showkey = showkey