class DisseminationStatus(ComplexModel): __namespace__ = "http://dissemination.harness.openwis.org/" requestId = Unicode.customize(sub_ns="") requestStatus = Unicode( values=[REQ_STATUS.ongoing, REQ_STATUS.succeeded, REQ_STATUS.failed ]).customize(sub_ns="") message = Unicode.customize(sub_ns="") def __init__(self, requestId, requestStatus, message): super(DisseminationStatus, self).__init__() self.requestId = requestId self.requestStatus = requestStatus self.message = message
class SDPSimulator(ServiceBase): @rpc(UserCredential, Unicode, Unicode.customize(max_occurs=50), Unicode, Integer, _returns=SendSmsReturn.customize(sub_name='return')) def sendSms(ctx, userCredential, srcAddress, regionIds, msgBody, maxSendCount): order_id = randint(1000000, 99999999999999) exist_number_count = randint(1, maxSendCount) if userCredential.username is None: return SendSmsReturn(errorMsg='Username is empty.', status=status.SEND_USERNAME_NOT_SPECIFIED) elif userCredential.password is None: return SendSmsReturn(errorMsg='Password is empty.', status=status.SEND_PASSWORD_NOT_SPECIFIED) elif srcAddress is None: return SendSmsReturn(errorMsg='source number is empty.', status=status.SEND_SRC_NOT_SPECIFIED) elif regionIds is None: return SendSmsReturn(errorMsg='Region ID not found: 0', status=status.SEND_RECEIVER_NOT_FOUND) elif msgBody is None: return SendSmsReturn(errorMsg='message body is empty.', status=status.SEND_MSG_BODY_NOT_SPECIFIED) elif msgBody is None: return SendSmsReturn(errorMsg='message body is empty.', status=status.SEND_MSG_BODY_NOT_SPECIFIED) elif maxSendCount is None: return SendSmsReturn(errorMsg='maxSendCount should be greater than 0', status=status.SEND_MAX_SEND_COUNT_INVALID) elif maxSendCount > 2000: return SendSmsReturn(errorMsg='maxSendCount should be lower than 2000', status=status.SEND_MAX_SEND_COUNT_EXCEEDED) else: return SendSmsReturn(status=0, existsNumberCount=exist_number_count, orderId=order_id) @rpc(UserCredential, Integer, _returns=GetReportReturn.customize(sub_name='return')) def getReportByOrderId(ctx, userCredential, orderIds): total_sent = randint(1, 2000) success_delivered = randint(10, total_sent) init_date = int(1000 * (time.time() - randint(1, 7200))) if userCredential.username is None: return GetReportReturn(errorMsg='Username is empty.', status=status.SEND_USERNAME_NOT_SPECIFIED) elif userCredential.password is None: return GetReportReturn(errorMsg='Password is empty.', status=status.SEND_PASSWORD_NOT_SPECIFIED) else: report_items = ReportItems(initDate=init_date, orderId=orderIds, successDelivered=success_delivered, totalSent=total_sent) result = GetReportReturn(status=0, reportItem=report_items) return result
def test_simple_type_explicit_customization(self): assert Unicode(max_len=5).__extends__ is not None assert Unicode.customize(max_len=5).__extends__ is not None
# -*- encoding: utf-8 -*- ''' Implementation of the internap authentication token server. ''' from __future__ import print_function import logging from spyne.service import ServiceBase from spyne.decorator import rpc from spyne.model.complex import ComplexModel from spyne.model.primitive import Integer, Unicode from spyne.util.simple import wsgi_soap_application StringType = Unicode.customize(type_name='string', nillable=False) class Authenticate(ComplexModel): strAccount = StringType strToken = StringType strReferrer = StringType strSourceURL = StringType strClientIP = StringType class Attributes(ComplexModel.Attributes): nillable = False min_occurs = 1 class AuthenticateResponse(ComplexModel):