#!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Version: 1.0 @Python Version:3.6.6 @Author: wenhx8 @File: test_my_structure_utils @Time: 2019/1/7 007 22:01 @Description: 测试代码 """ from unittest import TestCase, main from cucc_common_pkg.my_structure_utils import StructureUtils class TestUtility(TestCase): r''' TestUtility ''' def test_transfer_dict_to_list(self): r''' Returns: ''' a_param = { "1": {"id": 1}, "2": {"id": 2}, "3": {"id": 3} } expect_result = [ {"id": 1}, {"id": 2}, {"id": 3} ] a_result = StructureUtils.transfer_dict_to_list(a_param) self.assertEqual(expect_result, a_result) def test_transfer_list_to_dict(self): r''' Returns: ''' a_param = [ {"id": 1, "parentid": None}, {"id": 2, "parentid": 222}, {"id": 3, "parentid": 1}, {"id": 4, "parentid": 2} ] expect_result = { "1": { "id": 1, "parentid": None, "isTopNode": 1, "childrenMap": { "3": {"id": 3, "parentid": 1, "isTopNode": 0} } }, "2": { "id": 2, "parentid": 222, "isTopNode": 1, "childrenMap": { "4": {"id": 4, "parentid": 2, "isTopNode": 0} } }, "3": {"id": 3, "parentid": 1, "isTopNode": 0}, "4": {"id": 4, "parentid": 2, "isTopNode": 0} } a_result = StructureUtils.transfer_list_to_dict(a_param) self.assertEqual(expect_result, a_result) def test_transfer_list_to_dict_simple(self): r''' Returns: ''' a_param = [ {"id": 1, }, {"id": 2}, {"id": 3} ] expect_result = { "1": {"id": 1}, "2": {"id": 2}, "3": {"id": 3} } a_result = StructureUtils.transfer_list_to_dict_simple(a_param) self.assertEqual(expect_result, a_result) def test_gen_topnode_list(self): r''' Returns: ''' a_param = { "1": { "id": 1, "parentid": None, "isTopNode": 1, "childrenMap": { "3": {"id": 3, "parentid": 1, "isTopNode": 0} } }, "2": { "id": 2, "parentid": 222, "isTopNode": 1, "childrenMap": { "4": {"id": 4, "parentid": 2, "isTopNode": 0} } }, "3": {"id": 3, "parentid": 1, "isTopNode": 0}, "4": {"id": 4, "parentid": 2, "isTopNode": 0} } expect_result = ["1", "2"] a_result = StructureUtils.gen_topnode_list(a_param) self.assertEqual(expect_result, a_result) def test_gen_dict_only_contains_top_node(self): r''' Returns: ''' a_param = { "1": { "id": 1, "parentid": None, "isTopNode": 1, "childrenMap": { "3": {"id": 3, "parentid": 1, "isTopNode": 0} } }, "2": { "id": 2, "parentid": 222, "isTopNode": 1, "childrenMap": { "4": {"id": 4, "parentid": 2, "isTopNode": 0} } }, "3": {"id": 3, "parentid": 1, "isTopNode": 0}, "4": {"id": 4, "parentid": 2, "isTopNode": 0} } expect_result = { "1": { "id": 1, "parentid": None, "isTopNode": 1, "childrenMap": { "3": {"id": 3, "parentid": 1, "isTopNode": 0} } }, "2": { "id": 2, "parentid": 222, "isTopNode": 1, "childrenMap": { "4": {"id": 4, "parentid": 2, "isTopNode": 0} } } } a_result = StructureUtils.gen_dict_only_contains_top_node(a_param) self.assertEqual(expect_result, a_result) def test_transfer_list_to_dict_only_contains_top_node(self): r''' Returns: ''' a_param = [ {"id": 1, "parentid": None}, {"id": 2, "parentid": 222}, {"id": 3, "parentid": 1}, {"id": 4, "parentid": 2} ] expect_result = { "1": { "id": 1, "parentid": None, "isTopNode": 1, "childrenMap": { "3": {"id": 3, "parentid": 1, "isTopNode": 0} } }, "2": { "id": 2, "parentid": 222, "isTopNode": 1, "childrenMap": { "4": {"id": 4, "parentid": 2, "isTopNode": 0} } } } a_result = StructureUtils.transfer_list_to_dict_only_contains_top_node(a_param) self.assertEqual(expect_result, a_result) def test_grouplist_bykey(self): r''' Returns: ''' a_param = [ {"userid": 1, "deptid": "1"}, {"userid": 2, "deptid": "1"}, {"userid": 3, "deptid": "2"}, {"userid": 4, "deptid": "2"}, ] expect_result = [ { "userid": 1, "deptid": "1", "sublist": [ {"userid": 1, "deptid": "1"}, {"userid": 2, "deptid": "1"} ] }, { "userid": 3, "deptid": "2", "sublist": [ {"userid": 3, "deptid": "2"}, {"userid": 4, "deptid": "2"} ] } ] a_result = StructureUtils.grouplist_bykey(a_param, 'deptid') self.assertEqual(expect_result, a_result) def test_add_childrenlist_to_dict(self): r''' Returns: ''' a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } expect_result = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} }, "children": [ {"id": 3, "parentid": 1} ] } StructureUtils.add_childrenlist_to_dict(a_param) self.assertEqual(expect_result, a_param) a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } expect_result = { "id": 1, "parentid": None, "nodelevel": 0, "childrenMap": { "3": {"id": 3, "parentid": 1, "nodelevel": 1} } } StructureUtils.add_nodelevel_to_dict(a_param) self.assertEqual(expect_result, a_param) a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } expect_result = { "id": 1, "parentid": None, "descentdants": ["3"], "childrenMap": { "3": {"id": 3, "parentid": 1} } } StructureUtils.add_descentdants_to_dict(a_param) self.assertEqual(expect_result, a_param) a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } expect_result = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1, "ancestors": ["1"]} } } StructureUtils.add_ancestors_to_dict(a_param) self.assertEqual(expect_result, a_param) a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } expect_result = { "id": 1, "parentid": None, "leftId": 0, "rightId": 3, "childrenMap": { "3": {"id": 3, "parentid": 1, "leftId": 1, "rightId": 2} } } StructureUtils.add_lrnode_to_dict(a_param) self.assertEqual(expect_result, a_param) a_param = { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1} } } self.assertFalse(StructureUtils.is_leaf_node(a_param)) a_param = { "id": 1, "parentid": None, } self.assertTrue(StructureUtils.is_leaf_node(a_param)) a_param = [ { "id": 1, "parentid": None, "childrenMap": { "3": {"id": 3, "parentid": 1, "childrenMap": {"id": 4}, "children": [{"id": 4}]} }, "children": [ {"id": 3, "parentid": 1, "childrenMap": {"id": 4}, "children": [{"id": 4}]} ] } ] expect_result = [ { "id": 1, "parentid": None, "children": [ {"id": 3, "parentid": 1, "children": [{"id": 4}]} ] } ] StructureUtils.remove_all_childrenmap(a_param) self.assertEqual(expect_result, a_param) def test_do_replace_jsonobj_str(self): r''' Returns: ''' a_param = { "id": 1, "parentid": '{"kk":"1"}' } expect_result = { "id": 1, "parentid": {"kk": "1"} } StructureUtils.do_replace_jsonobj_str(a_param, 'parentid') self.assertEqual(expect_result, a_param) a_param = [{ "id": 1, "parentid": '{"kk":"1"}' }] expect_result = [{ "id": 1, "parentid": {"kk": "1"} }] StructureUtils.do_replace_jsonobj_str_for_list(a_param, 'parentid') self.assertEqual(expect_result, a_param) a_param = [{ "id": 1, 'otherk': 1 }, { "id": 1, 'otherk': 1321 }, { "id": 2, 'otherk': 2 }, { "id": 3, 'otherk': 3 }] expect_result = [{ "id": 1, 'otherk': 1 }, { "id": 2, 'otherk': 2 }, { "id": 3, 'otherk': 3 }] a_result = StructureUtils.do_deduplication(a_param, 'id') self.assertEqual(expect_result, a_result) a_param = [{ "id": 1, "parentid": '{"kk":"1"}' }] expect_result = [{ "id": 1 }] StructureUtils.do_preserve_key_for_list(a_param, 'id') self.assertEqual(expect_result, a_param) a_param = [{ "id": 1, "parentid": '{"kk":"1"}' }] with self.assertRaises(Exception): StructureUtils.do_preserve_key_for_list(a_param, 'ppp') a_param = [{ "id": 1, "parentid": '{"kk":"1"}' }] expect_result = [{ "id": 1, "pid": '{"kk":"1"}' }] StructureUtils.do_rename_key_for_list(a_param, {'parentid': 'pid'}) self.assertEqual(expect_result, a_param) if __name__ == '__main__': main()