闽公网安备 35020302035485号
3.编写测试SQL费事效率低,缺少开箱即用的数据生成器
5.方便开关,Mock与测试真正数据之间任意切换
import string
from random import choice, randint
def charfield_generator(min_length=0, max_length=20, choices=[]):
if not choices:
return ''.join(choice(string.ascii_letters) for i in range(randint(min_length, max_length)))
else:
return choice(choices)
IntegerFieldf integerfield_generator(min_value, max_value, choices=[]):
if not choices:
return randint(min_value, max_value)
else:
return choice(choices)
TextFieldf datetime_generator(start_dt=datetime.now(), end_dt=datetime.now()):
dt_delta = end_dt - start_dt
return start_dt + timedelta(seconds=randint(0, 24 * 3600 * dt_delta.days + dt_delta.seconds))
简单执行一下看看第一版效果:for i in range(10):
print('-------------- GENERATING SET %s -------------- ' % i)
print(charfield_generator())
print(integerfield_generator(0, 1000))
print(datetime_generator(datetime.strptime('2018-09-01 00:00:00', '%Y-%m-%d %H:%M:%S')))
print('-------------- GENERATED SET %s -------------- ' % i, '\n')
GENERATING SET 0 --------------
I
196
2018-09-30 13:22:31
-------------- GENERATED SET 0 --------------
-------------- GENERATING SET 1 --------------
XBFGGdpVwmlMMbCT
168
2018-11-16 09:02:16
-------------- GENERATED SET 1 --------------
-------------- GENERATING SET 2 --------------
ZgU
293
2018-12-04 08:44:08
-------------- GENERATED SET 2 --------------
-------------- GENERATING SET 3 --------------
TsUkylUiC
791
2018-10-01 03:48:16
-------------- GENERATED SET 3 --------------
-------------- GENERATING SET 4 --------------
IusHQZsKYFtKi
909
2019-04-22 02:02:27
-------------- GENERATED SET 4 --------------
-------------- GENERATING SET 5 --------------
ScRcj
505
2019-02-21 16:16:51
-------------- GENERATED SET 5 --------------
-------------- GENERATING SET 6 --------------
OLmbMrZImnvaF
500
2018-12-24 22:20:47
-------------- GENERATED SET 6 --------------
-------------- GENERATING SET 7 --------------
rNaRvAYSgxVzwLAe
664
2019-08-01 12:43:00
-------------- GENERATED SET 7 --------------
-------------- GENERATING SET 8 --------------
rtLks
532
2019-03-14 07:38:53
-------------- GENERATED SET 8 --------------
-------------- GENERATING SET 9 --------------
oIDFdOUKs
700
2018-09-21 19:59:06
-------------- GENERATED SET 9 --------------
[Finished in 0.2s]
有了模拟数据之后,需要做几件事:f model_generator(models, length):
"""
: models Models.model :
: length int :
: rtype QuerySet List :
"""
return []