Fix import of nomie goal value

This commit is contained in:
Marty Oehme 2021-12-07 09:25:56 +01:00
parent 8eb9b6a492
commit aa2aff4e17
Signed by: Marty
GPG key ID: B7538B8F50A1C800
2 changed files with 73 additions and 2 deletions

View file

@ -1,7 +1,10 @@
import sqlite3
from habitmove.nomiedata import Tracker
from habitmove.loopdata import Habit
def migrate(db, trackers):
def migrate(db: sqlite3.Connection, trackers: list[Tracker]):
c = db.cursor()
habits = trackers_to_habits(trackers)
for habit in habits:
@ -34,7 +37,9 @@ def trackers_to_habits(trackers):
habits[-1].type = 1
# nomie only has concept of max value,
# use a percentage of it for Loop range target
habits[-1].target_value = int(t.max) // NOMIE_MAX_TO_TARGET_VALUE_RATIO
habits[-1].target_value = (
t.goal or int(t.max) // NOMIE_MAX_TO_TARGET_VALUE_RATIO
)
return habits

66
tests/test_habits.py Normal file
View file

@ -0,0 +1,66 @@
import pytest
from habitmove import loopdata, nomiedata
from habitmove import habits
@pytest.fixture
def trackerlist():
return [
nomiedata.Tracker(
hidden=False,
score=-1,
tag="testtrack",
emoji="🧪",
label="Testing",
uom="kilotest",
id="12345",
),
nomiedata.Tracker(
hidden=False,
tag="testtrack",
emoji="🧪",
label="Testing",
id="54321",
one_tap=False,
color="#FF0000",
ignore_zeros=False,
math="mean",
type="range",
uom="megatest",
min=0,
max=10,
goal=6,
default=2,
score=1,
),
]
def test_simple_habit_transform_from_tracker(trackerlist):
sut = trackerlist[0]
assert habits.trackers_to_habits([sut]) == [
loopdata.Habit(
name="🧪 Testing",
description="testtrack",
unit="kilotest",
uuid="12345",
archived=False,
color=0,
)
]
def test_range_habit_transform_from_tracker(trackerlist):
sut = trackerlist[1]
assert habits.trackers_to_habits([sut]) == [
loopdata.Habit(
name="🧪 Testing",
description="testtrack",
unit="megatest",
uuid="54321",
archived=False,
color=11,
type=1,
target_value=6,
)
]