diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index 28348543e..424ada2f6 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -128,6 +128,7 @@ from .justbento import JustBento from .justonecookbook import JustOneCookbook from .kennymcgovern import KennyMcGovern +from .keukenliefdenl import KeukenLiefdeNL from .kingarthur import KingArthur from .kitchenstories import KitchenStories from .kochbar import Kochbar @@ -425,6 +426,7 @@ JustBento.host(): JustBento, JustOneCookbook.host(): JustOneCookbook, KennyMcGovern.host(): KennyMcGovern, + KeukenLiefdeNL.host(): KeukenLiefdeNL, KingArthur.host(): KingArthur, KitchenStories.host(): KitchenStories, Kochbar.host(): Kochbar, diff --git a/recipe_scrapers/keukenliefdenl.py b/recipe_scrapers/keukenliefdenl.py new file mode 100644 index 000000000..91c235765 --- /dev/null +++ b/recipe_scrapers/keukenliefdenl.py @@ -0,0 +1,86 @@ +# mypy: allow-untyped-defs +from ._abstract import AbstractScraper +from ._exceptions import ElementNotFoundInHtml +from ._utils import get_minutes, get_yields, normalize_string + + +class KeukenLiefdeNL(AbstractScraper): + @classmethod + def host(cls): + return "keukenliefde.nl" + + def author(self): + return self.soup.find("meta", {"name": "author"}).get("content") + + def title(self): + return self.soup.find("meta", {"property": "og:title"}).get("content") + + def category(self): + return self.soup.find( + "div", {"class": "article-meta-item sp gerecht"} + ).getText() + + def total_time(self): + return get_minutes( + self.soup.find("div", {"class": "article-meta-item sp tijd"}).get_text() + ) + + def yields(self): + yields = self.soup.find("div", {"class": "article-meta-item sp aantal"}) + if yields: + return get_yields(yields.get_text()) + + return None + + def image(self): + return self.schema.image() + + def ingredients(self): + ingredents_container = self.soup.find("div", {"id": "clipboard-ingredients"}) + if ingredents_container: + return self.process_ingredients(ingredents_container) + + ingredient_header = self.soup.find("strong", string="Ingrediënten") + if ingredient_header: + return self.process_ingredients( + ingredient_header.parent.find_next_sibling("ul") + ) + + # Nothing found, we give up. + raise ElementNotFoundInHtml("Could not find ingredients.") + + def process_ingredients(self, container): + ingredients = container.findChildren("li") + + return [normalize_string(i.get_text()) for i in ingredients] + + def instructions(self): + # Old recipes are written in paragraphs, new ones are a list. + preparation = self.soup.find("div", {"class": "preparation"}) + if preparation: + return self.normalize_instructions( + preparation.find_all("p") + preparation.find_all("li") + ) + + # There are some really old recipes that do not have the nice classes + instructions_heading = self.soup.find("strong", string="Bereiding") + if instructions_heading: + # We are doing some assumptions here + return self.normalize_instructions( + [instructions_heading.parent] + + instructions_heading.parent.find_next_siblings("p") + ) + + raise ElementNotFoundInHtml("Could not find instructions.") + + def normalize_instructions(self, instructions): + instructions = [ + normalize_string(item.get_text()) + for item in instructions + if normalize_string(item.get_text()) + ] + + return "\n".join(instructions) + + def description(self): + return self.soup.find("meta", {"name": "description"}).get("content") diff --git a/tests/test_data/keukenliefdenl_1.testhtml b/tests/test_data/keukenliefdenl_1.testhtml new file mode 100644 index 000000000..5beba5d55 --- /dev/null +++ b/tests/test_data/keukenliefdenl_1.testhtml @@ -0,0 +1,388 @@ + + + +Macaroni stroganoff | Keukenliefde + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
+
+
+
+
+

Macaroni stroganoff

+
+

Een keer wat anders dan macaroni bolognese? Maak deze macaroni met stroganoffsaus: een goedgevulde saus met gehakt, paprika’s en champignons. Je kent de macaroni stroganoff misschien wel van het welbekende pakje, maar zelf maken is net zo makkelijk. Probeer het maar en verras jezelf!

Hoofdgerecht, Budget, Snel, Vleesrecepten

+

Smaakt dit recept naar meer? Wist je dat we twee kookboeken hebben uitgebracht?

Inspiratie nodig voor het avondeten? In KOKEN MET KEUKENLIEFDE en KOKEN MET KEUKENLIEFDE FAMILIEGERECHTEN vind je 75 makkelijke én originele hoofdgerechten voor elke dag!

Bestel ze hier

(14 stemmen)
+
+
+
+
8 reacties

Deel je liefde

+

+ +

+ +

    +
  1. Belin73

    Echt heerlijk.!!!!

  2. +
  3. Irma

    Lekker, ipv paprikapoeder, gerookte (sweet) paprikapoeder gebruikt.. met creme fraise er door was het heerlijk!

  4. +
  5. +
    +
    +
    Jen

    Mijn dochter van 8 die al jaren niet met de pot mee eet heeft hier net heerlijk van gegeten! Bedankt

      +
    1. Kijk, een mooier compliment bestaat toch niet! Bedankt voor je reactie Jen, word ik blij van!

    2. +
    3. +
      +
      +
      P. Muilwijk

      Hoi annemiek, deze lijkt me heerlijk om is te maken! Maar mijn vraag is, hoeveel kookroom gaat er ongeveer in? Een heel pakje, of is dat te veel?

      Groetjes patricia

        +
      1. Hoi Patricia, een heel pakje is idd geen scheutje. 😉 Gewoon een scheutje toevoegen voor wat romigheid, hoeft niet veel te zijn.

      2. +
      +
    4. +
    +
  6. +
  7. +
    +
    +
    Annette

    Inderdaad eens wat anders dan bolognesesaus. Ik heb er wel nog wat geraspte kaas over gedaan. Erg lekker!

      +
    1. Bedankt voor het recept! Hij was net heerlijk ?

    2. +
    +
  8. +
+
+

Dit vind je misschien ook leuk

+Bekijk alle recepten +
+ +
Follow on Bloglovin
+Keuken♥Liefde + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/keukenliefdenl_2.testhtml b/tests/test_data/keukenliefdenl_2.testhtml new file mode 100644 index 000000000..5f69e73fb --- /dev/null +++ b/tests/test_data/keukenliefdenl_2.testhtml @@ -0,0 +1,298 @@ + + + +Sticky kippenvleugels (van de kamado) | Keukenliefde + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
+
+
+
+
+

Sticky kippenvleugels (van de kamado)

+
+

In dit recept laten we je zien hoe je deze smakelijke sticky kippenvleugels kunt maken. De kippenvleugels worden eerst lekker gekruid en langzaam gegaard op de kamado, totdat ze mals en doordrenkt zijn met de rokerige smaken van houtskool. Vervolgens zetten we de kers op de taart met onze (zelfgemaakte) teriyaki saus, die elke hap omtovert tot een culinair meesterwerk.

Wat zijn kippenvleugels

Zoals de naam al zegt zijn kippenvleugels de vleugels van een kip. Het vlees is lekker sappig en mals. Vanwege hun smaak en grootte zijn ze heel geschikt als borrelhapje.

Hapje

Kippenvleugels worden ook wel TV-sticks genoemd, omdat je ze makkelijk met de hand kunt eten. Ik maak deze sticky kippenvleugels graag in het weekend om als snack of hapje bij een mooie sportwedstrijd te serveren. Je kunt ze ook laten rondgaan op een verjaardag of feestje. Succes gegarandeerd!

Sticky kippenvleugels

In dit recept ga je de kip eerst kruiden om hem een lekkere smaak te geven. Als de kip mals is lak je hem met een plakkerige, kleverige saus voor het sticky laagje. Deze saus kan variëren in smaak, maar meestal zit er suiker of honing in de saus waardoor hij mooi gaat karameliseren. Ik gebruik in dit recept teriyakisaus, maar barbecuesaus of chilisaus zijn ook heerlijk. Probeer zelf wat jouw favoriet is!

Uit de oven

Je kunt deze kippenvleugels ook in de oven maken, op dezelfde temperatuur als hieronder beschreven. Verdeel de kippenvleugels dan over een bakblik met bakpapier zodat ze niet vast blijven plakken.


Sticky kippenvleugels (van de kamado)

Professional of beginner

Of je nu een doorgewinterde barbecue professional bent of net begint aan je rookavontuur, dit recept is een must-try voor iedereen die houdt van de perfecte combinatie van rook en teriyaki. Dus, stook die kamado op en laten we samen een onvergetelijke smaakervaring creëren.

Laten we beginnen!

Sticky kippenvleugels (van de kamado)

Kamado recepten, Barbecuerecepten, Voor bij de borrel

+

Smaakt dit recept naar meer? Wist je dat we twee kookboeken hebben uitgebracht?

Inspiratie nodig voor het avondeten? In KOKEN MET KEUKENLIEFDE en KOKEN MET KEUKENLIEFDE FAMILIEGERECHTEN vind je 75 makkelijke én originele hoofdgerechten voor elke dag!

Bestel ze hier

(5 stemmen)
+
+
+
+
Eén reactie

Deel je liefde

+

+ +

+ +

    +
  1. Tilly

    Deze ga ik zeker maken binnenkort, maar…… ik mis kijkje in de keuken week 38 of heb ik het mis, ik geniet er iedere week weer van.
    Gr. Tilly

  2. +
+
+

Dit vind je misschien ook leuk

+Bekijk alle recepten +
+ +
Follow on Bloglovin
+Keuken♥Liefde + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/keukenliefdenl_3.testhtml b/tests/test_data/keukenliefdenl_3.testhtml new file mode 100644 index 000000000..a80ec8fae --- /dev/null +++ b/tests/test_data/keukenliefdenl_3.testhtml @@ -0,0 +1,381 @@ + + + +Stroganoff-gehaktschotel | Keukenliefde + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
+
+
+
+

Stroganoff-gehaktschotel

+
+
+

Stroganoff-gehaktschotel

+

Deze stroganoff-gehaktschotel had mijn allereerste kookfilm-primeur moeten worden, maar helaas liepen de zaken in huize Verweij weer eens anders dan gepland. Ik had het maken van een kookvideo namelijk tamelijk onderschat en moest uiteindelijk zoveel knippen en plakken, dat het echt niet leuk meer was. Het filmpje heb ik daarom verwijderd. Gelukkig baart oefening kunst en inmiddels gaat het filmen en monteren me een stuk beter af. Voor en tijdens de kerst kwamen er al flink wat nieuwe kookfilmpjes online op ons youtubekanaal. Heb jij ze al gezien? Bekijk ze hier en vergeet je niet te abonneren: het is gratis en je ziet tevens als eerste de allernieuwste filmpjes!

+

De ingrediëntenlijst van dit gerecht mag dan misschien lang zijn, de meeste spullen (op de groenten en het gehakt na) heb je waarschijnlijk standaard in je kelderkast liggen. Daarnaast durf ik te wedden dat deze stroganoff-gehaktschotel na het proeven direct tot één van je favorieten behoort. Hij is echt ontzettend lekker!

+

Hoofdgerecht – 4 tot 5 personen – 40 minuten + 40 minuten in de oven

+

Ingrediënten

+
    +
  • 1,5 kilo aardappels, geschild
  • +
  • Melk
  • +
  • Roomboter
  • +
  • 2 uien, gepeld en in ringen
  • +
  • 2 tenen knoflook, gepeld en fijngehakt
  • +
  • 3 paprika’s, in repen gesneden
  • +
  • 250 g champignons, in plakjes gesneden
  • +
  • 1 el paprikapoeder
  • +
  • 1 blikje tomatenpuree
  • +
  • 1 runderbouillonblokje
  • +
  • 500 g rundergehakt
  • +
  • 2 el crème fraîche
  • +
  • Worchestersaus
  • +
  • Tabasco
  • +
  • 75 g geraspte kaas
  • +
  • Olie om in te bakken
  • +
  • Eventueel scheutje Vodka
  • +
+

Stroganoff-gehaktschotel-1

+

Verder nodig
+Ovenschaal

+

Bereiding
+Verhit een grote koekenpan of braadpan met wat olie en bak de ui, knoflook, paprika’s en champignons op middelhoog vuur, totdat ze zacht zijn. Voeg de paprikapoeder en tomatenpuree toe en bak even mee.

+

Stroganoff-gehaktschotel-5

+

Verkruimel het bouillonblokje boven de pan en voeg het gehakt toe. Roer het gehakt met een vork goed rul. Blus het gehaktmengsel eventueel af met een scheut Vodka, laat inkoken en voeg dan 100 ml water toe.

+

Stroganoff-gehaktschotel-9

+

Zet het vuur weer laag en laat 15 minuten zachtjes pruttelen, of totdat de saus is ingedikt. Roer de laatste 5 minuten van de kooktijd de crème fraîche door het gehakt. Proef de saus en breng indien nodig verder op smaak met wat Worchestersaus en tabasco.

+

Kook ondertussen de aardappels gaar en giet ze af. Stamp ze fijn en roer de puree glad met wat melk en een klont roomboter.

+

Stroganoff-gehaktschotel-11

+

De puree moet niet te dik zijn, anders kun je hem zometeen moeilijk uitstrijken. Breng goed op smaak met zout en peper.

+

Verwarm de oven voor op 200 graden. Vet de ovenschaal in. Verdeel het gehaktmengsel over de ovenschaal en dek af met de aardappelpuree. Bestrooi met de geraspte kaas.

+

Stroganoff-gehaktschotel-15Stroganoff-gehaktschotel-18

+

Bak de ovenschotel circa 30 tot 40 minuten in de oven, of totdat de bovenkant goudbruin is.

+

Stroganoff-gehaktschotelStroganoff-gehaktschotel-31

+

Laat de schotel voor serveren iets afkoelen.

+

Enjoy!

+

 

+

Thema recepten, Wereldgerecht, Hongaarse recepten, Mannenvoer, Hoofdgerecht, Ovenrecepten, Vleesrecepten

+

Smaakt dit recept naar meer? Wist je dat we twee kookboeken hebben uitgebracht?

Inspiratie nodig voor het avondeten? In KOKEN MET KEUKENLIEFDE en KOKEN MET KEUKENLIEFDE FAMILIEGERECHTEN vind je 75 makkelijke én originele hoofdgerechten voor elke dag!

Bestel ze hier

(3 stemmen)
+
+
+
+
+
9 reacties

Deel je liefde

+

+ +

+ +

    +
  1. Anja Korsten

    Deze vandaag gemaakt. Ik had helaas niet alle ingredienten in huis. Ik heb de Worchestersaus en Tabasco vervangen door Jack Daniels BBQ saus (smooth original) met whiskey omdat ik die wel had staan en wat sambal. Ook de tomatenpuree had ik niet, deze vervangen door jumbo tomatenblokjes.
    Maar wat was het heerlijk! Ik ga deze zeker nog een keer maken en dan met de juiste ingredienten. 🙂

  2. +
  3. anne

    lekker, ga ik zeker nogmaals maken

  4. +
  5. Janine

    Hier nu ook een paar keer gemaakt, valt echt goed in de smaak. In plaats van vodka doe ik er een flinke scheut rode wijn door. Ook eens gemaakt met sperziebonen ipv paprika en champignons. Deze leg ik dan op de onderste laag gehakt. Mogelijk nóg lekkerder! Is een blijvertje dit!

  6. +
  7. +
    +
    +
    Anja

    Op hoeveel graden moet de oven?

      +
    1. 200 graden.

    2. +
    +
  8. +
  9. +
    +
    +
    Marina

    Deze vandaag uitgeprobeerd was ook weer super lekker!!! Bedankt!!!

      +
    1. Graag gedaan Marina en bedankt voor je leuke reactie!

    2. +
    +
  10. +
  11. +
    +
    +
    Elisa

    Afgelopen zaterdag stond deze schotel bij ons op het menu. Helaas was de vodka op, maar toen maar een scheutje bacardi erbij gedaan. En de smaak was prima, we hebben lekker zitten smullen met z’n tweetjes. Nog wel flink wat over, maar dat gaat lekker in de diepvries 🙂

      +
    1. Bacardi? Je brengt me op ideeën. 😉 Fijn om te horen dat het gesmaakt heeft!

    2. +
    +
  12. +
+
+

Dit vind je misschien ook lekker

+Bekijk alle recepten +
+ +
Follow on Bloglovin
+Keuken♥Liefde + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_keukenliefdenl_1.py b/tests/test_keukenliefdenl_1.py new file mode 100644 index 000000000..bbe90edfa --- /dev/null +++ b/tests/test_keukenliefdenl_1.py @@ -0,0 +1,68 @@ +# mypy: allow-untyped-defs + +from recipe_scrapers.keukenliefdenl import KeukenLiefdeNL +from tests import ScraperTest + + +class TestKeukenLiefdeNL1Scraper(ScraperTest): + + scraper_class = KeukenLiefdeNL + test_file_name = "keukenliefdenl_1" + + def test_host(self): + self.assertEqual("keukenliefde.nl", self.harvester_class.host()) + + def test_author(self): + self.assertEqual("Annemiek", self.harvester_class.author()) + + def test_title(self): + self.assertEqual("Macaroni stroganoff", self.harvester_class.title()) + + def test_category(self): + self.assertEqual("Hoofdgerecht", self.harvester_class.category()) + + def test_total_time(self): + self.assertEqual(15, self.harvester_class.total_time()) + + def test_yields(self): + self.assertEqual("4 servings", self.harvester_class.yields()) + + def test_image(self): + self.assertEqual( + "https://www.keukenliefde.nl/wp-content/uploads/2017/11/Macaroni-stroganoff-4568.jpg", + self.harvester_class.image(), + ) + + def test_ingredients(self): + self.assertEqual( + [ + "300 g macaroni", + "1 ui, fijngesnipperd", + "1 teen knoflook, uitgeperst", + "2 paprika’s", + "250 g champignons", + "300 g rundergehakt", + "1 blikje tomatenpuree", + "1 el paprikapoeder", + "1 tl chilipoeder (optioneel)", + "1 runderbouillontablet", + "Scheut kookroom of crème fraîche", + "Olijfolie om in te bakken", + ], + self.harvester_class.ingredients(), + ) + + def test_instructions(self): + self.assertEqual( + "Verhit een hapjespan met een scheut olie en fruit de ui en knoflook op laag vuur, totdat ze zacht zijn. Was ondertussen de paprika’s en verwijder de zaadlijsten. Snijd de paprika’s in blokjes. Borstel de champignons schoon en snijd in plakken. Voeg de paprika’s, champignons, paprikapoeder (en chilipoeder) toe aan de ui en zet het vuur wat hoger. Bak kort verder, totdat de groenten iets geslinkt zijn. Voeg het gehakt, de tomatenpuree en verkruimelde bouillontablet toe. Roer het gehakt los. Doe de deksel op de pan en laat op laag tot middelhoog vuur zachtjes pruttelen. Roer — als het gehakt en de groenten gaar zijn — een scheut room door de saus en warm nog even door.\nKook ondertussen de macaroni gaar volgens de omschrijving op het pak. Giet de macaroni af en roer door het gehakt.\nGarneer eventueel met wat vers gehakte peterselie.", + self.harvester_class.instructions(), + ) + + def test_description(self): + self.assertEqual( + "Een keer wat anders dan macaroni bolognese? Maak deze macaroni met stroganoffsaus: een goedgevulde saus met gehakt, paprika's en champignons.", + self.harvester_class.description(), + ) + + def test_language(self): + self.assertEqual("nl-NL", self.harvester_class.language()) diff --git a/tests/test_keukenliefdenl_2.py b/tests/test_keukenliefdenl_2.py new file mode 100644 index 000000000..8ee825c0a --- /dev/null +++ b/tests/test_keukenliefdenl_2.py @@ -0,0 +1,61 @@ +# mypy: allow-untyped-defs + +from recipe_scrapers.keukenliefdenl import KeukenLiefdeNL +from tests import ScraperTest + + +class TestKeukenLiefdeNL2Scraper(ScraperTest): + + scraper_class = KeukenLiefdeNL + test_file_name = "keukenliefdenl_2" + + def test_host(self): + self.assertEqual("keukenliefde.nl", self.harvester_class.host()) + + def test_author(self): + self.assertEqual("Johan", self.harvester_class.author()) + + def test_title(self): + self.assertEqual( + "Sticky kippenvleugels (van de kamado)", self.harvester_class.title() + ) + + def test_category(self): + self.assertEqual("Hapje", self.harvester_class.category()) + + def test_total_time(self): + self.assertEqual(5, self.harvester_class.total_time()) + + def test_yields(self): + self.assertEqual(None, self.harvester_class.yields()) + + def test_image(self): + self.assertEqual( + "https://www.keukenliefde.nl/wp-content/uploads/2023/09/Sticky-kippenvleugels-van-de-kamado-1675.jpg", + self.harvester_class.image(), + ) + + def test_ingredients(self): + self.assertEqual( + [ + "Kippenvleugels", + "Kipkruiden", + "Teriyakisaus (zelfgemaakt of kant-en-klaar)", + ], + self.harvester_class.ingredients(), + ) + + def test_instructions(self): + self.assertEqual( + "Stook de kamado indirect op tot 150 graden.\nLeg de kippenvleugels als de temperatuur stabiel op 150 graden blijft op het rooster en sluit de klep voor een half uur.\nDoe de teriyaki saus alvast in een vuurvaste pan en zet die na zo’n 20 minuten bij de kippenvleugels op het rooster.\nDe saus kan zo lekker opwarmen en iets dunner worden waardoor de vleugels zometeen lekker door de saus gehaald kunnen worden en goed veel saus aan de vleugels blijft plakken.\nNa 30 minuten open je de klep en haal je de vleugels met een tang door de saus. Zorg dat de kippenvleugels goed omhult zijn met saus. Leg de vleugels daarna weer terug op het rooster en laat ze met gesloten klep nog zo’n 10 minuten liggen.", + self.harvester_class.instructions(), + ) + + def test_description(self): + self.assertEqual( + "In dit recept laten we je zien hoe je deze smakelijke sticky kippenvleugels van de kamado (of in de oven) kunt maken. Ze zijn verslavend lekker!", + self.harvester_class.description(), + ) + + def test_language(self): + self.assertEqual("nl-NL", self.harvester_class.language()) diff --git a/tests/test_keukenliefdenl_3.py b/tests/test_keukenliefdenl_3.py new file mode 100644 index 000000000..c8db4d656 --- /dev/null +++ b/tests/test_keukenliefdenl_3.py @@ -0,0 +1,73 @@ +# mypy: allow-untyped-defs + +from recipe_scrapers.keukenliefdenl import KeukenLiefdeNL +from tests import ScraperTest + + +class TestKeukenLiefdeNL3Scraper(ScraperTest): + + scraper_class = KeukenLiefdeNL + test_file_name = "keukenliefdenl_3" + + def test_host(self): + self.assertEqual("keukenliefde.nl", self.harvester_class.host()) + + def test_author(self): + self.assertEqual("Annemiek", self.harvester_class.author()) + + def test_title(self): + self.assertEqual("Stroganoff-gehaktschotel", self.harvester_class.title()) + + def test_category(self): + self.assertEqual("Hoofdgerecht", self.harvester_class.category()) + + def test_total_time(self): + self.assertEqual(60, self.harvester_class.total_time()) + + def test_yields(self): + self.assertEqual("4 servings", self.harvester_class.yields()) + + def test_image(self): + self.assertEqual( + "https://www.keukenliefde.nl/wp-content/uploads/2014/11/Stroganoff-gehaktschotel-27.jpg", + self.harvester_class.image(), + ) + + def test_ingredients(self): + self.assertEqual( + [ + "1,5 kilo aardappels, geschild", + "Melk", + "Roomboter", + "2 uien, gepeld en in ringen", + "2 tenen knoflook, gepeld en fijngehakt", + "3 paprika’s, in repen gesneden", + "250 g champignons, in plakjes gesneden", + "1 el paprikapoeder", + "1 blikje tomatenpuree", + "1 runderbouillonblokje", + "500 g rundergehakt", + "2 el crème fraîche", + "Worchestersaus", + "Tabasco", + "75 g geraspte kaas", + "Olie om in te bakken", + "Eventueel scheutje Vodka", + ], + self.harvester_class.ingredients(), + ) + + def test_instructions(self): + self.assertEqual( + "Bereiding Verhit een grote koekenpan of braadpan met wat olie en bak de ui, knoflook, paprika’s en champignons op middelhoog vuur, totdat ze zacht zijn. Voeg de paprikapoeder en tomatenpuree toe en bak even mee.\nVerkruimel het bouillonblokje boven de pan en voeg het gehakt toe. Roer het gehakt met een vork goed rul. Blus het gehaktmengsel eventueel af met een scheut Vodka, laat inkoken en voeg dan 100 ml water toe.\nZet het vuur weer laag en laat 15 minuten zachtjes pruttelen, of totdat de saus is ingedikt. Roer de laatste 5 minuten van de kooktijd de crème fraîche door het gehakt. Proef de saus en breng indien nodig verder op smaak met wat Worchestersaus en tabasco.\nKook ondertussen de aardappels gaar en giet ze af. Stamp ze fijn en roer de puree glad met wat melk en een klont roomboter.\nDe puree moet niet te dik zijn, anders kun je hem zometeen moeilijk uitstrijken. Breng goed op smaak met zout en peper.\nVerwarm de oven voor op 200 graden. Vet de ovenschaal in. Verdeel het gehaktmengsel over de ovenschaal en dek af met de aardappelpuree. Bestrooi met de geraspte kaas.\nBak de ovenschotel circa 30 tot 40 minuten in de oven, of totdat de bovenkant goudbruin is.\nLaat de schotel voor serveren iets afkoelen.\nEnjoy!\nThema recepten, Wereldgerecht, Hongaarse recepten, Mannenvoer, Hoofdgerecht, Ovenrecepten, Vleesrecepten", + self.harvester_class.instructions(), + ) + + def test_description(self): + self.assertEqual( + "Een heerlijk gerecht geïnspireerd op de Hongaarse keuken: stroganoff-gehaktschotel!", + self.harvester_class.description(), + ) + + def test_language(self): + self.assertEqual("nl-NL", self.harvester_class.language())