Add simple habit migration test

This commit is contained in:
Marty Oehme 2021-08-27 10:55:31 +02:00
parent 7ea2c1cf57
commit a9ac2f27c2
Signed by: Marty
GPG key ID: B7538B8F50A1C800
4 changed files with 49 additions and 20 deletions

18
loop/habit_migrator.py Normal file
View file

@ -0,0 +1,18 @@
def create_habits(db, trackers):
print("migrating habits, yo")
c = db.cursor()
tracker = trackers["cigarette"]
print(tracker)
# for when the execute works, can be filled in its own function
habit = (
tracker["label"],
0,
0,
tracker["id"],
)
c.execute(
"""INSERT INTO
Habits(id, name, position, type, uuid)
VALUES (NULL, ?, ?, ?, ?)""",
habit,
)

9
loop/migration.py Normal file
View file

@ -0,0 +1,9 @@
import loop.table_constructor as table_constructor
import loop.habit_migrator as habit_migrator
def migrate(trackers, events):
db = table_constructor.prepare_database("output.db")
if trackers is not None:
habit_migrator.create_habits(db, trackers)
db.commit()

View file

@ -5,6 +5,22 @@ def create_database(name):
return sqlite3.connect(name) return sqlite3.connect(name)
# better way to do the above
# def create_connection(db_file):
# """create a database connection to the SQLite database
# specified by db_file
# :param db_file: database file
# :return: Connection object or None
# """
# conn = None
# try:
# conn = sqlite3.connect(db_file)
# return conn
# except Error as e:
# print(e)
# return conn
def create_tables(db): def create_tables(db):
c = db.cursor() c = db.cursor()
c.execute( c.execute(
@ -39,6 +55,7 @@ def create_tables(db):
) )
def migrate(trackers, events): def prepare_database(name):
db = create_database("output.db") db = create_database(name)
create_tables(db) create_tables(db)
return db

View file

@ -1,8 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python
import json import json
import sys
import pandas as pd import pandas as pd
import toloop as loop import loop.migration as loop
def load_file(filename): def load_file(filename):
@ -41,25 +42,9 @@ def verify_continue(data):
exit(0) exit(0)
# better way to do this
# def create_connection(db_file):
# """create a database connection to the SQLite database
# specified by db_file
# :param db_file: database file
# :return: Connection object or None
# """
# conn = None
# try:
# conn = sqlite3.connect(db_file)
# return conn
# except Error as e:
# print(e)
# return conn
if __name__ == "__main__": if __name__ == "__main__":
# load nomie json # load nomie json
nomie_data = load_file("input.json") nomie_data = load_file(sys.argv[1])
# DISABLED FOR DEBUGGING # DISABLED FOR DEBUGGING
verify_continue(nomie_data) verify_continue(nomie_data)
trackers = nomie_data["trackers"] trackers = nomie_data["trackers"]