Leibniz-HBI / smo-wiki

Generates a Github Page from the Social Media Observatory Wiki with Bash, Python, Regexes and Jekyll.
https://smo-wiki.leibniz-hbi.de
4 stars 1 forks source link

Code an automated ping to make sure that all linked websites in the wiki are still online #17

Open JanRau opened 3 years ago

JanRau commented 3 years ago

Aufgabe: automatisch von Zeit zu Zeit die Links anpingt und schaut, ob die noch online sind

Vorgehen 1: Man könnte einen Test dafür schreiben, der bei jedem Build das testet Mit pytest und requests (oder unittest, aber pytest ist einfacher mE) Braucht nur eine test.py irgendwo und dann pytest in dem build-script hier aufrufen: https://github.com/Leibniz-HBI/smo-wiki/blob/main/build.sh Wo würde ich die test.py ablegen?: am besten in einem Ordner tests/ aber ist eigentlich egal pytest such automatisch nach allem, was nach test_*.py aussieht Dann mit requests in dem test halt für jeden Link in den Markdowns eine header-request machen und wenn irgendwo nicht 200 als Status-Code zurückkommt, Alarm schlagen

Vorgehen 2: noch einfacher wäre es fast, einfach hier nochmal mit einer Regex alle Links rauszuziehen und einfach gleich zu prüfen https://github.com/Leibniz-HBI/smo-wiki/blob/main/convert_links.py Dadurch würde es halt bisschen langsam werden das ginge wohl so in < 10 Zeilen als Bonus kann man die Links dann auch gleich mit brackets versehen, so dass sie sicher funktionieren

Das kompliziertere (Vorgehen 1) wäre auch erstmal nicht schneller aber man könnte es halt extra ausführen und nicht bei jedem build eigentlich braucht man aber auch für das kompliziertere pytest erstmal nicht Die Idee von ist nur, dass man auf Dauer halt noch mehr so Tests schreibt Also wahrscheinlich die interessantere Lösung auf Dauer. Dann führt man lokal halt nur pytest aus und das führt dann gleich ne ganze Menge an checks durch (also z.B. auch sind noch alle Bilder da) Das könnte man dann auch wie in dem anderen Repo automatisch nochmal von Github laufen lassen bei jedem push

Khandoker09 commented 3 years ago

Task: automatically ping the links from time to time and see if they are still online

Procedure 1: You could write a test for it that tests that on every build With pytest and requests (or unittest, but pytest is easier in my opinion) Just need a test.py somewhere and then call pytest in the build script here: https://github.com/Leibniz-HBI/smo-wiki/blob/main/build.sh Where would I put the test.py ?: ideally in a folder tests / but it doesn't really matter pytest automatically searches for anything that looks like test _ *. py Then with requests in the test, make a header request for each link in the Markdowns and if somewhere not 200 comes back as a status code, sound the alarm

Procedure 2: It would be even easier to simply pull out all the links again with a regex and just check them right away https://github.com/Leibniz-HBI/smo-wiki/blob/main/convert_links.py That would make it a little slow that would probably go in <10 lines As a bonus, you can also put brackets on the links so that they work safely

The more complicated (procedure 1) would not be faster at first but you could just run it extra and not with every build actually, you don't actually need pytest for the more complicated pytest either The idea of ​​is just that you write more tests like this in the long run So probably the more interesting solution in the long run. Then you just run pytest locally and that then does a lot of checks (e.g. all images are still there) As in the other repo, Github could automatically run that again with each push

Community Verified icon

FlxVctr commented 3 years ago

Maybe useful: https://github.com/jupyterlab/pytest-check-links (Just found, not tested)