added tests

This commit is contained in:
Benton Edmondson 2022-06-05 16:21:12 -04:00
parent 31d0da62f2
commit 4431f7820a
3 changed files with 57 additions and 4 deletions

1
tests/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
workspace

46
tests/test.py Executable file
View file

@ -0,0 +1,46 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3 python310Packages.beautifulsoup4 python310Packages.requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
from pathlib import Path
import requests, sys, subprocess, shutil, os
knock_path = Path(__file__).parent.parent.joinpath("result/bin/knock")
workspace = Path(__file__).parent.joinpath("workspace")
if workspace.exists():
shutil.rmtree(workspace)
workspace.mkdir()
html = requests \
.get("https://www.adobe.com/solutions/ebook/digital-editions/sample-ebook-library.html") \
.text
soup = BeautifulSoup(html, 'html.parser')
links = []
for a_tag in soup.find_all('a'):
if a_tag.string != "Download eBook":
continue
if not urlparse(a_tag.get("href")).path.endswith(".acsm"):
continue
links.append(a_tag.get("href"))
for i, link in enumerate(links):
i = str(i)
print("Testing URL #" + i + ":\n" + link)
file = workspace.joinpath(i + ".acsm")
r = requests.get(link)
open(file, "wb").write(r.content)
result = subprocess.run([knock_path, file])
if result.returncode != 0:
print("Failed")
sys.exit()
print("Success\n---")
print("All tests passed")