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)
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
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]]
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
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]]
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
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)
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
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)
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)
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)]