This repository has been archived by the owner on Nov 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtest_core.py
108 lines (82 loc) · 3.74 KB
/
test_core.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import pathlib
import requests
from dailyblink.core import (
save_media,
BlinkistScraper,
_create_markdown_text,
_determine_file_extension,
)
from dailyblink.media import save_text
blinkist_scraper = BlinkistScraper()
def test_download_daily_blinks():
blinkist_scraper.download_daily_blinks(["de", "en"], pathlib.Path(".") / "blinks")
def test_get_daily_blink_url():
en_url = blinkist_scraper._get_daily_blink_info(language="en")["url"]
assert "https://www.blinkist.com/en/nc/daily/reader/" in en_url
de_url = blinkist_scraper._get_daily_blink_info(language="de")["url"]
assert "https://www.blinkist.com/de/nc/daily/reader/" in de_url
def test_get_book_id():
blink_url = blinkist_scraper._get_daily_blink_info()["url"]
book = blinkist_scraper._request_blinkist_book_text(blink_url=blink_url)
book_id = book["book-id"]
assert len(book_id) == 24, "ID is 24 characters"
def test_get_chapter_ids():
blink_url = blinkist_scraper._get_daily_blink_info()["url"]
book = blinkist_scraper._request_blinkist_book_text(blink_url=blink_url)
chapter_ids = book["chapter-ids"]
assert len(chapter_ids) > 1, "At least one chapter"
assert len(chapter_ids[0]) == 24, "ID is 24 characters"
def test_request_audio():
blink_url = blinkist_scraper._get_daily_blink_info(language="de")["url"]
blink = blinkist_scraper._request_blinkist_book_text(blink_url=blink_url)
book_id = blink["book-id"]
chapter_ids = blink["chapter-ids"]
try:
track_00 = blinkist_scraper._request_audio(book_id, chapter_ids[0]).content
track_01 = blinkist_scraper._request_audio(book_id, chapter_ids[1]).content
track_02 = blinkist_scraper._request_audio(book_id, chapter_ids[2]).content
save_media(track_00, file_path="test_output/track_00.m4a")
save_media(track_01, file_path="test_output/track_01.m4a")
save_media(track_02, file_path="test_output/track_02.m4a")
except ValueError as e:
print(e)
def test_request_meta_data():
meta_data = blinkist_scraper._get_daily_blink_info(language="de")
assert "title" in meta_data
assert "author" in meta_data
assert "synopsis" in meta_data
assert "for_who" in meta_data
assert "about_author" in meta_data
def test_request_book_text():
blink_url = blinkist_scraper._get_daily_blink_info(language="de")["url"]
chapters = blinkist_scraper._request_blinkist_book_text(blink_url)["chapters"]
assert len(chapters) > 1, "At least one chapter"
def test_save_book_text():
blink_info = blinkist_scraper._get_daily_blink_info(language="de")
blink_url = blink_info["url"]
chapters = blinkist_scraper._request_blinkist_book_text(blink_url)["chapters"]
markdown_text = _create_markdown_text(
blink_info, chapters, "test_output/cover.jpeg"
)
save_text(markdown_text, file_path="test_output/daily_blink.md")
def test_determine_file_extension():
headers = {
"user-agent": (
"Mozilla/5.0 (X11; Linux x86_64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/98.0.4758.80 Safari/537.36"
),
}
jpg_url = (
"https://upload.wikimedia.org/wikipedia/commons/3/3f/JPEG_example_flower.jpg"
)
jpg_response = requests.get(jpg_url, headers=headers)
assert _determine_file_extension(jpg_response) == "jpeg"
png_url = "https://upload.wikimedia.org/wikipedia/de/b/bb/Png-logo.png"
png_response = requests.get(png_url, headers=headers)
assert _determine_file_extension(png_response) == "png"
cover_url = (
"https://images.blinkist.io/images/books/5e48b5726cee070006209356/1_1/470.jpg"
)
cover_response = requests.get(cover_url, headers=headers)
assert _determine_file_extension(cover_response) == "png"