コード例 #1
0
ファイル: send_mail_common.py プロジェクト: elektrobata/BASE
def set_message_sent(id_message, svc_port):
    log.info('Set {} sent'.format(id_message))

    import json
    import datetime
    from base_svc.comm import BaseAPIRequestHandler

    n = str(datetime.datetime.now())[:19]

    rh = BaseAPIRequestHandler()
    data = {'id_message': id_message, 'sent_time': n}
    rh.set_argument('data', json.dumps(data))
    kwargs = {}
    kwargs['request_handler'] = rh

    from base_svc.comm import call
    import base_api.mail_api.sent_mail

    try:
        res, status = call(
            'localhost',
            # base_config.settings.APP_PORT,
            svc_port,
            base_api.mail_api.sent_mail.location,
            data,
            base_api.mail_api.sent_mail.set_mail_sent.__api_method_type__)
    except ConnectionRefusedError as e:
        log.critical('Servis not working: {}'.format(e))
        return False

    if status != 204:
        log.error('Error set message {} sent: {}'.format(id_message, res))

    return True
コード例 #2
0
def test_authorize(svc_url,
                   svc_port,
                   username=None,
                   password=None,
                   force_json=False):
    """
    Authorization API for tests
    :param svc_url: base API domain (localhost)
    :param svc_port: base API port, int
    :param username: defined or chosen username
    :param password: defined or chosen password
    :param force_json: force json return type
    :return: request response or json
    """

    data = {
        'username': username if username else TEST_USER,
        'password': password if password else TEST_USER_PWD
    }

    res, status = call(svc_url, svc_port, login_location, data, 'POST')

    if force_json:
        return res, status

    res = json.loads(res)
    if status < 300:
        return res['token'], status

    return res['message'], status
コード例 #3
0
def set_message_sent(id_message, svc_port):
    log.info('Set {} sent'.format(id_message))

    import json
    import datetime
    from base_svc.comm import BaseAPIRequestHandler

    n = str(datetime.datetime.now())[:19]

    rh = BaseAPIRequestHandler()
    data = {'id_message': id_message, 'sent_time': n}
    rh.set_argument('data', json.dumps(data, ensure_ascii=False))
    kwargs = {}
    kwargs['request_handler'] = rh

    from base_svc.comm import call
    import base_api.mail_api.sent_mail

    try:
        res, status = call(
            'localhost',
            # base_config.settings.APP_PORT,
            svc_port,
            base_api.mail_api.sent_mail.location,
            data,
            base_api.mail_api.sent_mail.set_mail_sent.__api_method_type__)
    except ConnectionRefusedError as e:
        log.critical('Servis not working: {}'.format(e))
        return False

    if status != 204:
        log.error('Error set message {} sent: {}'.format(id_message, res))

    return True
コード例 #4
0
ファイル: dbatests.py プロジェクト: djorovic/BASE
def test_authorize(svc_url, svc_port, username=None, password=None, force_json=False):
    """
    Authorization API for tests
    :param svc_url: base API domain (localhost)
    :param svc_port: base API port, int
    :param username: defined or chosen username
    :param password: defined or chosen password
    :param force_json: force json return type
    :return: request response or json
    """

    data = {
        'username': username if username else TEST_USER,
        'password': password if password else TEST_USER_PWD
    }

    res, status = call(svc_url, svc_port, login_location, data, 'POST')

    if force_json:
        return res, status

    res = json.loads(res)
    if status < 300:
        return res['token'], status

    return res['message'], status
コード例 #5
0
ファイル: tests_common.py プロジェクト: elektrobata/BASE
def do_test(svc_port, location, method, token, data, expected_status, expected_data, result, result_types,
            warning_level):
    _headers = None
    if token:
        _headers = {'Authorization': token}

    res, status = call('localhost', svc_port, location, data, method, call_headers=_headers)

    try:
        res = json.loads(res) if res else {}
    except Exception as e:
        log_warning('Error load json data: {}'.format(res), '', None)
        log_warning('Error: {}'.format(e), '', None)
        result.update({'message': res})
        res = {'message': res}

    res.update({'status': status})
    result.update(res)

    if status != expected_status:
        log_warning('Wrong status {} | expected | {}'.format(status, expected_status), '', None)
        return False

    if result_types and not expected_data:
        log_warning('Missing expected data for given result_types: {}'.format(result_types), '', None)
        return False

    if expected_data:
        # inspect expected results
        for k in expected_data:

            if k not in res and warning_level != WarningLevel.NO_WARNING:
                log_warning(location, method, ' missing {} in result'.format(k))
                return False

            if expected_data[k] != res[k] and warning_level == WarningLevel.STRICT:
                log_warning(location, method, '{}: {} | expected | {}'.format(k, res[k], expected_data[k]))
                return False

        # inspect result types
        if result_types:
            if not set(result_types.keys()).issubset(set(expected_data.keys())):
                log_warning('Expected results and results types differ', '', None)
                return False

            for k in result_types:

                if k not in res:
                    log_warning('Missing result {}'.format(k), '', None)
                    return False

                if type(res[k]) != result_types[k]:
                    log_warning(
                        'Result types for {} differ: got {} expected {}'.format(k, type(res[k]), result_types[k]), '',
                        None)
                    return False

    return True
コード例 #6
0
        execute_query(query, db, dbConnData, attempt)


if __name__ == '__main__':

    try:
        svc_port = int(sys.argv[1])

    except ValueError as e:
        print('Invalid value for port {}, has to be int '.format(sys.argv[1]))
        sys.exit(1)

    res = call('localhost',
               svc_port,
               'params', {},
               'GET',
               request_timeout=10,
               force_json=False,
               call_headers=None)
    _res = res[0]
    __res = json.loads(_res)

    import logging
    from logging.handlers import TimedRotatingFileHandler

    log_filename = __res['send_mail_log']
    log_handler = TimedRotatingFileHandler(log_filename, when="midnight")
    log_formatter = logging.Formatter(
        '%(asctime)-6s %(name)s %(module)s %(funcName)s %(lineno)d - %(levelname)s %(message)s'
    )
    log_handler.setFormatter(log_formatter)
コード例 #7
0
ファイル: send_mail_redis.py プロジェクト: digital-cube/BASE
            return False
        db = conn_to_db(dbConnData)
        attempt = attempt + 1;
        print ('reconnecting to database...{}'.format(attempt))
        execute_query(query,db,dbConnData,attempt)

if __name__ == '__main__':

    try:
        svc_port = int(sys.argv[1])

    except ValueError as e:
        print('Invalid value for port {}, has to be int '.format(sys.argv[1]))
        sys.exit(1)

    res = call('localhost', svc_port, 'params', {}, 'GET', request_timeout=10, force_json=False, call_headers=None)
    _res = res[0]
    __res = json.loads(_res)

    import logging
    from logging.handlers import TimedRotatingFileHandler

    log_filename = __res['send_mail_log']
    log_handler = TimedRotatingFileHandler(log_filename, when="midnight")
    log_formatter = logging.Formatter(
        '%(asctime)-6s %(name)s %(module)s %(funcName)s %(lineno)d - %(levelname)s %(message)s')
    log_handler.setFormatter(log_formatter)

    _log = __res['_log']
    log = logging.getLogger(_log)
    log.propagate = False
コード例 #8
0
ファイル: tests_common.py プロジェクト: ivanjankoviic/BASE
def do_test(svc_port, location, method, token, data, expected_status,
            expected_data, result, result_types, warning_level):
    _headers = None
    if token:
        _headers = {'Authorization': token}

    res, status = call('localhost',
                       svc_port,
                       location,
                       data,
                       method,
                       call_headers=_headers)

    try:
        res = json.loads(res) if res else {}
    except Exception as e:
        log_warning('Error load json data: {}'.format(res), '', None)
        log_warning('Error: {}'.format(e), '', None)
        result.update({'message': res})
        res = {'message': res}

    res.update({'status': status})
    result.update(res)

    if status != expected_status:
        log_warning(
            'Wrong status {} | expected | {}'.format(status, expected_status),
            '', None)
        return False

    if result_types and not expected_data:
        log_warning(
            'Missing expected data for given result_types: {}'.format(
                result_types), '', None)
        return False

    if expected_data:
        # inspect expected results
        for k in expected_data:

            if k not in res and warning_level != WarningLevel.NO_WARNING:
                log_warning(location, method,
                            ' missing {} in result'.format(k))
                return False

            if expected_data[k] != res[
                    k] and warning_level == WarningLevel.STRICT:
                log_warning(
                    location, method,
                    '{}: {} | expected | {}'.format(k, res[k],
                                                    expected_data[k]))
                return False

        # inspect result types
        if result_types:
            if not set(result_types.keys()).issubset(set(
                    expected_data.keys())):
                log_warning('Expected results and results types differ', '',
                            None)
                return False

            for k in result_types:

                if k not in res:
                    log_warning('Missing result {}'.format(k), '', None)
                    return False

                if type(res[k]) != result_types[k]:
                    log_warning(
                        'Result types for {} differ: got {} expected {}'.
                        format(k, type(res[k]), result_types[k]), '', None)
                    return False

    return True