73 lines
2.1 KiB
Python
73 lines
2.1 KiB
Python
from datetime import date, datetime
|
||
from obsidian.notes_parser import serialize_exercise
|
||
from obsidian.py_models import Approach, Exercise, Training
|
||
import pytest
|
||
|
||
|
||
@pytest.mark.parametrize(
|
||
"reps, weight, name, expected",
|
||
[
|
||
(
|
||
"12-12-12-10",
|
||
"55-59",
|
||
"test_exercise",
|
||
Exercise(
|
||
name="test_exercise",
|
||
splitted_weight=False,
|
||
approaches=[
|
||
Approach(weight=55, reps=12),
|
||
Approach(weight=59, reps=12),
|
||
Approach(weight=59, reps=12),
|
||
Approach(weight=59, reps=10),
|
||
],
|
||
),
|
||
),
|
||
(
|
||
"11-9-7",
|
||
"",
|
||
"test_exercise",
|
||
Exercise(
|
||
name="test_exercise",
|
||
splitted_weight=False,
|
||
approaches=[
|
||
Approach(weight=0, reps=11),
|
||
Approach(weight=0, reps=9),
|
||
Approach(weight=0, reps=7),
|
||
],
|
||
),
|
||
),
|
||
(
|
||
"12-12-12-12",
|
||
"15х2-25х2-27.5х2-30х2",
|
||
"test_exercise",
|
||
Exercise(
|
||
name="test_exercise",
|
||
splitted_weight=True,
|
||
approaches=[
|
||
Approach(weight=15, reps=12),
|
||
Approach(weight=25, reps=12),
|
||
Approach(weight=27.5, reps=12),
|
||
Approach(weight=30, reps=12),
|
||
],
|
||
),
|
||
),
|
||
(
|
||
"12-12-12-12",
|
||
"15х2-25х2",
|
||
"test_exercise",
|
||
Exercise(
|
||
name="test_exercise",
|
||
splitted_weight=True,
|
||
approaches=[
|
||
Approach(weight=15, reps=12),
|
||
Approach(weight=25, reps=12),
|
||
Approach(weight=25, reps=12),
|
||
Approach(weight=25, reps=12),
|
||
],
|
||
),
|
||
),
|
||
],
|
||
)
|
||
def test_approach_parsing(reps, weight, name, expected):
|
||
exercise = serialize_exercise(reps, weight, name)
|
||
assert expected == exercise
|