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
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
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
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
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)
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
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