#!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Version: 1.0 @Python Version:3.6.6 @Author: wenhx8 @File: test_utility @Time: 2019/1/7 007 22:01 @Description: 测试代码 """ import os from datetime import datetime from unittest import TestCase, main from cucc_common_pkg.globalutility import Utility, GlobalConst, DateTimeConst from cucc_common_pkg.my_stringutils import MyStringUtils class TestUtility(TestCase): r''' TestUtility ''' def test_format_result(self): r''' Returns: ''' ret = Utility.format_result('success', '1') self.assertEqual(ret, Utility.format_success('success')) def test_format_error(self): r''' Returns: ''' ret = Utility.format_error('error') self.assertEqual(ret, Utility.format_result('error', GlobalConst.RETCODE_COMMON_ERROR)) def test_format_success(self): r''' Returns: ''' ret = Utility.format_success('success') self.assertEqual(ret, Utility.format_result('success', GlobalConst.RETCODE_SUCESS_CODE)) def test_dict2jsonstr(self): r''' Returns: ''' a_dict = {'a': 1, 'b': 'xx'} json_str = '{"a": 1, "b": "xx"}' ret = Utility.dict2jsonstr(a_dict) self.assertEqual(ret, json_str) a_dict = None json_str = 'null' ret = Utility.dict2jsonstr(a_dict) self.assertEqual(ret, json_str) a_dict = None json_str = '' ret = Utility.dict2jsonstr(a_dict, value_when_obj_is_none='') self.assertEqual(ret, json_str) def test_list2jsonstr(self): r''' Returns: ''' a_list = ['a', 'b', 'c'] json_str = '["a", "b", "c"]' ret = Utility.list2jsonstr(a_list) self.assertEqual(ret, json_str) a_tuple = ('a', 'b', 'c') json_str = '["a", "b", "c"]' ret = Utility.list2jsonstr(a_tuple) self.assertEqual(ret, json_str) a_dict = None json_str = 'null' ret = Utility.list2jsonstr(a_dict) self.assertEqual(ret, json_str) a_dict = None json_str = '' ret = Utility.list2jsonstr(a_dict, value_when_obj_is_none='') self.assertEqual(ret, json_str) def test_jsonstr2dict(self): r''' Returns: ''' json_str = '{"a": 1, "b": "xx"}' a_dict = {'a': 1, 'b': 'xx'} ret = Utility.jsonstr2dict(json_str) self.assertEqual(ret, a_dict) json_str = {} a_dict = {} ret = Utility.jsonstr2dict(json_str) self.assertEqual(ret, a_dict) json_str = 'abc' with self.assertRaises(Exception): Utility.jsonstr2dict(json_str, b_raise_error_when_illegal=True) json_str = '[1,2,3]' with self.assertRaises(Exception): Utility.jsonstr2dict(json_str, b_raise_error_when_illegal=True) def test_jsonstr2list(self): r''' Returns: ''' json_str = '[1,2,3]' a_list = [1, 2, 3] ret = Utility.jsonstr2list(json_str) self.assertEqual(ret, a_list) json_str = [] a_list = [] ret = Utility.jsonstr2list(json_str) self.assertEqual(ret, a_list) json_str = 'abc' with self.assertRaises(Exception): Utility.jsonstr2list(json_str, b_raise_error_when_illegal=True) json_str = '{"a":1}' with self.assertRaises(Exception): Utility.jsonstr2list(json_str, b_raise_error_when_illegal=True) def test_dofilterxss(self): r''' Returns: ''' to_filter_str = '' expect_str = '#《#script#》##《#/script#》#' filteredstr = Utility.do_filter_xss(to_filter_str) self.assertEqual(expect_str, filteredstr) def test_now_day(self): r''' Returns: ''' a_date = datetime.now() expect_str = a_date.strftime(DateTimeConst.COMMON_DATE_FORMAT) ret_str = Utility.now_day(a_date=a_date) self.assertEqual(expect_str, ret_str) a_date = datetime.now() expect_str = a_date.strftime(DateTimeConst.COMMON_DATETIME_FORMAT) ret_str = Utility.now_daytime(a_date=a_date) self.assertEqual(expect_str, ret_str) a_date = datetime.now() expect_str = a_date.strftime('%Y/%m/%d %H:%M:%S') ret_str = Utility.now_daytime(a_date=a_date, format_str='%Y/%m/%d %H:%M:%S') self.assertEqual(expect_str, ret_str) def test_parse_datestr(self): r''' Returns: ''' date_str = '2012-03-05 16:26:23' pattern_str = '%Y-%m-%d %H:%M:%S' a_datetime = datetime(year=2012, month=3, day=5, hour=16, minute=26, second=23) self.assertEqual(a_datetime, Utility.parse_datestr(date_str, pattern_str)) date_str = '2012-03-05 16:26:23' a_datetime = datetime(year=2012, month=3, day=5, hour=16, minute=26, second=23) self.assertEqual(a_datetime, Utility.parse_datestr(date_str)) date_str = '2012-03-05' a_datetime = datetime(year=2012, month=3, day=5) self.assertEqual(a_datetime, Utility.parse_datestr(date_str)) def test_check_param_equal(self): r''' Returns: ''' Utility.check_param_equal('a', 'a', 'errmsg') with self.assertRaises(Exception): Utility.check_param_equal(None, 'b', 'errmsg') Utility.check_param_bool(True, 'errmsg') with self.assertRaises(Exception): Utility.check_param_bool({}, 'errmsg') Utility.check_param_none_or_empty('a', 'errmsg') with self.assertRaises(Exception): Utility.check_param_none_or_empty(None, 'errmsg') with self.assertRaises(Exception): Utility.check_param_none_or_empty(' ', 'errmsg', trim=True) a_dict = Utility.check_param_jsonstr('{"a":"你好"}', 'errmsg') self.assertEqual(a_dict['a'], '你好') with self.assertRaises(Exception): Utility.check_param_jsonstr(None, 'errmsg') def test_do_filter_mysql_param(self): r''' Returns: ''' to_filtered_str = "\\\'123\\\'" expect_str = "'\\\\\\\'123\\\\\\\''" self.assertEqual(expect_str, Utility.do_filter_mysql_param(to_filtered_str)) to_filtered_str = "\\`aaa\\`" expect_str = "`\\\\\\`aaa\\\\\\``" self.assertEqual(expect_str, Utility.do_filter_mysql_field(to_filtered_str)) def test_is_hasxss(self): r''' Returns: ''' to_check_str = "%3C%3D%3B" self.assertEqual(Utility.is_hasxss(to_check_str), '存在违规数据:encodestrictscript') to_check_str = "" self.assertEqual(Utility.is_hasxss(to_check_str), '存在违规数据:script') def test_list_join_to_str(self): r''' Returns: ''' a_list = [1, 2, 3, 4] expect_str = "1,2,3,4" a_str = Utility.list_join_to_str(a_list) self.assertEqual(a_str, expect_str) a_list = [] expect_str = "" a_str = Utility.list_join_to_str(a_list, wrapper_str="'") self.assertEqual(a_str, expect_str) a_list = [1, 2, 3, 4] expect_str = "1##2##3##4" a_str = Utility.list_join_to_str(a_list, wrapper_str=None, separator_str='##') self.assertEqual(a_str, expect_str) a_list = [1, None, 3, None, 5] expect_str = "1,3,5" a_str = Utility.list_join_to_str(a_list) self.assertEqual(a_str, expect_str) a_list = [1, None, 3, None, 5] expect_str = "'1',null,'3',null,'5'" a_str = Utility.list_join_to_str(a_list, ignore_none=False, wrapper_str="'") self.assertEqual(a_str, expect_str) expect_str = "1234" a_str = Utility.join_str(1, 2, 3, 4) self.assertEqual(a_str, expect_str) expect_str = "1##2##3##4" a_str = Utility.join_str(1, 2, 3, 4, wrapper_str=None, separator_str='##') self.assertEqual(a_str, expect_str) expect_str = "135" a_str = Utility.join_str(1, None, 3, None, 5) self.assertEqual(a_str, expect_str) expect_str = "'1'null'3'null'5'" a_str = Utility.join_str(1, None, 3, None, 5, ignore_none=False, wrapper_str="'") self.assertEqual(a_str, expect_str) def test_create_uuid(self): r''' Returns: ''' a_str = Utility.create_uuid() a_str2 = Utility.create_uuid() self.assertNotEqual(a_str, a_str2) def test_check_url_illegal(self): r''' Returns: ''' self.assertTrue(Utility.check_url_illegal('http://a.com')) self.assertTrue(Utility.check_url_illegal('http://a.com/')) self.assertFalse(Utility.check_url_illegal('a.com/')) def test_filter_utf8mb4(self): r''' Returns: ''' a_str = '你好😜我好' expect_str = '你好我好' self.assertTrue(Utility.filter_utf8mb4(a_str), expect_str) self.assertEqual(Utility.find_utf8mb4(a_str), '😜') self.assertEqual(Utility.find_utf8mb4(expect_str), MyStringUtils.EMPTY) def test_do_check_and_put_param(self): r''' Returns: ''' arg_dict = {} param_dict = { 'a': '', 'b': None, 'c': '1', 'd': 2 } expect_dict = { 'c': '1', 'd': '2' } self.assertEqual(Utility.do_check_and_put_param(arg_dict, param_dict, 0), expect_dict) arg_dict = {} param_dict = { 'a': '', 'b': 'xx', 'c': '1', 'd': 2 } with self.assertRaises(Exception): Utility.do_check_and_put_param(arg_dict, param_dict, 0) arg_dict = {} param_dict = { 'a': '1e3', 'b': 2e-1, 'c': '1', 'd': 2.3, 'e': '' } expect_dict = { 'a': '1000.0', 'b': '0.2', 'c': '1.0', 'd': '2.3' } self.assertEqual(Utility.do_check_and_put_param(arg_dict, param_dict, 1), expect_dict) arg_dict = {} param_dict = { 'a': '', 'b': 'xx', 'c': '1', 'd': 2 } with self.assertRaises(Exception): Utility.do_check_and_put_param(arg_dict, param_dict, 1) arg_dict = {} param_dict = { 'a': '2019-1-1', 'b': datetime(year=2019, month=1, day=1), 'c': '2019-1-1 11:00:11', 'd': '2019/1/1', 'e': '' } expect_dict = { 'a': '2019-01-01 00:00:00', 'b': '2019-01-01 00:00:00', 'c': '2019-01-01 11:00:11', 'd': '2019-01-01 00:00:00' } self.assertEqual(Utility.do_check_and_put_param(arg_dict, param_dict, 2), expect_dict) arg_dict = {} param_dict = { 'a': '2019-1-1 1:23:111', 'b': datetime(year=2019, month=1, day=1), 'c': '2019-1-1 11:00:11', 'd': '2019/1/1', 'e': '' } with self.assertRaises(Exception): Utility.do_check_and_put_param(arg_dict, param_dict, 2) arg_dict = {} param_dict = { 'a': '2019-1-1', 'b': datetime(year=2019, month=1, day=1), 'c': '2019-1-1 11:00:11', 'd': '2019/1/1', 'e': '' } with self.assertRaises(ValueError): Utility.do_check_and_put_param(arg_dict, param_dict, 3) def test_do_check_and_put_param_for_not_none_or_empty(self): r''' Returns: ''' arg_dict = {} param_dict = { 'a': '', 'b': None, 'c': '1', 'd': 2 } expect_dict = { 'c': '1', 'd': '2' } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict), expect_dict) arg_dict = {} param_dict = { 'a': '', 'b': None, 'c': '1', 'd': 2 } expect_dict = { 'a': '', 'c': '1', 'd': '2' } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict, ignore_empty=False), expect_dict) arg_dict = {} param_dict = { 'a': '', 'b': None, 'c': '1', 'd': 2 } expect_dict = { 'a': '', 'b': 'null', 'c': '1', 'd': '2' } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict, ignore_empty=False, ignore_none=False), expect_dict) arg_dict = {} param_dict = { 'a': '', 'b': 'xx', 'c': '1', 'd': 2 } expect_dict = { 'b': 'xx', 'c': '1', 'd': '2' } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict), expect_dict) arg_dict = {} param_dict = { 'a': '1e3', 'b': 2e-1, 'c': '1', 'd': 2.3, 'e': '' } expect_dict = { 'a': '1e3', 'b': '0.2', 'c': '1', 'd': '2.3' } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict), expect_dict) arg_dict = {} param_dict = { 'b': datetime(year=2019, month=1, day=1), } expect_dict = { 'b': '2019-01-01 00:00:00', } self.assertEqual(Utility.do_check_and_put_param_for_not_none_or_empty(arg_dict, param_dict), expect_dict) def test_get_env(self): r''' Returns: ''' env_name = 'TEST_ENVNAME' env_value = 'TEST_ENVVALUE' os.environ[env_name] = env_value self.assertEqual(Utility.get_env(env_name), env_value) if __name__ == '__main__': main()