from datetime import datetime, date, time, timedelta from random import randint import hashlib from pgcopy import util genbool = lambda i: 0 == (i % 3) genint = lambda i: i genfloat = lambda i: 1.125 * i gendate = lambda i: date(1708, 1, 1) + timedelta(i % (250 * 365)) gentime = lambda i: time(randint(0, 23), randint(0, 59), randint(0, 59), randint(0, 999999)) gendatetime = lambda i: datetime(1970, 1, 1) + timedelta(hours=i) gendatetimetz = lambda i: util.to_utc(datetime(1970, 1, 1) + timedelta(hours=i)) genstr12 = lambda i: hashlib.md5(str(i).encode()).hexdigest()[:12 - (i % 3)].encode() datagen = { 'bool': genbool, 'smallint': genint, 'integer': genint, 'bigint': genint, 'real': genfloat, 'double precision': genfloat, 'date': gendate, 'time': gentime, 'timestamp': gendatetime, 'timestamp with time zone': gendatetimetz, 'varchar(12)': genstr12, 'char(12)': genstr12, }
def cast(self, v): return util.to_utc(v)
if not db_state['drop']: return get_conn().close() master = psycopg2.connect(database='postgres') master.autocommit = True cursor = master.cursor() cursor.execute('DROP DATABASE %s' % db_state['test_db']) cursor.close() master.close() genbool = lambda i: 0 == (i % 3) genint = lambda i: i genfloat = lambda i: 1.125 * i gendate = lambda i: date(1708, 1, 1) + timedelta(i % (250 * 365)) gendatetime = lambda i: datetime(1970, 1, 1) + timedelta(hours=i) gendatetimetz = lambda i: util.to_utc(datetime(1970, 1, 1) + timedelta(hours=i)) genstr12 = lambda i: hashlib.md5(str(i)).hexdigest()[:12 - (i % 3)] datagen = { 'bool': genbool, 'smallint': genint, 'integer': genint, 'bigint': genint, 'real': genfloat, 'double precision': genfloat, 'date': gendate, 'timestamp': gendatetime, 'timestamp with time zone': gendatetimetz, 'varchar(12)': genstr12, 'char(12)': genstr12, }