def test_cleanup_table(): dbops = DBOps() sql = "TRUNCATE cbc_schedule.test" with dbops.connection.cursor() as cursor: cursor.execute(sql) dbops.connection.commit() now = datetime.datetime.utcnow() past = datetime.datetime.now() - datetime.timedelta(days=31) sql1 = """ INSERT INTO cbc_schedule.test (name, insert_timestamp) VALUES (%s, %s) """ sql2 = """ INSERT INTO cbc_schedule.test (name, insert_timestamp) VALUES (%s, %s) """ with dbops.connection.cursor() as cursor: cursor.execute(sql1, ('test1', now)) cursor.execute(sql2, ('test2', past)) dbops.connection.commit() sql = "SELECT * FROM cbc_schedule.test" df = pd.read_sql(sql, dbops.connection) assert len(df) == 2 dbops.cleanup_table('test', 30) sql = "SELECT * FROM cbc_schedule.test" df = pd.read_sql(sql, dbops.connection) assert len(df) == 1 sql = "TRUNCATE cbc_schedule.test" with dbops.connection.cursor() as cursor: cursor.execute(sql) dbops.connection.commit()
def cleanup_table(table, days): """ Cleans up old data in the specified table """ dbops = DBOps() dbops.cleanup_table(table=table, days=days)