def test_can_include_imported_schemas_during_validation(self):
        # In case the SOAPDispatcher would not use imported schemas for
        # validation it would fail because the 'code' tag is only defined in
        # the imported schema
        handler, handler_state = echo_handler()
        service = echo_service(handler)

        class CodeType(xsd.String):
            pattern = r'[0-9]{5}'

        class Container(xsd.ComplexType):
            value = xsd.Element(CodeType)

        code_schema = xsd.Schema(
            'http://soap.example/included',
            location='http://soap.example/included',
            elementFormDefault=xsd.ElementFormDefault.UNQUALIFIED,
            simpleTypes=[CodeType],
            complexTypes=[Container],
            elements={'foo': xsd.Element(Container)},
        )
        service.methods[0].input = 'foo'
        service.schemas[0].imports = [code_schema]
        # The setup is a bit simplistic because the <code> tag is not parsed
        # into a soapfish model element for the handler but this was enough
        # to trigger the bug
        dispatcher = SOAPDispatcher(service)
        wsgi_environ = dict(SOAPACTION='echo', REQUEST_METHOD='POST')
        soap_message = '<ns0:foo xmlns:ns0="http://soap.example/included"><value>12345</value></ns0:foo>'
        request = SOAPRequest(wsgi_environ,
                              self._wrap_with_soap_envelope(soap_message))
        response = dispatcher.dispatch(request)
        self.assert_is_successful_response(response, handler_state)
        assert_equals('12345', handler_state.input_.value)
Example #2
0
    def test_can_generate_schema_xml_containing_types_with_pattern_restriction(
            self):
        ns = 'http://soap.example/pattern.xsd'

        class Container(xsd.ComplexType):
            code = xsd.Element(xsd.String(pattern='[0-9]{0,5}'))

        schema = xsd.Schema(
            ns,
            location=ns,
            elementFormDefault=xsd.ElementFormDefault.QUALIFIED,
            complexTypes=(Container, ),
            elements={
                'foo': xsd.Element(Container),
            },
        )
        # previously this would fail
        xsd_element = generate_xsd(schema)
        xmlschema = etree.XMLSchema(xsd_element)
        valid_xml = '<foo xmlns="%s"><code>1234</code></foo>' % ns

        def is_valid(s):
            return xmlschema.validate(etree.fromstring(s))

        self.assertIs(is_valid(valid_xml), True)

        bad_xml = '<foo xmlns="%s"><code>abc</code></foo>' % ns
        self.assertIs(is_valid(bad_xml), False)
Example #3
0
    def test_can_lookup_element_by_name(self):
        class CodeType(xsd.String):
            pattern = r'[0-9]{5}'

        ns = 'http://soap.example/schema.xsd'
        schema = xsd.Schema(
            ns,
            location=ns,
            elementFormDefault=xsd.ElementFormDefault.QUALIFIED,
            simpleTypes=[CodeType],
            elements={'code': xsd.Element(CodeType)},
        )
        schema_element = schema.get_element_by_name('code')
        self.assertEqual(CodeType, schema_element._passed_type)
        self.assertIsNone(schema.get_element_by_name('invalid'))
Example #4
0
 def test_parsexml_with_soapfish_schema(self):
     # sometimes it comes handy that soapfish can validate some XML against a
     # provided soapfish schema (instead of an etree.XMLSchema) especially in
     # testing.
     class A(xsd.ComplexType):
         name = xsd.Element(xsd.String, nillable=True)
     ns = 'http://foo.example'
     soapfish_schema = xsd.Schema(ns,
         imports=[],
         elementFormDefault=xsd.ElementFormDefault.UNQUALIFIED,
         simpleTypes=[],
         attributeGroups=[],
         groups=[],
         complexTypes=[A],
         elements={'foo': xsd.Element(A)},
     )
     xml = '<test:foo xmlns:test="%s"><name>bar</name></test:foo>' % ns
     foo = A.parsexml(xml, schema=soapfish_schema)
     assert_equals('bar', foo.name)
Example #5
0
    INDICATOR = xsd.Sequence
    ElServicioEstaDisponibleResult = xsd.Element(xsd.Boolean, minOccurs=1)

    @classmethod
    def create(cls, ElServicioEstaDisponibleResult):
        instance = cls()
        instance.ElServicioEstaDisponibleResult = ElServicioEstaDisponibleResult
        return instance


Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.FVA_HOST,
    elementFormDefault='qualified',
    simpleTypes=[AlgoritmoDeHash],
    attributeGroups=[],
    groups=[],
    complexTypes=[SolicitudDeFirma, RespuestaDeLaSolicitud, SolicitudDeFirmaPdf],
    elements={'RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirma': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirma()), 'RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirmaResponse': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirmaResponse()), 'RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedContraFirma': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedContraFirma()), 'RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedContraFirmaResponse': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedContraFirmaResponse()), 'RecibaLaSolicitudDeSelladoElectronicoMSOffice': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoMSOffice()), 'RecibaLaSolicitudDeSelladoElectronicoMSOfficeResponse': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoMSOfficeResponse()), 'RecibaLaSolicitudDeSelladoElectronicoPdf': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoPdf()), 'RecibaLaSolicitudDeSelladoElectronicoPdfResponse': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoPdfResponse()), 'RecibaLaSolicitudDeSelladoElectronicoOdf': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoOdf()), 'RecibaLaSolicitudDeSelladoElectronicoOdfResponse': xsd.Element(RecibaLaSolicitudDeSelladoElectronicoOdfResponse()), 'ElServicioEstaDisponible': xsd.Element(ElServicioEstaDisponible()), 'ElServicioEstaDisponibleResponse': xsd.Element(ElServicioEstaDisponibleResponse())},
)


##############################################################################
# Methods


RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirma_method = xsd.Method(
    soapAction=settings.FVA_HOST + 'RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirma',
    input='RecibaLaSolicitudDeSelladoElectronicoXmlEnvelopedCoFirma',
    inputPartName='parameters',
Example #6
0
        instance.AppliedDocument = AppliedDocument
        return instance

    def __str__(self):
        return 'Номер: %s\nДата регистрации: %s\nУслуга: %s\n' \
               'Контрольный срок: %s\nЗаявители: %s\nДокументы: %s' % \
               (self.declar_number, self.register_date.strftime('%d.%m.%Y'),
                self.service, self.end_date.strftime('%d.%m.%Y'),
                (', '.join([l.full_name for l in self.legal_entity]) + '; '
                if len(self.legal_entity) else '') +
                ', '.join(['%s %s %s' % (p.surname, p.first_name, p.patronymic)
                           for p in self.person if p.surname]),
                ', '.join(['%s № %s от %s' %
                           (d.title, d.number, d.date.strftime('%d.%m.%Y'))
                           for d in self.AppliedDocument]))


Schema_ef09a = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace='urn://augo/smev/uslugi/1.0.0',
    elementFormDefault='qualified',
    simpleTypes=[AgentType, Sex, S6, S10, S50, S120, S1024],
    attributeGroups=[],
    groups=[],
    complexTypes=[
        Address, AppliedDocument, LegalEntity, Individual, RequestResponse
    ],
    elements={'declar': xsd.Element(Declar())},
)
Example #7
0

class GetWeatherByPlaceName(xsd.ComplexType):
    Place = xsd.Element(Place)


class AppHeader(xsd.ComplexType):
    Version = xsd.Element(xsd.String)
    Message = xsd.Element(GetWeatherByPlaceName)


Schema_qualified = xsd.Schema(
    targetNamespace='http://www.example.org',
    elementFormDefault=xsd.ElementFormDefault.QUALIFIED,
    complexTypes=[GetWeatherByPlaceName, AppHeader, Place],
    elements={
        'GetWeatherByPlaceName': xsd.Element(GetWeatherByPlaceName),
        'AppHeader': xsd.Element(AppHeader),
        'Identity': xsd.Element(xsd.String),
    },
)
XMLSchema_qualified = etree.XMLSchema(generate_xsd(Schema_qualified))


class WsaAppHeader(wsa.Header):
    SCHEMA = Schema_qualified
    Identity = SCHEMA.get_element_by_name('Identity')


class PlaceU(xsd.ComplexType):
    Name = xsd.Element(xsd.String)
Example #8
0
        xsd.String(enumeration=['INSERTED', 'UPDATED', 'EXISTS']))
    id = xsd.Element(xsd.Long)

    @classmethod
    def create(cls, action, id):
        instance = cls()
        instance.action = action
        instance.id = id
        return instance


Schema = xsd.Schema(targetNamespace='http://flightdataservices.com/ops.xsd',
                    elementFormDefault='unqualified',
                    simpleTypes=[Pilot],
                    attributeGroups=[],
                    groups=[],
                    complexTypes=[Airport, Weight, Ops, Status],
                    elements={
                        'ops': xsd.Element('Ops'),
                        'status': xsd.Element('Status')
                    })

PutOps_method = xsd.Method(
    soapAction='http://polaris.flightdataservices.com/ws/ops/PutOps',
    input='ops',  # Pointer to Schema.elements
    inputPartName='body',
    output='status',  # Pointer to Schema.elements
    outputPartName='body',
    operationName='PutOps')

PutOpsPort_SERVICE = soap.Service(
    name='PutOpsPort',
Example #9
0
                                   tagname='userProperty',
                                   maxOccurs=xsd.UNBOUNDED)

    @classmethod
    def create(cls, userProperty):
        instance = cls()
        instance.userProperty = userProperty
        return instance


Schema_e8a30 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace='http://pda.cineca.it/unical/anagrafe',
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[UserPropertyType],
    elements={'userProperties': xsd.Element(UserProperties())},
)

# it.cineca.pda.ws.anagrafe

Schema_d14fd = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace='it.cineca.pda.ws.anagrafe',
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
Example #10
0
        xsd.String(enumeration=["INSERTED", "UPDATED", "EXISTS"]))
    id = xsd.Element(xsd.Long)

    @classmethod
    def create(cls, action, id):
        instance = cls()
        instance.action = action
        instance.id = id
        return instance


Schema = xsd.Schema(targetNamespace="http://flightdataservices.com/ops.xsd",
                    elementFormDefault="unqualified",
                    simpleTypes=[Pilot],
                    attributeGroups=[],
                    groups=[],
                    complexTypes=[Airport, Weight, Ops, Status],
                    elements={
                        "ops": xsd.Element("Ops"),
                        "status": xsd.Element("Status")
                    })

PutOps_method = xsd.Method(
    soapAction="http://polaris.flightdataservices.com/ws/ops/PutOps",
    input="ops",  # Pointer to Schema.elements
    inputPartName="body",
    output="status",  # Pointer to Schema.elements
    outputPartName="body",
    operationName="PutOps")

PutOpsPort_SERVICE = soap.Service(
    name="PutOpsPort",
    INDICATOR = xsd.Sequence
    returnMessage = xsd.Element(xsd.String, minOccurs=0)

    @classmethod
    def create(cls):
        instance = cls()
        return instance


Schema_ab251 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace='http://example.com/HelloWorld',
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[],
    elements={
        'RequestInterface': xsd.Element(RequestInterface()),
        'ResponseInterface': xsd.Element(ResponseInterface())
    },
)

##############################################################################
# Operations


def requestMessage(request, RequestInterface):

    # FIXME 自分のものに差し替え
    # TODO: Put your implementation here.
Example #12
0
                             tagname="price",
                             minOccurs=0,
                             maxOccurs=xsd.UNBOUNDED,
                             nillable=True)


class Users(xsd.ComplexType):
    INHERITANCE = None
    user = xsd.ListElement(User, tagname="users", minOccurs=0)


Schema = xsd.Schema(
    # Should be unique URL, can be any string.
    targetNamespace="http://next.me/user.xsd",
    # Register all complex types to schema.
    complexTypes=[Users, User, GetUser],
    elements={
        "getUser": xsd.Element(GetUser),
        "users": xsd.Element(Users),
        "user": xsd.Element(User)
    })


def get_user(request, user=None):
    fid = user.id
    users = Users()
    for i in range(0, 10):
        uu = User(name="Sandro - {}".format(i),
                  city="São Paulo",
                  email="*****@*****.**",
                  mobile="11991504030",
                  address="Rua xpto",
Example #13
0
    ValideElServicioResult = xsd.Element(xsd.Boolean, minOccurs=1)

    @classmethod
    def create(cls, ValideElServicioResult):
        instance = cls()
        instance.ValideElServicioResult = ValideElServicioResult
        return instance


Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.FVA_HOST,
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[SolicitudDeAutenticacion,
                  ExtensionDataObject, RespuestaDeLaSolicitud, InformacionSuscriptorDesconectado],
    elements={'RecibaLaSolicitudDeAutenticacion': xsd.Element(RecibaLaSolicitudDeAutenticacion()), 'RecibaLaSolicitudDeAutenticacionResponse': xsd.Element(
        RecibaLaSolicitudDeAutenticacionResponse()), 'ValideElServicio': xsd.Element(ValideElServicio()), 'ValideElServicioResponse': xsd.Element(ValideElServicioResponse())},
)


##############################################################################
# Methods


RecibaLaSolicitudDeAutenticacion_method = xsd.Method(
    soapAction=settings.FVA_HOST + 'RecibaLaSolicitudDeAutenticacion',
    input='RecibaLaSolicitudDeAutenticacion',
from django.conf import settings
from soapfish import xsd


class UserNotFoundException(xsd.ComplexType):
    #  name = xsd.Element(xsd.String, minOccurs=1, nillable=True)
    #  type = xsd.Element(xsd.Integer, minOccurs=1, nillable=True)
    pass


Schema_UserNotFoundException = xsd.Schema(
    targetNamespace='{}/soap/User.xsd'.format(settings.FQDN),
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[
        UserNotFoundException,
    ],
    elements={'UserNotFoundException': xsd.Element(UserNotFoundException)},
)


class SystemException(xsd.ComplexType):
    #  name = xsd.Element(xsd.String, minOccurs=1, nillable=True)
    #  type = xsd.Element(xsd.Integer, minOccurs=1, nillable=True)
    pass


Schema_SystemException = xsd.Schema(
    imports=[],
Example #15
0
    style='document',
)

Schema_5dace = xsd.Schema(
    # imports=[Schema_e65b4],
    includes=[],
    targetNamespace=
    'urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.2',
    elementFormDefault='qualified',
    simpleTypes=[InteractionStatusType],
    attributeGroups=[],
    groups=[],
    complexTypes=[
        XMLDSigSignatureType, AttachmentContentType, Void,
        AttachmentHeaderType, RefAttachmentHeaderType, FSAuthInfo, SmevFault
    ],
    elements={
        'AckTargetMessage': xsd.Element(AckTargetMessage()),
        'AttachmentContentList': xsd.Element(AttachmentContentList()),
        'AttachmentHeaderList': xsd.Element(AttachmentHeaderList()),
        'FSAttachmentsList': xsd.Element(FSAttachmentsList()),
        'MessagePrimaryContent': xsd.Element(MessagePrimaryContent()),
        'MessageReference': xsd.Element(MessageReference()),
        'MessageTypeSelector': xsd.Element(MessageTypeSelector()),
        'RefAttachmentHeaderList': xsd.Element(RefAttachmentHeaderList()),
        'Timestamp': xsd.Element(Timestamp())
    },
)

Schema_a6a2c = xsd.Schema(
    imports=[Schema_5dace],
Example #16
0
        instance = cls()
        instance.ValideElServicioResult = ValideElServicioResult
        return instance


Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.FVA_HOST,
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[ResultadoDeLaSolicitud, InformacionDelCertificado],
    elements={
        'SoliciteLaValidacionDelCertificadoDeAutenticacion':
        xsd.Element(SoliciteLaValidacionDelCertificadoDeAutenticacion()),
        'SoliciteLaValidacionDelCertificadoDeAutenticacionResponse':
        xsd.Element(
            SoliciteLaValidacionDelCertificadoDeAutenticacionResponse()),
        'ValideElServicio':
        xsd.Element(ValideElServicio()),
        'ValideElServicioResponse':
        xsd.Element(ValideElServicioResponse())
    },
)

##############################################################################
# Methods

SoliciteLaValidacionDelCertificadoDeAutenticacion_method = xsd.Method(
Example #17
0
Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.FVA_HOST,
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[
        ResultadoValidacionCoFirma, ArrayOfErrorDeDocumentoCoFirma,
        ErrorDeDocumentoCoFirma, ArrayOfString, ArrayOfFirmante, Firmante,
        ResultadoValidacionContraFirma, ArrayOfErrorDeDocumentoContraFirma,
        ErrorDeDocumentoContraFirma, ResultadoValidacionMsOffice,
        ArrayOfErrorDeDocumentoMsOffice, ErrorDeDocumentoMsOffice,
        ResultadoValidacionOdf, ArrayOfErrorDeDocumentoOdf,
        ErrorDeDocumentoOdf, ResultadoValidacionPdf,
        ArrayOfErrorDeDocumentoPdf, ErrorDeDocumentoPdf
    ],
    elements={
        'ValideElDocumentoXmlEnvelopedCoFirma':
        xsd.Element(ValideElDocumentoXmlEnvelopedCoFirma()),
        'ValideElDocumentoXmlEnvelopedCoFirmaResponse':
        xsd.Element(ValideElDocumentoXmlEnvelopedCoFirmaResponse()),
        'ValideElDocumentoXmlEnvelopedContraFirma':
        xsd.Element(ValideElDocumentoXmlEnvelopedContraFirma()),
        'ValideElDocumentoXmlEnvelopedContraFirmaResponse':
        xsd.Element(ValideElDocumentoXmlEnvelopedContraFirmaResponse()),
        'ValideElDocumentoMSOffice':
        xsd.Element(ValideElDocumentoMSOffice()),
        'ValideElDocumentoMSOfficeResponse':
        xsd.Element(ValideElDocumentoMSOfficeResponse()),
        'ValideElDocumentoOdf':
        xsd.Element(ValideElDocumentoOdf()),
        'ValideElDocumentoOdfResponse':
        xsd.Element(ValideElDocumentoOdfResponse()),
        'ValideElDocumentoPdf':
        xsd.Element(ValideElDocumentoPdf()),
        'ValideElDocumentoPdfResponse':
        xsd.Element(ValideElDocumentoPdfResponse()),
        'ValideElServicio':
        xsd.Element(ValideElServicio()),
        'ValideElServicioResponse':
        xsd.Element(ValideElServicioResponse())
    },
)
Example #18
0
    @classmethod
    def create(cls, ValideElServicioResult):
        instance = cls()
        instance.ValideElServicioResult = ValideElServicioResult
        return instance


Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.RECEPTOR_HOST,
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[ResultadoDeFirma],
    elements={
        'NotifiqueLaRespuesta': xsd.Element(NotifiqueLaRespuesta()),
        'NotifiqueLaRespuestaResponse':
        xsd.Element(NotifiqueLaRespuestaResponse()),
        'ValideElServicio': xsd.Element(ValideElServicio()),
        'ValideElServicioResponse': xsd.Element(ValideElServicioResponse())
    },
)

##############################################################################
# Operations


def NotifiqueLaRespuesta(request, NotifiqueLaRespuesta):
    result = NotifiqueLaRespuesta.elResultado
Example #19
0
    @classmethod
    def create(cls):
        instance = cls()
        return instance


Schema_09e57 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=
    'urn://x-artefacts-smev-gov-ru/services/service-adapter/types/faults',
    location='${scheme}://${host}/smev-service-adapter-faults.xsd',
    elementFormDefault='qualified',
    simpleTypes=[String_50],
    attributeGroups=[],
    groups=[],
    complexTypes=[Fault],
    elements={
        'SystemFault': xsd.Element(Fault),
        'ValidationFault': xsd.Element(Fault),
        'SyncFault': xsd.Element(Fault)
    },
)

# XXX: Workaround for naming issues related to relative locations!
Schema_33af9 = Schema_09e57

# urn://x-artefacts-smev-gov-ru/services/service-adapter/types

Example #20
0
    V2 = xsd.Element(xsd.Integer, minOccurs=0)
    Vref = xsd.Element(xsd.Integer, minOccurs=0)
    Vapp = xsd.Element(xsd.Integer, minOccurs=0)


class Status(xsd.ComplexType):
    INHERITANCE = None
    INDICATOR = xsd.Sequence
    action = xsd.Element(xsd.String(enumeration=["INSERTED", "UPDATED", "EXISTS"]))
    id = xsd.Element(xsd.Long)


Schema = xsd.Schema(
    targetNamespace="http://flightdataservices.com/ops.xsd",
    simpleTypes=[Pilot],
    attributeGroups=[],
    groups=[],
    complexTypes=[Airport, Weight, Ops, Status],
    elements={"ops": xsd.Element(Ops), "status": xsd.Element(Status)})


XML_REQUIRED_ONLY = """
<ops:ops xmlns:ops="http://flightdataservices.com/ops.xsd">
    <aircraft>N608WB</aircraft>
    <flight_number>123123</flight_number>
    <type>COMMERCIAL</type>

    <takeoff_airport>
        <code_type>ICAO</code_type>
        <code>EGLL</code>
    </takeoff_airport>
Example #21
0
    def create(cls, ValideElServicioResult):
        instance = cls()
        instance.ValideElServicioResult = ValideElServicioResult
        return instance


Schema_c49e7 = xsd.Schema(
    imports=[],
    includes=[],
    targetNamespace=settings.FVA_HOST,
    elementFormDefault='qualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[RespuestaDeLaSolicitud],
    elements={
        'ExisteUnaSolicitudDeFirmaCompleta':
        xsd.Element(ExisteUnaSolicitudDeFirmaCompleta()),
        'ExisteUnaSolicitudDeFirmaCompletaResponse':
        xsd.Element(ExisteUnaSolicitudDeFirmaCompletaResponse()),
        'ValideElServicio':
        xsd.Element(ValideElServicio()),
        'ValideElServicioResponse':
        xsd.Element(ValideElServicioResponse())
    },
)

##############################################################################
# Methods

ExisteUnaSolicitudDeFirmaCompleta_method = xsd.Method(
    soapAction=settings.FVA_HOST + 'ExisteUnaSolicitudDeFirmaCompleta',
Example #22
0

class StockPrice(xsd.ComplexType):
    nillable = xsd.Element(xsd.Int, nillable=True)
    prices = xsd.ListElement(xsd.Decimal(fractionDigits=2),
                             tagname="price",
                             minOccurs=0,
                             maxOccurs=xsd.UNBOUNDED,
                             nillable=True)


Schema = xsd.Schema(
    # Should be unique URL, can be any string.
    targetNamespace="http://code.google.com/p/soapfish/stock.xsd",
    # Register all complex types to schema.
    complexTypes=[GetStockPrice, StockPrice],
    elements={
        "getStockPrice": xsd.Element(GetStockPrice),
        "stockPrice": xsd.Element(StockPrice)
    })


def get_stock_price(request, gsp):
    print(gsp.company, gsp.datetime)
    sp = StockPrice(nillable=xsd.NIL)
    sp.prices.append(13.29)
    sp.prices.append(4.56)
    sp.prices.append(xsd.NIL)
    return sp

Example #23
0
    def __repr__(self):
        return '{} [{}]'.format(self.Username,
                                self.CodiceFiscale)


class GetUser(xsd.ComplexType):
    CodiceFiscale  = xsd.Element(xsd.String, minOccurs=1, nillable=True)
    Username = xsd.Element(xsd.String, minOccurs=1, nillable=True)


Schema_User = xsd.Schema(
    targetNamespace='{}/soap/User.xsd'.format(settings.FQDN),
    elementFormDefault='unqualified',
    simpleTypes=[],
    attributeGroups=[],
    groups=[],
    complexTypes=[User, GetUser, UserNotFoundException],
    elements = {
                'getUser': xsd.Element(GetUser),
                'User': xsd.Element(User)},
)


def get_user_details(request, user_id):
    """
    Fill the method you need to get the users values
    and return a User ComplexType
    """
    try:
        func = import_string(getattr(settings, 'SOAP_UNIREG_IDENTITY_HANDLER'))
        res = func(user_id)