Skip to content

Commit 8b6ddb6

Browse files
committed
更新类的测试
1 parent 9dcfca9 commit 8b6ddb6

File tree

1 file changed

+101
-3
lines changed

1 file changed

+101
-3
lines changed

test/test_class.py

Lines changed: 101 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,114 @@ class BaseResume(object):
3838

3939
# 定义构造方法
4040
def __init__(self, **kwargs):
41+
self.data = kwargs
4142
for key, value in kwargs.iteritems():
43+
if not hasattr(self, key):
44+
raise Exception(u'存在不允许的属性')
4245
self.__setattr__(key, value)
4346

47+
# 字典方式获取元素
48+
def __getitem__(self, key):
49+
return self.data.get(key)
4450

45-
if __name__ == '__main__':
51+
# 字典方式设置元素
52+
def __setitem__(self, key, value):
53+
self.data[key] = value
54+
55+
56+
class DetailResume(object):
57+
"""
58+
简历详细信息
59+
"""
60+
# 定义构造方法
61+
def __init__(self, **kwargs):
62+
for key, value in kwargs.iteritems():
63+
self.__setattr__(key, value)
64+
65+
66+
def test_01():
67+
print '--------测试 01'
4668
user_info = {
4769
'name': 'Tom',
4870
'age': 20
4971
}
5072
# base_resume = BaseResume(name='Tom', age=20) # 方式一
5173
base_resume = BaseResume(**user_info) # 方式二
52-
print base_resume.name
53-
print base_resume.age
74+
print base_resume.name, base_resume['name']
75+
print base_resume.age, base_resume['age']
76+
# print base_resume.ff
77+
print isinstance(base_resume, BaseResume) # True
78+
print isinstance(base_resume, DetailResume) # False
79+
80+
81+
def test_02():
82+
print '--------测试 02'
83+
try:
84+
base_resume = BaseResume(name='Tom', age=20, ff=33) # 方式一 塞入错误的key
85+
print base_resume.name
86+
print base_resume.age
87+
print base_resume.ff
88+
print isinstance(base_resume, BaseResume) # True
89+
print isinstance(base_resume, DetailResume) # False
90+
except Exception, e:
91+
print e.message
92+
93+
94+
def test_03():
95+
print '--------测试 03'
96+
try:
97+
data = {
98+
'base': {
99+
'uid': 100,
100+
'name': 'Tom',
101+
'sex': 'M'
102+
},
103+
'edu': [
104+
{
105+
'school': 'S-ABC',
106+
'degree': u'学历1',
107+
'major': u'专业1'
108+
},
109+
{
110+
'school': 'S-DEF',
111+
'degree': u'学历2',
112+
'major': u'专业2'
113+
}
114+
],
115+
'work': [
116+
{
117+
'company': 'C-DGG',
118+
'job': 'J-DGG'
119+
},
120+
{
121+
'company': 'C-FGG',
122+
'job': 'J-FGG'
123+
},
124+
]
125+
}
126+
detail_resume = DetailResume(**data)
127+
print isinstance(detail_resume, DetailResume)
128+
print type(detail_resume.work), detail_resume.work
129+
except Exception, e:
130+
print e.message
131+
132+
133+
if __name__ == '__main__':
134+
test_01()
135+
test_02()
136+
test_03()
137+
138+
139+
"""
140+
测试结果:
141+
--------测试 01
142+
Tom
143+
20
144+
True
145+
False
146+
--------测试 02
147+
存在不允许的属性
148+
--------测试 03
149+
True
150+
<type 'list'> [{'company': 'C-DGG', 'job': 'J-DGG'}, {'company': 'C-FGG', 'job': 'J-FGG'}]
151+
"""

0 commit comments

Comments
 (0)