Fix Weissman recipe time parsing

This commit is contained in:
Fizzlepoof
2026-05-22 14:23:34 +00:00
parent 9a24dd11ad
commit 1631dcd1c1
3 changed files with 49 additions and 1 deletions

View File

@@ -6,10 +6,16 @@ ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from app.services.tagging import curate_recipe_tags
from app.services.recipe_importer import normalize_recipe_from_url
from app.services.recipe_importer import normalize_recipe_from_url, parse_duration_minutes
class TaggingTests(unittest.TestCase):
def test_textual_durations_cover_weissman_style_time_strings(self):
self.assertEqual(parse_duration_minutes('1 hr, 15 min'), 75)
self.assertEqual(parse_duration_minutes('45 min + 12 hrs'), 765)
self.assertEqual(parse_duration_minutes('30 minutes'), 30)
self.assertEqual(parse_duration_minutes('90 sec'), 2)
def test_tater_tots_drop_boilerplate_and_gain_meaningful_tags(self):
payload = normalize_recipe_from_url(
'https://www.joshuaweissman.com/recipes/the-best-tater-tots-ever-recipe'
@@ -21,6 +27,9 @@ class TaggingTests(unittest.TestCase):
self.assertIn('tater-tots', payload['tags'])
self.assertIn('side-dish', payload['tags'])
self.assertNotIn('beef', payload['tags'])
self.assertEqual(payload['prep_time'], 30)
self.assertEqual(payload['cook_time'], 45)
self.assertEqual(payload['time'], 75)
def test_halal_chicken_rice_drops_boilerplate_and_infers_cuisine(self):
payload = normalize_recipe_from_url(
@@ -33,6 +42,9 @@ class TaggingTests(unittest.TestCase):
self.assertIn('chicken', payload['tags'])
self.assertIn('rice', payload['tags'])
self.assertNotIn('skillet', payload['tags'])
self.assertEqual(payload['prep_time'], 30)
self.assertEqual(payload['cook_time'], 45)
self.assertEqual(payload['time'], 75)
def test_existing_machine_tags_can_be_replaced_when_recipe_content_disagrees(self):
tags = curate_recipe_tags(