示例#1
0
 def encode(self, node, content):
     # Add (soap) encoding information only if the resolved
     # type is derived by extension.  Further, the xsi:type values
     # is qualified by namespace only if the content (tag) and
     # referenced type are in different namespaces.
     if content.type.any():
         return
     if not content.real.extension():
         return
     if content.type.resolve() == content.real:
         return
     ns = None
     name = content.real.name
     if self.xstq:
         ns = content.real.namespace('ns1')
     Typer.manual(node, name, ns)
示例#2
0
 def encode(self, node, content):
     # Add (soap) encoding information only if the resolved
     # type is derived by extension.  Further, the xsi:type values
     # is qualified by namespace only if the content (tag) and
     # referenced type are in different namespaces.
     if content.type.any():
         return
     if not content.real.extension():
         return
     if content.type.resolve() == content.real:
         return
     ns = None
     name = content.real.name
     if self.xstq:
         ns = content.real.namespace('ns1')
     Typer.manual(node, name, ns)
示例#3
0
 def test_last_free_namespace(self):
     test_namespace = "test namespace"
     node = self.__class__.MockNode(dict(
         (_prefix(i), "another namespace")
         for i in range(1, 1023)))
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(1023), test_namespace)
     expected_calls = [(_prefix(i), None) for i in range(1, 1024)]
     assert node.mock_call_params == expected_calls
示例#4
0
 def test_several_already_mapped_prefixes(self):
     test_namespace = "test namespace"
     node = self.__class__.MockNode({
         _prefix(1): "another namespace",
         _prefix(2): "another namespace"})
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(3), test_namespace)
     assert node.mock_call_params == [
         (_prefix(i), None) for i in [1, 2, 3]]
示例#5
0
 def test_last_free_namespace(self):
     test_namespace = "test namespace"
     node = self.__class__.MockNode(
         dict(
             (_prefix(i), "another namespace") for i in range(1, 1023)))
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(1023), test_namespace)
     expected_calls = [(_prefix(i), None) for i in range(1, 1024)]
     assert node.mock_call_params == expected_calls
示例#6
0
 def test_several_already_mapped_prefixes(self):
     test_namespace = "test namespace"
     node = self.__class__.MockNode({
         _prefix(1): "another namespace",
         _prefix(2): "another namespace"
     })
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(3), test_namespace)
     assert node.mock_call_params == [(_prefix(i), None)
                                      for i in [1, 2, 3]]
示例#7
0
 def test_already_mapped_namespace_with_no_unused_prefix_before(self):
     test_prefix_index = 2
     test_namespace = "test namespace"
     node = self.__class__.MockNode({
         _prefix(1): "another namespace",
         _prefix(test_prefix_index): test_namespace,
         _prefix(3): "another namespace"})
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(test_prefix_index), test_namespace)
     expected_calls = [(_prefix(i), None)
         for i in range(1, test_prefix_index + 1)]
     assert node.mock_call_params == expected_calls
示例#8
0
    def encode(self, node, content):
        """
        Add (SOAP) encoding information if needed.

        The encoding information is added only if the resolved type is derived
        by extension. Furthermore, the xsi:type value is qualified by namespace
        only if the content (tag) and referenced type are in different
        namespaces.

        """
        if content.type.any():
            return
        if not content.real.extension():
            return
        if content.type.resolve() == content.real:
            return
        ns = None
        name = content.real.name
        if self.xstq:
            ns = content.real.namespace("ns1")
        Typer.manual(node, name, ns)
示例#9
0
    def encode(self, node, content):
        """
        Add (SOAP) encoding information if needed.

        The encoding information is added only if the resolved type is derived
        by extension. Furthermore, the xsi:type value is qualified by namespace
        only if the content (tag) and referenced type are in different
        namespaces.

        """
        if content.type.any():
            return
        if not content.real.extension():
            return
        if content.type.resolve() == content.real:
            return
        ns = None
        name = content.real.name
        if self.xstq:
            ns = content.real.namespace("ns1")
        Typer.manual(node, name, ns)
示例#10
0
 def test_already_mapped_namespace_with_no_unused_prefix_before(self):
     test_prefix_index = 2
     test_namespace = "test namespace"
     node = self.__class__.MockNode({
         _prefix(1): "another namespace",
         _prefix(test_prefix_index): test_namespace,
         _prefix(3): "another namespace"
     })
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(test_prefix_index), test_namespace)
     expected_calls = [(_prefix(i), None)
                       for i in range(1, test_prefix_index + 1)]
     assert node.mock_call_params == expected_calls
示例#11
0
 def encode(self, node, content):
     if content.type.any():
         Typer.auto(node, content.value)
         return
     if content.real.any():
         Typer.auto(node, content.value)
         return
     ns = None
     name = content.real.name
     if self.xstq:
         ns = content.real.namespace()
     Typer.manual(node, name, ns)
示例#12
0
 def encode(self, node, content):
     if content.type.any():
         Typer.auto(node, content.value)
         return
     if content.real.any():
         Typer.auto(node, content.value)
         return
     ns = None
     name = content.real.name
     if self.xstq:
         ns = content.real.namespace()
     Typer.manual(node, name, ns)
示例#13
0
 def encode(self, node, content):
     if content.type.any():
         Typer.auto(node, content.value)
         return
     resolved = self.resolver.top().resolved
     if resolved is None:
         resolved = content.type.resolve()
     if resolved.any():
         Typer.auto(node, content.value)
         return
     ns = None
     name = resolved.name
     if self.options.xstq:
         ns = resolved.namespace()
     Typer.manual(node, name, ns)
示例#14
0
 def test_no_mapped_prefixes(self):
     node = self.__class__.MockNode({})
     test_namespace = "test namespace"
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(1), test_namespace)
     assert node.mock_call_params == [(_prefix(1), None)]
示例#15
0
 def test_no_mapped_prefixes(self):
     node = self.__class__.MockNode({})
     test_namespace = "test namespace"
     result = Typer.genprefix(node, ("unused-prefix", test_namespace))
     assert result == (_prefix(1), test_namespace)
     assert node.mock_call_params == [(_prefix(1), None)]