Prepare macOS package and improve output handling

This commit is contained in:
2026-08-09 12:09:08 +02:00
parent eb915333f0
commit 355ea3e509
36 changed files with 211 additions and 9519 deletions
+19
View File
@@ -0,0 +1,19 @@
<!doctype html>
<html lang="de">
<head><meta property="og:title" content="Aditya Sharma"></head>
<body>
<h4>Meine Top 10</h4>
<table>
<tr><td>1</td><td>Kinderzimmer Productions</td><td>1-2-3-4</td></tr>
<tr><td>2</td><td>Samy Deluxe</td><td>Weck Mich Auf</td></tr>
<tr><td>3</td><td>Peter Fox</td><td>Alles Neu</td></tr>
<tr><td>4</td><td>Kitschkrieg ft. Trettmann, Gringo; Ufo361 &amp; Gzuz</td><td>Standard</td></tr>
<tr><td>5</td><td>Eins Zwo</td><td>Ich So, Er So</td></tr>
<tr><td>6</td><td>Cro</td><td>Easy</td></tr>
<tr><td>7</td><td>OG Keemo</td><td>Civic</td></tr>
<tr><td>8</td><td>Marteria</td><td>Endboss</td></tr>
<tr><td>9</td><td>RIN</td><td>Monica Bellucci</td></tr>
<tr><td>10</td><td>Deichkind</td><td>Limit</td></tr>
</table>
</body>
</html>
+38
View File
@@ -0,0 +1,38 @@
import unittest
from pathlib import Path
from radioeins_top100 import POINTS, derive_output_dir, parse_jury_page
class RadioeinsTop100Tests(unittest.TestCase):
def test_output_directory_is_derived_from_url_path(self):
base = "https://www.radioeins.de/musik/top_100/2026"
self.assertEqual(derive_output_dir(f"{base}/zeit/"), Path("output_zeit"))
self.assertEqual(
derive_output_dir(f"{base}/deutscher-hip-hop"),
Path("output_deutscher-hip-hop"),
)
def test_point_mapping(self):
self.assertEqual(
[POINTS[rank] for rank in range(1, 11)],
[12, 10, 8, 7, 6, 5, 4, 3, 2, 1],
)
def test_parse_existing_jury_fixture(self):
fixture = Path(__file__).parent / "fixtures" / "aditya-sharma.html"
votes = parse_jury_page(
fixture.read_text(encoding="utf-8"),
fallback_name="Fallback",
source_url="https://example.test/aditya-sharma.html",
)
self.assertEqual(len(votes), 10)
self.assertEqual(votes[0].juror, "Aditya Sharma")
self.assertEqual((votes[0].rank, votes[0].points), (1, 12))
self.assertEqual((votes[1].artist, votes[1].title), ("Samy Deluxe", "Weck Mich Auf"))
self.assertEqual((votes[-1].rank, votes[-1].points), (10, 1))
if __name__ == "__main__":
unittest.main()