Skip to content

Commit 99cccd6

Browse files
committed
新增简历数据结构测试
1 parent 873d518 commit 99cccd6

File tree

1 file changed

+216
-0
lines changed

1 file changed

+216
-0
lines changed

test/test_resume.py

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
#!/usr/bin/env python
2+
# encoding: utf-8
3+
4+
"""
5+
@author: zhanghe
6+
@software: PyCharm
7+
@file: test_resume.py
8+
@time: 16-2-26 下午5:19
9+
"""
10+
11+
12+
import json
13+
14+
15+
class Base(object):
16+
"""
17+
数据结构基类
18+
"""
19+
# 定义构造方法
20+
def __init__(self, **kwargs):
21+
# 初始化简历数据
22+
for key, value in kwargs.iteritems():
23+
if not hasattr(self, key):
24+
raise Exception(u'存在不允许的属性')
25+
self.__setattr__(key, value)
26+
27+
# 字典方式获取元素
28+
def __getitem__(self, key):
29+
return self.__dict__.get(key)
30+
31+
# 字典方式设置元素
32+
def __setitem__(self, key, value):
33+
self.__setattr__(key, value)
34+
35+
36+
class Resume(Base):
37+
"""
38+
简历基本信息
39+
"""
40+
def __init__(self, **kwargs):
41+
# 定义基本属性
42+
self.intent = ResumeIntent()
43+
self.edu_list = []
44+
self.work_list = []
45+
self.train_list = []
46+
self.project_list = []
47+
self.skill_list = []
48+
self.cert_list = []
49+
self.opus_list = []
50+
# 初始化超类
51+
super(Resume, self).__init__(**kwargs)
52+
53+
54+
class ResumeIntent(Base):
55+
"""
56+
简历-求职意向
57+
"""
58+
def __init__(self, **kwargs):
59+
self.city = [] # 期望城市
60+
self.duty = [] # 期望职能
61+
self.industry = [] # 期望行业
62+
self.salary = '' # 期望月薪
63+
# 初始化超类
64+
super(ResumeIntent, self).__init__(**kwargs)
65+
66+
67+
class ResumeEdu(Base):
68+
"""
69+
简历-教育经历
70+
"""
71+
def __init__(self, **kwargs):
72+
self.school = '' # 学校
73+
self.degree = '' # 学历
74+
self.major = '' # 专业
75+
self.start_date = '' # 开始日期
76+
self.end_date = '' # 结束日期
77+
# 初始化超类
78+
super(ResumeEdu, self).__init__(**kwargs)
79+
80+
81+
class ResumeWork(Base):
82+
"""
83+
简历-工作经验
84+
"""
85+
def __init__(self, **kwargs):
86+
self.company = '' # 公司
87+
self.industry = '' # 行业
88+
self.duty = '' # 岗位
89+
self.salary = '' # 薪资
90+
self.start_date = '' # 开始日期
91+
self.end_date = '' # 结束日期
92+
# 初始化超类
93+
super(ResumeWork, self).__init__(**kwargs)
94+
95+
96+
class ResumeTrain(Base):
97+
"""
98+
简历-培训经历
99+
"""
100+
def __init__(self, **kwargs):
101+
self.name = '' # 名称
102+
self.institute = '' # 机构
103+
self.content = '' # 内容
104+
self.start_date = '' # 开始日期
105+
self.end_date = '' # 结束日期
106+
# 初始化超类
107+
super(ResumeTrain, self).__init__(**kwargs)
108+
109+
110+
class ResumeProject(Base):
111+
"""
112+
简历-项目经验
113+
"""
114+
def __init__(self, **kwargs):
115+
self.name = '' # 名称
116+
self.content = '' # 内容
117+
self.start_date = '' # 开始日期
118+
self.end_date = '' # 结束日期
119+
# 初始化超类
120+
super(ResumeProject, self).__init__(**kwargs)
121+
122+
123+
class ResumeSkill(Base):
124+
"""
125+
简历-职业技能
126+
"""
127+
def __init__(self, **kwargs):
128+
self.name = '' # 名称
129+
self.grade = '' # 程度
130+
self.use_time = '' # 使用时间
131+
# 初始化超类
132+
super(ResumeSkill, self).__init__(**kwargs)
133+
134+
135+
class ResumeCert(Base):
136+
"""
137+
简历-荣誉证书
138+
"""
139+
def __init__(self, **kwargs):
140+
self.name = '' # 名称
141+
# 初始化超类
142+
super(ResumeCert, self).__init__(**kwargs)
143+
144+
145+
class ResumeOpus(Base):
146+
"""
147+
简历-个人作品
148+
"""
149+
def __init__(self, **kwargs):
150+
self.name = '' # 名称
151+
self.url = '' # 链接
152+
self.type = '' # 类型
153+
# 初始化超类
154+
super(ResumeOpus, self).__init__(**kwargs)
155+
156+
157+
def obj_to_dict(obj):
158+
"""
159+
:param obj:
160+
简历对象转字典
161+
"""
162+
data = {}
163+
for key, items in obj.__dict__.iteritems():
164+
if isinstance(items, list):
165+
for index, item in enumerate(items):
166+
if isinstance(item, Base):
167+
items[index] = item.__dict__
168+
data[key] = items
169+
elif isinstance(items, dict):
170+
data[key] = items
171+
elif isinstance(items, Base):
172+
data[key] = items.__dict__
173+
return data
174+
175+
176+
def test_resume():
177+
"""
178+
测试简历
179+
"""
180+
# 实例化简历对象
181+
resume = Resume()
182+
print obj_to_dict(resume)
183+
184+
# 教育经历
185+
# 方式一
186+
edu_item = ResumeEdu()
187+
edu_item.school = u'校园1'
188+
edu_item.degree = u'本科1'
189+
edu_item.major = u'软件1'
190+
edu_item.start_date = u'2016-09-01'
191+
edu_item.end_date = u'2018-06-21'
192+
resume.edu_list.append(edu_item)
193+
# 方式二
194+
edu_item = ResumeEdu()
195+
edu_item['school'] = u'校园2'
196+
edu_item['degree'] = u'本科2'
197+
edu_item['major'] = u'软件2'
198+
edu_item['start_date'] = u'2016-09-02'
199+
edu_item['end_date'] = u'2018-06-22'
200+
resume.edu_list.append(edu_item)
201+
202+
# 工作经历
203+
work_data = {
204+
'company': u'公司中国',
205+
'duty': u'清洁',
206+
'salary': '19000',
207+
'start_date': '2012-06-02',
208+
'end_date': '2014-06-05',
209+
}
210+
work_item = ResumeWork(**work_data)
211+
resume.work_list.append(work_item)
212+
print json.dumps(obj_to_dict(resume), indent=4, ensure_ascii=False)
213+
214+
215+
if __name__ == '__main__':
216+
test_resume()

0 commit comments

Comments
 (0)