diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000..af700ae --- /dev/null +++ b/.coveragerc @@ -0,0 +1,30 @@ +# .coveragerc to control coverage.py +[run] +branch = True +omit= + test*.py + setup.py + __init__.py + +[report] +# Regexes for lines to exclude from consideration +exclude_lines = + # Have to re-enable the standard pragma + pragma: no cover + + # Don't complain about missing debug-only code: + def __repr__ + if self\.debug + + # Don't complain if tests don't hit defensive assertion code: + raise AssertionError + raise NotImplementedError + + # Don't complain if non-runnable code isn't run: + if 0: + if __name__ == .__main__.: + +ignore_errors = True + +[html] +directory = coverage_html_report diff --git a/.gitignore b/.gitignore index fffc64d..69dd6d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,14 @@ __pycache__ *.swp + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ diff --git a/Makefile b/Makefile index 9933c76..23963df 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ setup: test: ${PYCODESTYLE} *.py -# ${PYTHON} -m pytest + ${PYTHON} -m pytest --cov-report=term --cov=app tests/ clean: @echo "cleaning" diff --git a/pages/paradise2019.md b/pages/paradise2019.md new file mode 100644 index 0000000..182611a --- /dev/null +++ b/pages/paradise2019.md @@ -0,0 +1,50 @@ +title: Metal Hammer Paradise 2019 +date: 10.11.2019 +author: Markus +description: 'Auch dieses Jahr sind wir wieder zum Metal Hammer Paradise Indoor-Festival gefahren. Das übersichtliche Festival findet immer an zwei Tagen im November im Ferienpark „Weißenhäuser Strand“ direkt an der Ostsee statt.' + +Auch dieses Jahr sind wir wieder zum [Metal Hammer Paradise](https://metal-hammer-paradise.de) Indoor-Festival gefahren. Das übersichtliche Festival findet immer an zwei Tagen im November im Ferienpark „Weißenhäuser Strand“ direkt an der Ostsee statt. Man ist in Apartments, Bungalows oder, wenn man will, sogar im Hotel untergebracht. Aufgrund der weiten Reise verlängern wir den Aufenthalt immer um zwei Nächte und genießen einen zusätzlichen „Wellness- und Erholungstag“. + +![Das Metal Hammer Paradise heißt uns willkommen](static/img/paradise2019welcome.jpg#illustration) + +## Freitag + +Den musikalischen Auftakt am Freitag bilden **Motorowl** aus Thüringen. Die junge Band hat sichtlich Freude an ihrem Auftritt und liefert einen tollen Gig in der komplett gefüllten _Riffalm_. Die „Riffalm“ ist ein kleines Rondell, in der immer die kleinen Bands und Newcomer zu sehen sind. Tatsächlich fanden dort dieses Jahr die Konzerte statt, die ich am spannendsten fand. + +![Motorowl](static/img/paradise2019motorowl.jpg#illustration) + +Vor **Motorowl** waren wir noch zur Autogrammstunde bei **Khemmis** um uns die LP signieren zu lassen. Die Band aus Denver, Colorado spielen ihren Doom im Anschluss an **Motorowl** ebenfalls im Rondell. Nachdem diese Venue nach den Konzerten zum Umbau immer geräumt wird (weil sie so klein ist) haben uns also sofort wieder angestellt und waren somit die ersten in der Warteschlange. Dort bekommen wir bald Gesellschaft von zwei Typen, die **Khemmis** ebenfalls unbedingt live erleben wollen und es entsteht ein munteres Fachsimpeln und kultureller Austausch zwischen Schwaben, Sachsen und Franken. + +![Khemmis](static/img/paradise2019khemmis.jpg#illustration) + +**Khemmis**, die bereits bei der Autogrammstunde sehr sympathisch wirkten, liefern dann ein richtig gutes, energiegeladenes Konzert ab. Wir erleben die Band hautnah aus der ersten Reihe und ich muss ein paar Mal den Kopf einziehen um nicht den Gitarrenhals an die Birne zu bekommen, wenn Phil am vordersten Bühnenrand stehend wieder umschwenkt. Es ging richtig gut ab, man war durchgeschwitzt und glücklich. Umwerfend - im wahrsten Sinne des Wortes, als die Menge hinter uns etwas entgleist und uns mit zu Boden nimmt. + +![Der nette Herr begrüßt die Besucher der Hauptbühne](static/img/paradise2019demon.jpg#illustration) + +Danach gibt es nichts Interessantes mehr für uns. Die beiden Konzerte waren jedoch so gut, dass wir mit dem Konzerttag schon sehr zufrieden sind. Wir schauen dennoch kurz bei **Rage** vorbei, die als Ersatz für die verhinderten **Primal Fear** auftreten und vor allem die Alten Tage zelebrieren. + +Furchtbar dagegen der Freitags-Headliner, **Steel Panther**. Keine Ahnung, was die Jungs vom Metal Hammer geritten hat, diese Band als Headliner ins Billing zu nehmen. Das Publikum war offensichtlich der gleichen Meinung. Kaum Applaus, dafür Pfiffe und Buh-Rufe für die arrogante Band aus Los Angeles. + +## Samstag + +Graues, regnerisches Wetter lädt zu einem ausgedehnten Frühstück ein, bevor mit den **Burning Witches**, einer Frauenformation aus der Schweiz, die im sexy Outfit klassischen Heavy Metal spielen, der Konzerttag beginnt. + +Danach **Grand Magus** auf der _Maximum Metal Stage_ im Zirkuszelt, das wir jedoch nach einer halben Stunde wieder verlassen, um wieder in die _Riffalm_ zu gehen. Dort wollen wir **Mister Misery**, eine junge Band aus Stockholm sehen, die in markantem, prächtigen Gothic-Undead Outfit auftritt. + +![Mister Misery](static/img/paradise2019misery.jpg#illustration) + +**Mister Misery** machen uns Spaß, die Musik ist einzigartig, modern und abwechslungsreich (mal verspielt, mal „brettig“) und die Show etwas fürs Auge. Die Posen der Musiker erinnern immer wieder an Geisterbahnfiguren, deren Arme und Beine an Fäden zu hängen scheinen. Dazu die tiefschwarzen Kontaktlinsen des Gitarristen. Man kommt sich vor, wie in einem Tim Burton-Film. + +Danach haben wir erst mal Pause bis zur Autogrammstunde von **Amorphis**. Auch hier wieder schöne Gespräche mit anderen Fans, sowie dem älteren Herren von der Security. Wir lassen uns zwei LPs unterschreiben. Gerade in der „Queen of Time“ wirken die Unterschriften mit weißem Edding auf die Portraits geschrieben richtig gut. + +Von **Sacred Reich** hören wir leider nur den ersten Song, da sich das Konzert überschneidet und wir weiter wollen, schade – das neue Album gefällt mir nämlich ziemlich gut, aber … + +![Amorphis](static/img/paradise2019amorphis.jpg#illustration) + +…ich muss zu **Amorphis** , die einladen, uns in ihren kraftvollen Songs und wunderschönen Melodien zu verlieren. Diese betörende Mischung aus warmen Growls und Klargesang von _Tomi Joutsen_ gibt (oder gab) es m. Mn. nach nur noch bei _Mikael Åkerfeld_, **Opeth**. +Ein Traum, wir sind umgeben von lauter glücklichen Metalheads. Die Band spielt einen guten Mix aus Klassikern und neuen Stücken. Das Publikum ist vertieft in die Musik, Handies bleiben weitgehend in der Tasche. + +Auf dem Rückweg noch ein kurzer Blick zu **Destruction**, die das letzte Konzert des Abends auf der mittleren Bühne, dem _Baltic Ballroom_ geben. Da wir auch den Samstags-Headliner, **Powerwolf** aktiv vermeiden, legen wir einen kurzen Abstecher zum Apartment ein (zum Bier holen) und stürzen uns dann lieber in die Aftershow-Party. Die DJs des _Ballroom_, Hamburg, geben einen bekannten Metal-Kracher nach dem anderen und man kann noch mal so richtig abmoshen. + +## Fazit +Schön war’s. Das Metal Hammer Paradise ist sehr familiär, ich schätze mal ca. 4000 Leute, sodass man ständig denkt: „Hey, den hab’ ich doch schon mal gesehen“. Man kommt schnell ins Gespräch und trifft immer wieder alte Bekannte. Apropos alt … es kommt eher die ältere Generation zu diesem Festival - was wohl auch an dem Komfort liegt, den die dortigen Unterkünfte bieten. diff --git a/pages/wallesau2019.md b/pages/wallesau2019.md new file mode 100644 index 0000000..63ef7ae --- /dev/null +++ b/pages/wallesau2019.md @@ -0,0 +1,31 @@ +title: Wallesau ist Blau +date: 31.08.2019 +author: Markus +description: 'Der Siffi ist schuld… Nein, nicht schuld — wir sollten ihm eher dankbar sein. Durch seinen Post im Mitgliederforum und sein einladendes FAQ Video hat er in uns spontan die Lust geweckt, am Samstag zum Wallesau ist Blau, einem kleinen, feinen und sehr familiären Festival, nach Wallesau (bei Roth) zu fahren. Für uns Mittelfranken sowieso quasi vor der Haustür.' + +Der Siffi ist schuld… Nein, nicht schuld — wir sollten ihm eher dankbar sein. Durch seinen Post im Mitgliederforum und sein einladendes [FAQ Video](https://youtu.be/-p9CCLs8_Zo) hat er in uns spontan die Lust geweckt, am Samstag zum _[Wallesau ist Blau Festival](https://wallesau-ist-blau.de)_, einem kleinen, feinen und sehr familiären Festival, nach Wallesau (bei Roth) zu fahren. Für uns Mittelfranken sowieso quasi vor der Haustür. + +Wir kommen gegen Mittag an und haben noch die Gelegenheit, die **Backstreet Oiz** zum _Knüppelfrühstück_ (Weisswurst, Weissbier, Knüppelband) auf der Bühne zu erleben. Diese spielen einen herzerfrischenden Oi-Punk, bezeichnen sich selbst als „Mittelmaß“, was völlig untertrieben ist. Zudem treffen wir dann auch gleich die Pat, Tom und Manuel, quasi ein kleines FDGL-Treffen vor Ort. + +Das _Wallesau_ bietet einen Mix aus Rock, Metal, Ska und Punk, legte den Schwerpunkt in diesem Jahr (zumindest am Samstag) aber vor allem Metalcore bzw. New York Hardcore vertreten durch die legendären **Pro-Pain** als Headliner. + +Aber zunächst gibt’s bei Pat und Tom im Camp erstmal gemütliches Biersammensein, das wir dort an schattigem Plätzchen sehr geniessen. Lisa und Chris gesellen sich dazu. Ein weiterer Genuss wird uns dann vom Nachbarn beschert, der aus Totentrompeten ein würziges Pilz-Rührei gemacht hat, dass er uns nun anbietet. Tatsächlich sehr lecker und bekömmlich. Jedenfalls bleiben Vergiftungserscheinungen und Halluzinationen aus… + +Zur zweiten Band, **The Otter’s Stone** begeben wir uns ins Infield. Schattige Plätze sind noch rar und auf der Bühne muss es noch heisser sein. Jedenfalls macht der Röhren-Amp des Gitarristen aufgrund der Hitze die Grätsche, so dass Otter’s Stone leider mehrmals unterbrechen müssen bzw. Songs nur zur Hälfte spielen. Das ist zwar frustrierend für die Band, das Publikum steht jedoch zur Band und baut diese durch Zwischenrufe auf, schließlich macht der Alternative-Stoner-Rock echt Laune. + +Danach stehen **Phallax** aus dem Schwabenländle auf der Bühne. Geiler Sound, der eigentlich gar nicht nach Powermetal klingt (so die Ankündigung auf der Wallesau-Homepage), aber dafür umso mehr Spaß macht, weil härter, rhythmischer und mit viel „Gitarrentier“ (wegen Haaren und Bart…). Noch lustiger ist aber der Sänger, der das Schwäbische geradezu zelebriert und zwischen den Songs alle so ultraschnell schwäbisch babbelnd unterhält, während er unablässig CDs in die Menge feuert (des Zeug muss weg…). + +![Arise from the Fallen](static/img/wallesau2019arise.jpg#illustration "Arise from the Fallen") + +**Knockout Concept** und danach **Arise From the Fallen** stimmen die Crowd nun auf den Headliner ein. Es wird corig und ausserdem endlich dunkel. Die Sonne geht unter und die Pits bilden sich. + +![Pro-Pain aus NYC sind Headliner bei 2019er Wallesau](static/img/wallesau2019propain.jpg#illustration "Pro-Pain aus NYC") + +Bei **Pro-Pain** geht es dann endgültig ab, als diese ihren Hardcore unerbittlich in die Crowd ballern. Ohne Pause gibt es knapp eineinhalb Stunden voll auf die Fresse, was im Pit und drumherum ordentlich gefeiert wird. Die Feuertonnen, die der Veranstalter aufgestellt hat, geben etwas Bronx-Atmosphäre und die New Yorker, die ja bereits seit 1992 aktiv sind, heizen mit ihrem brachialen Groove mächtig ein. Sehr sympathisch auch die Ansagen von Gary Meskil „Wallesau ist blaaaauuuu“, der die Menge daran erinnert, wie wichtig idealistische Veranstalter für die Festivalkultur sind und sich zusammen mit allen Fans für das geile Fest bedankt, dass die Musikinitiative Wallesau e.V. hier in den Wald gezaubert hat. + +![Heldengedenken in Wallesau](static/img/wallesau2019helden.jpg#illustration "Heldengedenken") + +Randnotiz: Der „Heldenfriedhof“, der neben der Bühne aufgebaut ist, lädt zum Verweilen, Sinnieren und Nachdenken über großartige Musiker ein und zeigt mit welcher Hingabe und Liebe zur Musik an sich auch das Wallesau organisiert wird. + +Wir sagen Danke und kommen wieder! + diff --git a/pages/zeltspektakel2019.md b/pages/zeltspektakel2019.md new file mode 100644 index 0000000..ac615a5 --- /dev/null +++ b/pages/zeltspektakel2019.md @@ -0,0 +1,39 @@ +title: Dream Theater beim Zeltspektakel Winterbach +date: 21.07.2019 +author: Markus +description: 'In Winterbach bei Stuttgart findet alle zwei Jahre eine besondere musikalische Veranstaltung statt: das "Zeltspektakel". Auf dem Freigelände einer Firma baut ein örtlicher Verein, der sich der Kulturförderung verschrieben hat, ein Zirkuszelt nebst Biergarten auf und lässt darin eine Woche lang jeden Abend die unterschiedlichsten Künstler aufspielen.' + + +In Winterbach bei Stuttgart findet alle zwei Jahre eine besondere musikalische Veranstaltung statt: das [Zeltspektakel](https://zeltspektakel.com "Zeltspektakel Winterbach"). Auf dem Freigelände einer Firma baut ein örtlicher Verein, der sich der Kulturförderung verschrieben hat, ein Zirkuszelt nebst Biergarten auf und lässt darin eine Woche lang jeden Abend die unterschiedlichsten Künstler aufspielen. Das ganze komplett ehrenamtlich mit über 500 Helfern organisiert und durch lokale Sponsoren unterstützt - meine Hochachtung vor soviel Engagement! + +Was hat uns nun bewogen, die fast 200 km ins Schwäbische auf uns zu nehmen? LaBrassBanda, Jan Delay oder gar Dieter Thomas Kuhn (\*hüstel\*) locken nun wirklich keinen Metalhead in dieses Zelt. + +!["Lineup" des Zeltspektakel 2019](static/img/zeltspektakel2019lineup.jpg#illustration "Lineup") + +Zum Glück waren am Sonntag Abend aber **Dream Theater** im Rahmen ihrer _“Distance Over Time“-Tour _zu Gast. Die Herren aus New York haben ja zu Beginn des Jahres das gleichnamige Album abgeliefert, das endlich wieder etwas kerniger daherkommt und damit an alte Größe anknüpft und zudem einige Songs enthält, die unbedingt life erlebt werden wollen. + +Wir fahren zeitig los und kommen am späten Mittag in Winterbach an. Der Biergarten um das Zelt hat bereits geöffnet und eine Coverband spielt. Es ist sehr sonnig und das Publikum, in erster Linie noch Menschen aus dem Ort, Familien, Omas und Opas, sammeln sich unter den Sonnenschirmen, trinken Limo oder Bier und essen eine Kleinigkeit von den vielseitigen Essensständen, die für jeden Geschmack etwas anbieten. Schwarze T-Shirts? Noch sehr überschaubar… Wir setzen uns zu netten älteren Damen und Herren (auch in den Schatten) und testen das erste Bier. Immerhin ist noch ein (!) weiterer Kuttenträger anwesend. + +Aber es ist ja erst 14:30 Uhr und Einlass ist um Sieben. Genug Zeit also. Wir sichten ein Pärchen, beide komplett in schwarz, das sich suchend nach einem Platz umsieht. Wir haben noch zwei Schattenplätze frei, winken, und sie setzen sich zu uns. Es fängt an, lustig zu werden. So langsam wird unser Tisch zum Anker für alle neu ankommenden Metalheads und wir haben tolle Gespräche und mächtig Spaß (Grüße gehen hiermit an Brigitte, Gerald, Sam und Olli). Das Bier ist günstig und schmeckt. Da es schnell warm wird, muss es auch schnell getrunken werden. Die Zeit vergeht jedenfalls wie im Flug und bald ist Einlass. + +Als Support stehen **[Ghost Iris](https://ghostiris.bandcamp.com)** auf dem Plan. Gut zugänglicher Metalcore aus Dänemark. Die Jungs promoten ihr neues Album _“Apple Of Discord“_ und heizen ganz gut ein. Mit viel Energie und Humor spielen sie einen klasse Support, trotz schwierigem Publikum, das neben den Metalheads aus arroganten Prognasen (mit Rush T-Shirt, die zwar in der ersten Reihe stehen, der Band aber demonstrativ den Rücken zukehren), Dauerfilmenden „Mein Erstes Konzert“-Besuchern und vielen „Normalos“ aus dem Ort besteht. + +![Ghost Iris: Metalcore aus Dänemark](static/img/zeltspektakel2019ghostiris.jpg#illustration "Ghost Iris") + +Ghost Iris nehmen’s mit Humor: „Thank you for not running in a circle pit. Thank you for not doing Wall of Death.“ und belohnen diejenigen, die gut abgehen mit Gratis-Shirts, die sie sehr zielgenau ins Publikum werfen. + +In der Umbaupause läuft elektronische Musik, ich höre immer wieder Remixe alter Kraftwerk-Songs aus den 80ern heraus. Seltsam - passt aber irgendwie ganz gut zum Cover der _Distance Over Time_-LP. Dort ist eine blankpolierte, Kunststoff-Roboterhand abgebildet, die einen menschlichen Schädel hält. + +Dream Theater spielen wir immer technisch auf höchstem Niveau, Petrucci und Mangini grinsen um die Wette, Myung - versteckt hinter einem Vorhang aus Haaren - scheint mit seinem Bass verwachsen zu sein und Rudess kreiselt an seinem beweglichen Keyboardständer und spielt mal links, mal rechts, mal schräg. + +![Dream Theater beim Zeltspektakel Winterbach](static/img/zeltspektakel2019dt.jpg#illustration "Dream Theater") + +Eröffnet wird mit _“Untethered Angel“_, danach _“A Nightmare to Remember“_und _“Fall Into The Light“_. James LaBrie lobt in einer Ansage die deutschen Fans, betont wie gerne DT nach Deutschland kommen und bewirbt gleichzeitig die für 2020 geplante Tour. +Weitere Highlights des Abends sind vom neuen Album_“Barstool Warrior“_ und _“Pale Blue Dot“_ sowie das geniale _“Dance Of Eternity“_ vom _„Metropolis Pt. II, Scenes from a Memory“_-Album. +Ich hätte mich auch über _“Paralyzed”_ gefreut, das keinen Platz in der Setlist mehr gefunden hat. Dennoch — insgesamt ein tolles Set, das nach 90 Minuten leider viel zu schnell vorbei ist. + +![Die beiden Johns beim Doppelsolo](static/img/zeltspektakel2019soli.jpg#illustration "Solo") + +Im Nachgang kommen wir noch mit Leuten vom Verein ins Gespräch und erfahren, dass leider nur ca. 2200 Tickets (von 4000 möglichen) verkauft wurden und Dream Theater zudem noch die teuerste Band des diesjährigen Billings war. Bleibt nur zu hoffen, dass damit das Experiment einer „Heavy-Nummer“ beim Zeltspektakel nicht schon wieder gestorben ist. + +Ich bin begeistert davon, was in Winterbach auf die Beine gestellt wird. Der Verein veranstaltet das Zeltspektakel nun seit 1995 im Zweijahrestakt. Dann findet eine Woche lang jeden Abend ein Konzert statt. Die ehrenamtlichen Helfer an den Kassen, Getränkeständen, Ordner, Stagehands, Catering, etc. nehmen sich für Aufbau, Durchführung, Abbau Urlaub und arbeiten in ihrer Freizeit, damit wir Spass haben können. Daher nochmal ein riesengroßes Dankeschön an die Veranstalter und alle Helfer! \ No newline at end of file diff --git a/static/img/paradise2019amorphis.jpg b/static/img/paradise2019amorphis.jpg new file mode 100644 index 0000000..328ea82 Binary files /dev/null and b/static/img/paradise2019amorphis.jpg differ diff --git a/static/img/paradise2019demon.jpg b/static/img/paradise2019demon.jpg new file mode 100644 index 0000000..e767bfb Binary files /dev/null and b/static/img/paradise2019demon.jpg differ diff --git a/static/img/paradise2019khemmis.jpg b/static/img/paradise2019khemmis.jpg new file mode 100644 index 0000000..1c681c4 Binary files /dev/null and b/static/img/paradise2019khemmis.jpg differ diff --git a/static/img/paradise2019misery.jpg b/static/img/paradise2019misery.jpg new file mode 100644 index 0000000..867fe43 Binary files /dev/null and b/static/img/paradise2019misery.jpg differ diff --git a/static/img/paradise2019motorowl.jpg b/static/img/paradise2019motorowl.jpg new file mode 100644 index 0000000..d31697c Binary files /dev/null and b/static/img/paradise2019motorowl.jpg differ diff --git a/static/img/paradise2019welcome.jpg b/static/img/paradise2019welcome.jpg new file mode 100644 index 0000000..8944198 Binary files /dev/null and b/static/img/paradise2019welcome.jpg differ diff --git a/static/img/wallesau2019arise.jpg b/static/img/wallesau2019arise.jpg new file mode 100644 index 0000000..690c01e Binary files /dev/null and b/static/img/wallesau2019arise.jpg differ diff --git a/static/img/wallesau2019helden.jpg b/static/img/wallesau2019helden.jpg new file mode 100644 index 0000000..bd33979 Binary files /dev/null and b/static/img/wallesau2019helden.jpg differ diff --git a/static/img/wallesau2019propain.jpg b/static/img/wallesau2019propain.jpg new file mode 100644 index 0000000..f432c17 Binary files /dev/null and b/static/img/wallesau2019propain.jpg differ diff --git a/static/img/zeltspektakel2019dt.jpg b/static/img/zeltspektakel2019dt.jpg new file mode 100644 index 0000000..f1d91cd Binary files /dev/null and b/static/img/zeltspektakel2019dt.jpg differ diff --git a/static/img/zeltspektakel2019ghostiris.jpg b/static/img/zeltspektakel2019ghostiris.jpg new file mode 100644 index 0000000..ba96a9b Binary files /dev/null and b/static/img/zeltspektakel2019ghostiris.jpg differ diff --git a/static/img/zeltspektakel2019lineup.jpg b/static/img/zeltspektakel2019lineup.jpg new file mode 100644 index 0000000..638c098 Binary files /dev/null and b/static/img/zeltspektakel2019lineup.jpg differ diff --git a/static/img/zeltspektakel2019soli.jpg b/static/img/zeltspektakel2019soli.jpg new file mode 100644 index 0000000..48bf388 Binary files /dev/null and b/static/img/zeltspektakel2019soli.jpg differ diff --git a/tests/test_static_pages.py b/tests/test_static_pages.py new file mode 100644 index 0000000..f5b59b2 --- /dev/null +++ b/tests/test_static_pages.py @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: GPL-3.0 +import app + +import os +import sys + +import pytest +import pytest_cov.embed + +def test_static_pages(): + + for f in os.listdir('templates'): + if f == "template.html" or f == "page.html": + continue + + static_file = f.split('.',1)[0] + + print("Checking presence of method: ", static_file) + try: + method = getattr(app, static_file) + assert True + except NotImplementedError: + assert False