Example #1
0
def test_simple():
    from thriftclient3.payprocessor import PayProcessor
    from zbase3.base import logger
    global log
    logger.install('stdout')
    log = logger.log
    log.debug('test ...')
    serverlist = [
        {
            'addr': ('127.0.0.1', 4300),
            'timeout': 1000
        },
        {
            'addr': ('127.0.0.1', 4200),
            'timeout': 1000
        },
    ]
    sel = selector.Selector(serverlist)
    for i in range(0, 10):
        client = ThriftClient(sel, PayProcessor)
        client.ping()

    server = sel.next()
    server['valid'] = False

    #log.debug('restore ...')
    #restore(sel)
    print('-' * 60)
    for i in range(0, 10):
        client = ThriftClient(sel, PayProcessor)
        client.ping()
Example #2
0
def test1():
    from zbase3.base import logger
    logger.install('stdout')
    sendmail_balance(
            [
             {'smtp':'smtp.exmail.qq.com', 'from':'*****@*****.**', 'password':''},
             {'smtp':'smtp.exmail.qq.com', 'from':'*****@*****.**', 'password':''},
            ],
            '*****@*****.**', 'haha', 'content test 222')
Example #3
0
def test_thread():
    from zbase3.base import logger
    logger.install('stdout')

    class TestThreadServer(BaseThreadServer):
        def make_task(self, client, addr):
            return MyTask(test_handle, client, addr)

    server = TestThreadServer(('127.0.0.1', 10000), TestHandler, 2)
    server.forever()
Example #4
0
def test():
    patch()
    from zbase3.base import logger
    logger.install('stdout')
    import redis
    conn = redis.Redis('172.100.101.106')
    with redis_lock(conn, 'test'):
        import time
        time.sleep(10)
        print(1)
Example #5
0
def test_gevent():
    from zbase3.base import logger
    logger.install('stdout')

    class TestGeventServer(BaseGeventServer):
        def make_server(self):
            server = StreamServer(self.addr, test_handle, spawn=self.pool)
            return server

    server = TestGeventServer(('127.0.0.1', 10000), TestHandler, 2)
    server.forever()
Example #6
0
def test_gevent():
    from zbase3.base import logger
    logger.install('stdout')
    from thriftclient3.session import Session
    import gevent

    class TestHandler:
        def ping(self):
            log.debug('pong')
                 
    server = ThriftServer(('127.0.0.1', 10000), Session, TestHandler, max_proc=2)
    server.forever()
Example #7
0
def test1():
    from zbase3.base import logger
    global log
    log = logger.install('stdout')
    log.info('init')
    tp = ThreadPool(10)
    tp.start()

    class SimpleTask2(Task):
        def __init__(self, n, a=None):
            self.name = n
            super(SimpleTask2, self).__init__(a)

        def run(self):
            log.info('in task run, %s', self.name)
            time.sleep(2)
            log.info('ok, end task run %s', self.name)
            return self.name + '!!!'

    t = SimpleTask2('haha')
    log.info('add ...')
    tp.add(t)

    log.info('result:%s', t.get_result(1000))

    tp.stop()
Example #8
0
def test_thread():
    from zbase3.base import logger
    logger.install('stdout')
    from zbase.thriftclient.payprocessor import PayProcessor

    class TestHandler:
        def ping(self):
            log.debug('pong')
            time.sleep(3)

        def trade(self, jsonstr):
            log.debug('recv:', jsonstr)

    server = ThriftThreadServer(PayProcessor, TestHandler,
                                ('127.0.0.1', 10000), 2)
    server.forever()
Example #9
0
def test4():
    global session_refresh, log
    from zbase3.base import logger
    log = logger.install('stdout')

    cf1 = {
        'store': 'SessionRedis',
        'expire': 3600, 'db': 0,
        'redis': {'host': '127.0.0.1', 'port': 6379},
    }

    sids = []
    for i in range(0, 5):
        x1 = create(cf1, None)
        x1['name'] = 'zhaowei'
        x1['value'] = random.randint(0, 100)
        x1.save()
        sids.append(x1.sid)

        log.debug('refresh cache: %s', session_refresh)

    print('-' * 30)

    for sid in sids:
        log.debug('check %s', sid)
        x1 = create(cf1, sid)
        x1._refresh_time = 2
        x1.refresh()

        log.debug('refresh cache: %s', session_refresh)
        time.sleep(1)
Example #10
0
def test1():
    from zbase3.base import logger
    log = logger.install('stdout')

    fields = [
        Field('age', T_INT),
        Field('money', T_FLOAT),
        Field('name'),
        Field('cate', T_INT),
        Field('income', T_INT),
        Field('test', T_INT),
    ]

    input = {
        'name': 'aaaaa',
        'age': '12',
        'money': '12.44',
        'cate__in': '1,2,3',
        'income__bt': '1000,5000',
        'no_tesst': '123'
    }

    x = Validator(fields)
    ret = x.verify(input)

    if ret:
        for q in ret:
            log.debug(q)
    else:
        log.debug('check ok')

    for f in x._fields:
        log.debug('name:%s, value:%s, valuetype:%s, op:%s' %
                  (f.name, f.value, type(f.value), f.op))
Example #11
0
def test_http():
    from zbase3.base import logger
    from zbase3.base.httpclient import RequestsClient
    logger.install('stdout')
    SERVER = [
        {
            'addr': ('127.0.0.1', 6200),
            'timeout': 20
        },
        {
            'addr': ('127.0.0.1', 6201),
            'timeout': 2000
        },
    ]
    client = HttpClient(SERVER, client_class=RequestsClient)
    while 1:
        print(client.get('/ping'))
        raw_input('go')
Example #12
0
def test():
    global log
    log = logger.install('stdout')

    class MyHandler:
        def ping(self, name):
            log.debug('ping ' + name)
            return 0, 'ping ' + name

    gevent_server(7000, MyHandler, proto='tcp,udp')
Example #13
0
def test_name():
    from thriftclient3.payprocessor import PayProcessor
    from zbase3.base import logger
    global log
    log = logger.install('stdout')
    log.debug('test ...')
    server_name = 'paycore'
    for i in range(0, 10):
        client = ThriftClient(server_name, PayProcessor)
        client.ping()
Example #14
0
def test_fail():
    from zbase3.base import logger
    log = logger.install('stdout')

    s = [
        {'addr':('127.0.0.1', 1001), 'timeout':1000},
        {'addr':('127.0.0.1', 1002), 'timeout':1000},
        {'addr':('127.0.0.1', 1003), 'timeout':1000},
        {'addr':('127.0.0.1', 1004), 'timeout':1000},
    ]
   
    print('test roundrobin')
    servers = ServerList(s)
    for i in range(0, 10):
        one = servers.next()
        print(one)
        assert one['addr'][1] in (1001,1002,1003,1004)



    print('1002 1003 fail')
    servers.fail(s[1])
    servers.fail(s[2])

    for i in range(0, 10):
        one = servers.next()
        print(one)
        assert one['addr'][1] in (1001,1004)

    print('all fail')   
    servers.fail(s[0])
    servers.fail(s[3])

    for i in range(0, 10):
        one = servers.next()
        print(one)
        assert one == None
 
    print('restore 1001 1002')   
    servers.restore(s[0])
    servers.restore(s[1])

    for i in range(0, 10):
        one = servers.next()
        print(one)
        assert one['addr'][1] in (1001,1002)
    
    print('restore all')
    servers.restore(s[2])
    servers.restore(s[3])
    for i in range(0, 10):
        one = servers.next()
        print(one)
        assert one['addr'][1] in (1001,1002,1003,1004)
Example #15
0
def test2():
    from zbase3.thriftclient.encryptor import Encryptor
    from zbase3.base import logger
    global log
    logger.install('stdout')
    log = logger.log
    log.debug('test ...')
    serverlist = [
        {
            'addr': ('127.0.0.1', 4200),
            'timeout': 1000
        },
        {
            'addr': ('127.0.0.1', 4201),
            'timeout': 1000
        },
    ]
    sel = selector.Selector(serverlist)
    for i in range(0, 10):
        client = ThriftClient(sel, Encryptor)
        client.ping()
Example #16
0
def test4():
    from zbase3.base import logger
    log = logger.install('stdout')
    from zbase3.web.httpcore import Request, Response

    class Req:
        def __init__(self, data):
            self.data = data

        def input(self):
            return self.data

    class Test:
        def __init__(self):
            self.req = Req({'name': 'aaaaa', 'age': '12', 'money': '12.44'})
            self.resp = Response()

        @with_validator([
            Field('age', T_INT),
            Field('money', T_INT),
            Field('name'),
        ])
        def testfunc(self):
            log.info('testfunc ...')

        @with_validator([
            Field('age', T_INT),
            Field('money', T_FLOAT),
            Field('name'),
        ])
        def testfunc2(self):
            log.info('testfunc2 ...')

        @with_validator([
            Field('age', T_INT),
            Field('money', T_FLOAT),
            Field('name', T_STR),
        ])
        def testfunc3(self):
            log.info('testfunc3 ...')

    t = Test()
    t.testfunc()
    log.info('after validator: %s', t.validator.data)

    t.testfunc2()
    log.info('after validator: %s', t.validator.data)

    t.testfunc3()
    log.info('after validator: %s', t.validator.data)
Example #17
0
def test_selector():
    from thriftclient3.notifier import Notifier
    from zbase3.base import logger
    global log
    logger.install('stdout')
    log.debug("test framed transport")
    serverlist = [
        {
            'addr': ('172.100.101.151', 15555),
            'timeout': 1000
        },
    ]
    sel = selector.Selector(serverlist)
    client = ThriftClient(sel, Notifier, framed=True)
    notify = {
        "notify_url": "http://172.100.101.151:8989/",
        "notify_data": {
            "orderstatus": "5",
        }
    }
    import json
    ret = client.send_notify(json.dumps(notify))
    log.debug("send notify return:%s", ret)
Example #18
0
def test_ping(port=1000):
    from thriftclient3.spring import Spring
    from zbase3.base import logger
    global log
    log = logger.install('stdout')

    log.debug('test ...')
    serverlist = [
        {
            'addr': ('127.0.0.1', port),
            'timeout': 1000
        },
        #{'addr':('127.0.0.1',4201), 'timeout':1000},
    ]
    sel = selector.Selector(serverlist)
    for i in range(0, 1000):
        client = ThriftClient(sel, Spring, framed=True)
        client.ping()
Example #19
0
def test():
    from zbase3.base import logger
    global log
    log = logger.install('ScreenLogger')
    tp = ThreadPool(10)

    for i in range(0, 100):
        t = SimpleTask(str(i))
        tp.add(t)

    tp.start()
    while True:
        done, error = tp.info()
        log.info('applys:', done, error)
        cc = done + error
        time.sleep(1)
        if cc == 100:
            break
    tp.stop()
    log.info('end')
Example #20
0
def test2():
    from zbase3.base import logger
    global log
    log = logger.install('stdout')
    log.info('init')
    tp = ThreadPool(10)
    tp.start()

    def run(obj, name):
        log.info('in task run, %s', name)
        time.sleep(1)
        log.info('ok, end task run %s', name)
        return name + '!!!'

    log.info('add ...')
    t = TaskWait(func=run, name='haha')
    tp.add(t)

    log.info('result:%s', t.get_result(2))

    tp.stop()
Example #21
0
def test():
    from zbase3.base import logger
    log = logger.install('stdout')

    s = [
        {'addr':('127.0.0.1', 1000), 'timeout':1000},
        {'addr':('127.0.0.1', 1000), 'timeout':1001},
        {'addr':('127.0.0.1', 1000), 'timeout':1002},
        {'addr':('127.0.0.1', 1000), 'timeout':1003},
    ]
   
    print('test roundrobin')
    servers = ServerList(s)
    for i in range(0, 10):
        print(servers.next())

    print('test random')
    servers = ServerList(s, 'random')
    for i in range(0, 10):
        print(servers.next())


    s2 = [
        {'addr':('127.0.0.1', 1001), 'timeout':1000},
        {'addr':('127.0.0.1', 1002), 'timeout':1000, 'rule':[('amt','>',100), ('name','=','haha')]},
        {'addr':('127.0.0.1', 1003), 'timeout':1000},
        {'addr':('127.0.0.1', 1004), 'timeout':1000},
    ]
    print('test rule')
    indata1 = {'name':'haha1111', 'amt':99}
    indata2 = {'name':'haha', 'amt':199}

    servers = ServerList(s2)
    for i in range(0, 10):
        print(servers.next(indata1))

    print('test rule2 ---------')
    for i in range(0, 10):
        print(servers.next(indata2))
Example #22
0
def test3():
    from zbase3.base import logger
    log = logger.install('stdout')

    fields = [
        Field('age', T_INT, must=False, default=18),
        Field('name', T_STR, must=True),
        Field('money', T_INT),
    ]
    input = {'name': 'aaaa', 'money': '12'}
    v = Validator(fields)
    ret = v.verify(input)
    # print(ret)
    # print(v.data)
    fields = [
        Field('age', T_INT, must=False, default=18),
        Field('name', T_STR, must=True),
        Field('money', T_INT),
        Field('title', T_REG, match='.{3,20}'),
    ]
    input['title'] = '1111111'
    v = Validator(fields)
    ret = v.verify(input)
Example #23
0
def test2():
    from zbase3.base import logger
    log = logger.install('stdout')

    fields = [
        Field('age', T_INT),
        Field('money', T_INT),
        Field('name'),
    ]

    Validator(fields)

    class Request:
        def input(self):
            return {'name': 'aaaaa', 'age': '12', 'money': '12.44'}

    class Test:
        GET_fields = [
            Field('age', T_INT),
            Field('money', T_INT),
            Field('name'),
        ]

        def __init__(self):
            self.req = Request()

        @with_validator_self
        def GET(self):
            log.info('testfunc ...')

        def GET_error(self, data):
            log.info('error ...')

    t = Test()
    t.GET()
    log.info('after validator: %s', t.validator.data)
Example #24
0
def test():
    from zbase3.base import logger
    global log
    log = logger.install('stdout')

    data = [
        {
            'name': 'zh',
            'age': 100,
            'time': '2018-01-01 12:22:10',
            'info': {
                'm1': 100,
                'm2': 'hehe'
            }
        },
        {
            'name': 'zh2',
            'age': 100,
            'time': '2018-01-01 12:22:10',
            'info': {
                'm1': 100,
                'm2': 'hehe'
            }
        },
        {
            'name': 'zh',
            'age': 80,
            'time': '2018-01-01 12:22:10',
            'info': {
                'm1': 100,
                'm2': 'hehe'
            }
        },
        {
            'name': 'zh',
            'age': 110,
            'time': '2018-01-01 12:22:10',
            'info': {
                'm1': 101,
                'm2': 'haha'
            }
        },
        {
            'name': 'zh',
            'age': 99,
            'info': {
                'm1': 101,
                'm2': 'haha'
            }
        },
    ]
    rules = [
        {
            'id':
            1,
            'rule': [('name', '=', 'zh'), ('age', '>', 90),
                     ('time', 'bt', ('2018-01-01', '2018-01-02')),
                     ('info.m2', 'in', ('hehe', 'haha'))],
            'result': {
                'age': '$age',
                'm1': '$info.m1',
                'my': 'me'
            }
        },
        {
            'id': 2,
            'rule': [('age', '>', 100), ('info.m2', 'in', ('hehe', 'haha'))],
            'result': {
                'age': '$age',
                'm1': '$info.m1',
                'name': '$name'
            }
        },
        {
            'id': 3,
            'rule': [('test1()', '>', 500),
                     ('info.m2', 'in', ('hehe', 'haha'))],
            'result': {
                'age': '$age',
                'm1': '$info.m1',
                'name': '$name'
            }
        },
    ]

    def test1(data):
        return data['age'] * 10

    rule = Ruler(rules)
    rule.add_func('test1', test1)

    log.debug('rule:%s', rule)
    for x in data:
        log.debug('-' * 80)
        log.debug('data:%s', x)
        log.debug('result:%s', rule.check(x, 3))
Example #25
0
CWD = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.dirname(CWD))
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(CWD)), 'conf'))
import json
import urllib
import urllib.request
import pprint
from zbase3.base import dbpool, logger
import config_debug
import config
import createpass
import datetime, time
import urllib
import urllib.parse

log = logger.install('stdout')
dbpool.install(config_debug.DATABASE)

SERVER = '%s:%d' % (config.HOST, config.PORT)
try:
    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
    s.connect((config.HOST, config.PORT))
except:
    SERVER = '%s:%d' % (config_debug.HOST, config_debug.PORT)


class MyRequest(urllib.request.Request):
    method = 'GET'

    def get_method(self):
Example #26
0
def test():
    from zbase3.base import logger
    log = logger.install('stdout')
    #loc = os.path.join(path, 'templates')
    loc = '/Users/apple/projects/python/xx8xx8/web/templates/default/admin'
    r = Render(loc, 'tmp')
Example #27
0
# coding: utf-8
from gevent import monkey
monkey.patch_all()
import os, sys
HOME = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.join(HOME, 'conf'))
import config

from zbase3.base import logger
logger.install(config.LOGFILE)

from zbase3.server import thriftserver
from zbase3.micro import thriftcore
import main

handler = None
for k, v in main.__dict__.items():
    if k.endswith('Handler'):
        if issubclass(v, thriftcore.Handler):
            handler = v
            break
if not handler:
    print(
        'Not found thrift handler in main.py !!! class must named XXXXHandler !!!'
    )
    sys.exit(-1)

server = thriftcore.MicroThriftServer(handler.define, handler, config)
server.forever()
Example #28
0
import sys
HOME = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.join(os.path.dirname(HOME), 'conf'))

from zbase3.base import logger,loader
if __name__ == '__main__':
    loader.loadconf_argv(HOME)
else:
    loader.loadconf(HOME)

import config
import urls

# 导入服务日志
if config.LOGFILE:
    log = logger.install(config.LOGFILE)
else:
    log = logger.install('stdout')

from zbase3.base import dbpool
from zbase3.web import core
from zbase3.web import runner

import datetime
config.starttime = str(datetime.datetime.now())[:19]
# 导入数据库
#dbpool.install(config.DATABASE)

# 导入WEB URLS
config.URLS = urls
Example #29
0
def test3():
    from zbase3.base import logger
    global log
    log = logger.install('stdout')
    log.info('init')
    tp = ThreadPool(10)
    tp.start()

    def run(obj, name):
        #log.info('in task run, %s', name)
        #time.sleep(1)
        #log.info('ok, end task run %s', name)
        return name + '!!!'

    log.info('add ...')
    t = Task(func=run, name='haha')
    tp.add(t)

    log.info('result:%s', t.get_result(1000))

    # test
    n = 100000

    # local
    tstart = time.time()
    for i in xrange(0, n):
        t = Task(func=run, name='haha')
        run(None, 'haha')
    tend = time.time()

    print('local call ## time:%.6f qps:%d avg:%d' %
          (tend - tstart, n / (tend - tstart),
           ((tend - tstart) / n) * 1000000))

    # queue
    q = queue.Queue()
    tstart = time.time()
    for i in xrange(0, n):
        q.put(run(None, 'haha'), timeout=1)
        q.get()
    tend = time.time()

    print('queue call ## time:%.6f qps:%d avg:%d' %
          (tend - tstart, n / (tend - tstart),
           ((tend - tstart) / n) * 1000000))

    # thread, task no wait
    tstart = time.time()
    for i in xrange(0, n):
        t = Task(func=run, name='haha')
        tp.add(t)
        #t.get_result(100)
    tend = time.time()

    print('thread call ## time:%.6f qps:%d avg:%d' %
          (tend - tstart, n / (tend - tstart),
           ((tend - tstart) / n) * 1000000))

    # thread, task wait

    tp.stop()
    log.info('==== end ====')