def __individual_identification_schema(self, params):
        param_schema = Schema(
            {
                'name': {
                    'type': basestring,
                    'required': True
                },
                'country': {
                    'type': basestring,
                    'required': True
                },
                'mobile': {
                    'type': basestring,
                    'required': True
                },
                'doc_type': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('ID', 'PASSPORT')
                },
                'doc_number': {
                    'type': basestring,
                    'required': True
                },
                'address': {
                    'type': basestring,
                    'required': True
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值
예제 #2
0
    def get_deposits(self, params):
        param_schema = Schema(
            {
                'from_created_at': {
                    'type': basestring,
                    'required': True
                },
                'to_created_at': {
                    'type': basestring,
                    'required': True
                },
                'currency': {
                    'type': basestring,
                    'required': True
                },
                'status': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('CREDITED', 'PROCESSING', 'CANCELED')
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        return KeyVariables(
            params=params,
            url='deposits',
            method='GET',
        )
    def get_bacc(self, params):
        param_schema = Schema(
            {
                'bank_account_number': {
                    'type': basestring,
                    'required': True
                },
                'purpose': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('PAYER', 'BENEFICIARY')
                },
                'currency': {
                    'type': basestring,
                    'required': True
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        return KeyVariables(
            params=params,
            url='account/bank_account',
            method='GET',
        )
    def update_invoice(self, params):
        address_schema = Schema({
            'line1': {'type': basestring, 'required': True},
            'city': {'type': basestring, 'required': False},
            'state': {'type': basestring, 'required': False},
            'postal_code': {'type': basestring, 'required': False},
            'country': {'type': basestring, 'required': False},
        })

        recipient_schema = Schema({
            'dob': {'type': basestring, 'required': True},
            'entity_type': {'type': basestring, 'required': True, 'validates': one_of('INDIVIDUAL', 'COMPANY')},
            'first_name': {'type': basestring, 'required': True},
            'last_name': {'type': basestring, 'required': True},
            'document_type': {'type': basestring, 'required': True},
            'document_number': {'type': basestring, 'required': True},
            'email': {'type': basestring, 'required': False},
            'mobile': {'type': basestring, 'required': False},
            'address': {'type': address_schema, 'required': False},
            'bank_account_number': {'type': basestring, 'required': False},
            'bank_name': {'type': basestring, 'required': False},
        }, strict=False)

        unit_price_schema = Schema({
            'currency': {'type': basestring, 'required': True},
            'amount': {'type': numbers.Number, 'required': True},
        })

        products_schema = Schema({
            'name': {'type': basestring, 'required': True},
            'quantity': {'type': int, 'required': True},
            'unit_price': {'type': unit_price_schema, 'required': True}
        })

        param_schema = Schema({
            'recipient': {'type': recipient_schema, 'required': True},
            'products': {'type': Array(products_schema), 'required': True},
            'memo': {'type': basestring, 'required': False},
            'out_trade_id': {'type': basestring, 'required': False},
            'currency': {'type': basestring, 'required': True},
            'amount': {'type': numbers.Number, 'required': True},
            'ex_invoice_no': {'type': basestring, 'required': True},
        }, strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        # 校验数据
        return KeyVariables(
            params=json.dumps(params),
            url='invoice',
            method='PUT',
        )
    def get_baccs(self, params):
        param_schema = Schema(
            {
                'purpose': {
                    'type': basestring,
                    'required': False,
                    'validates': one_of('PAYER', 'BENEFICIARY')
                },
                'status': {
                    'type': basestring,
                    'required': False,
                    'validates': one_of('NEW', 'APPROVED', 'PENDING', 'DENIED')
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        return KeyVariables(
            params=params,
            url='account/bank_accounts',
            method='GET',
        )
    def get_transfers(self, params):

        param_schema = Schema({
            'from_created_at': {'type': basestring, 'required': False},
            'to_created_at': {'type': basestring, 'required': False},
            'send_currency': {'type': basestring, 'required': False},
            'receive_currency': {'type': basestring, 'required': False},
            'status': {'type': basestring, 'required': False, 'validates': one_of('RISK', 'PAYMENT', 'CONVERSION', 'DELIVERY')},
        }, strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        # 校验数据
        return KeyVariables(
            params=params,
            url='transfers',
            method='GET',
        )
    def create_acc(self, params):
        param_schema = Schema(
            {
                'account': {
                    'type': basestring,
                    'required': False
                },
                'password': {
                    'type': basestring,
                    'required': False
                },
                'entity_type': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('COMPANY', 'INDIVIDUAL')
                },
                'secret': {
                    'type': basestring,
                    'required': False
                },
                'partner': {
                    'type': basestring,
                    'required': True
                },
                'callback_url': {
                    'type': basestring,
                    'required': False
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值

        # 校验数据
        return KeyVariables(
            params=params,
            url='account',
            method='POST',
        )
예제 #8
0
 def test_invalid_array(self):
     self.validator = one_of(['peas', 'carrots'])
     self.assertEqual(
         "'sweetcorn' is not in the list ['peas', 'carrots']",
         self.validator('sweetcorn'))
예제 #9
0
app_depends_schema = Schema({
    'services': {'type': Array(basestring), 'default': list},
    'apps': {'type': Array(basestring), 'default': list},
    'libs': {'type': Array(basestring), 'default': list}
    })

conditional_links_schema = Schema({
    'services': {'type': Array(basestring), 'default': list},
    'apps': {'type': Array(basestring), 'default': list},
    })

host_forwarding_schema = Schema({
    'host_name': {'type': basestring},
    'host_port': {'type': int},
    'container_port': {'type': int},
    'type': {'type': basestring, 'default': 'http', 'validates': one_of('http', 'stream')}
    })

commands_schema = Schema({
    'always': {'type': Array(basestring), 'required': True, 'default': list},
    'once': {'type': Array(basestring), 'default': list}
    })

script_schema = Schema({
    'name': {'type': basestring, 'required': True},
    'description': {'type': basestring},
    'command': {'type': Array(basestring), 'required': True}
    })

dusty_app_compose_schema = Schema({
    'volumes': {'type': Array(basestring), 'default': list}
예제 #10
0
 def test_single_validation_function(self):
     Schema({'some_field': {'type':int, "validates":one_of(['a', 'b'])}})
    def create_baccs(self, params):
        bank_schema = Schema(
            {
                'name': {
                    'type': basestring,
                    'required': True
                },
                'branch': {
                    'type': basestring,
                    'required': False
                },
                'swift_code': {
                    'type': basestring,
                    'required': True
                },
                'routing_number': {
                    'type': basestring,
                    'required': False
                },
                'bsb_code': {
                    'type': basestring,
                    'required': False
                },
            },
            strict=False)

        holder_schema = Schema(
            {
                'name': {
                    'type': basestring,
                    'required': True
                },
                'doc_type': {
                    'type':
                    basestring,
                    'required':
                    False,
                    'validates':
                    one_of('ID', 'PASSPORT', 'DRIVER_LICENSE', 'CI', 'BR')
                },
                'doc_number': {
                    'type': basestring,
                    'required': False
                },
                'contact': {
                    'type': basestring,
                    'required': False
                },
                'type': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('COMPANY', 'INDIVIDUAL')
                },
                'dob': {
                    'type': basestring,
                    'required': False
                },
                'country': {
                    'type': basestring,
                    'required': False
                },
                'address': {
                    'type': basestring,
                    'required': False
                },
            },
            strict=False)

        param_schema = Schema(
            {
                'bank': {
                    'type': bank_schema,
                    'required': True
                },
                'country': {
                    'type': basestring,
                    'required': True
                },
                'currency': {
                    'type': basestring,
                    'required': True
                },
                'bank_account_number': {
                    'type': basestring,
                    'required': True
                },
                'holder': {
                    'type': holder_schema,
                    'required': True
                },
                'purpose': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('PAYER', 'BENEFICIARY')
                },
                'iban': {
                    'type': basestring,
                    'required': False
                },
            },
            strict=False)

        for bacc in params:
            param_schema.validate(bacc)  # 检测不通过直接抛异常
            param_schema.apply_defaults(bacc)  # attach 默认值

        return KeyVariables(
            params=json.dumps(params),
            url='account/bank_accounts',
            method='POST',
        )
예제 #12
0
    def validate(value):
        if 'modification_date'in value and not value['modification_date'] <= value['final_date']:
            return 'modification_date must be less than or equal to final_date'
    return validate

blog_post_schema = Schema({
    "author":               {"type": get_author_schema, "required": True},
    "content":              {"type": Schema({
        "title":            {"type": basestring, "required": True},
        "text":             {"type": basestring, "required": True},
        "page_views":       {"type": int, "default": 1}
    }), "required": True},
    "meta":                 {"type": Schema({
        "last_edited":      {"type": datetime}
    }), "required": True, "nullable": True},
    "category":             {"type": basestring, "validates": one_of("cooking", "politics")},
    "comments":             {"type": Array(comment_schema), "required": True},
    "likes":                {"type": int, "default": 0},
    "creation_date":        {"type": datetime, "default": stubnow},
    "tags":                 {"type": Array(basestring), "default": ["blog"], "validates": length(1)},
    "misc":                 {"type": Mixed(basestring, int)},
    "linked_id":            {"type": Mixed(int, basestring)},
    "external_code":        {"type": basestring, "nullable": False},
    "website":              {"type": get_website_schema},
    "editors":              {"type": Array(lambda document: name_schema if isinstance(document, dict) else basestring)},
    "latest_comment":       {"type": comment_schema, "default": {}},
    "most_popular_comments":{"type": Array(comment_schema), "default": [{}, {}, {}]},
    "modification_date":    {"type": datetime},
    "final_date":           {"type": datetime}
}, validates=[mod_date_gt_creation_date(), mod_date_lte_final_date()])
예제 #13
0
 def test_valid(self):
     self.validator = one_of('peas', 'carrots')
     self.assertIsNone(self.validator('peas'))
     self.assertIsNone(self.validator('carrots'))
예제 #14
0
 def test_invalid_array(self):
     self.validator = one_of(['peas', 'carrots'])
     self.assertEqual("'sweetcorn' is not in the list ['peas', 'carrots']",
                      self.validator('sweetcorn'))
예제 #15
0
파일: app_schema.py 프로젝트: thieman/dusty
})

host_forwarding_schema = Schema({
    'host_name': {
        'type': basestring
    },
    'host_port': {
        'type': int
    },
    'container_port': {
        'type': int
    },
    'type': {
        'type': basestring,
        'default': 'http',
        'validates': one_of('http', 'stream')
    }
})

commands_schema = Schema({
    'always': {
        'type': Array(basestring),
        'required': True,
        'default': list
    },
    'once': {
        'type': Array(basestring),
        'default': list
    }
})
예제 #16
0
 def test_valid(self):
     self.validator = one_of('peas', 'carrots')
     self.assertIsNone(self.validator('peas'))
     self.assertIsNone(self.validator('carrots'))
예제 #17
0
 def test_single_validation_function(self):
     Schema({'some_field': {'type': int, "validates": one_of(['a', 'b'])}})
    def __company_identification_schema(self, params):
        param_schema = Schema(
            {
                'org_name': {
                    'type': basestring,
                    'required': True
                },
                'office_op_address': {
                    'type': basestring,
                    'required': True
                },
                'contact_name': {
                    'type': basestring,
                    'required': True
                },
                'contact_email': {
                    'type': basestring,
                    'required': True
                },
                'contact_phone': {
                    'type': basestring,
                    'required': True
                },
                'contact_country': {
                    'type': basestring,
                    'required': True
                },
                'contact_address': {
                    'type': basestring,
                    'required': True
                },
                'contact_position': {
                    'type': basestring,
                    'required': True
                },
                'website': {
                    'type': basestring,
                    'required': False
                },
                'company_type': {
                    'type':
                    basestring,
                    'required':
                    True,
                    'validates':
                    one_of('有限责任公司 (LLC)', '股份有限公司 (INC)', '合伙人', '个人独资',
                           '上市公司', '非政府组织/慈善机构', '国有企业')
                },
                'industry': {
                    'type':
                    basestring,
                    'required':
                    False,
                    'validates':
                    one_of('旅行,运输,住宿及物流', '办公,工业,汽车以药品器械灯专用品商店', '生活方式及零售类商店',
                           '互联网计算机及电子服务', '医疗、教育、咨询等专业服务', '商业及其他类服务', '国有企业')
                },
                'major_funds_source': {
                    'type':
                    basestring,
                    'required':
                    False,
                    'validates':
                    one_of('营业收入,住宿及物流', '股东出资', '投资收益', '借款/贷款', '政府投资',
                           '慈善捐款', '其它')
                },
                'year_transfer_amount': {
                    'type': basestring,
                    'required': True
                },
                'piece_transfer_amount': {
                    'type': basestring,
                    'required': True
                },
                'credit_code': {
                    'type': basestring,
                    'required': False
                },
                'business_code': {
                    'type': basestring,
                    'required': True
                },
                'business_country': {
                    'type': basestring,
                    'required': True
                },
                'register_country': {
                    'type': basestring,
                    'required': True
                },
                'issue_bearer_share': {
                    'type': basestring,
                    'required': True,
                    'validates': one_of('true', 'false')
                },
            },
            strict=False)

        param_schema.validate(params)  # 检测不通过直接抛异常
        param_schema.apply_defaults(params)  # attach 默认值