streamrip/tests/tests.py
2021-07-30 11:39:51 -07:00

119 lines
4.2 KiB
Python

import os
import shutil
import subprocess
from click import echo, secho
test_urls = {
"qobuz": "https://www.qobuz.com/us-en/album/blackest-blue-morcheeba/h4nngz0wgqesc",
"tidal": "https://tidal.com/browse/album/183284294",
"deezer": "https://www.deezer.com/us/album/225281222",
"soundcloud": "https://soundcloud.com/dj-khaled/sets/khaled-khaled",
}
def reset_config():
global cfg_path
global new_cfg_path
p = subprocess.Popen(
["rip", "config", "-p"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
out, err = p.communicate()
cfg_path = out.decode("utf-8").strip()
# cfg_path = re.search(
# r"(/[\w\d\s]+(?:/[\w\d \.]+)*)", out.decode("utf-8")
# ).group(1)
new_cfg_path = f"{cfg_path}.tmp"
shutil.copy(cfg_path, new_cfg_path)
subprocess.Popen(["rip", "config", "--update"])
def restore_config():
global cfg_path
global new_cfg_path
os.remove(cfg_path)
shutil.move(new_cfg_path, cfg_path)
def download_albums():
rip_url = ["rip", "-nd", "-u"]
procs = []
for url in test_urls.values():
procs.append(subprocess.run([*rip_url, url]))
for p in procs:
echo(p)
def check_album_dl_success(folder, correct):
if set(os.listdir(folder)) != set(correct):
secho(f"Check for {folder} failed!", fg="red")
else:
secho(f"Check for {folder} succeeded!", fg="green")
def main():
reset_config()
download_albums()
check_album_dl_success(
"/Users/nathan/StreamripDownloads/Morcheeba - Blackest Blue (2021) [FLAC] [24B-44.1kHz]",
{
"04. Morcheeba - Say It's Over.flac",
"01. Morcheeba - Cut My Heart Out.flac",
"02. Morcheeba - Killed Our Love.flac",
"07. Morcheeba - Namaste.flac",
"03. Morcheeba - Sounds Of Blue.flac",
"10. Morcheeba - The Edge Of The World.flac",
"08. Morcheeba - The Moon.flac",
"09. Morcheeba - Falling Skies.flac",
"cover.jpg",
"05. Morcheeba - Sulphur Soul.flac",
"06. Morcheeba - Oh Oh Yeah.flac",
},
)
check_album_dl_success(
"/Users/nathan/StreamripDownloads/KHALED KHALED",
{
"05. DJ Khaled - I DID IT (feat. Post Malone, Megan Thee Stallion, Lil Baby & DaBaby).mp3",
"09. DJ Khaled - THIS IS MY YEAR (feat. A Boogie Wit Da Hoodie, Big Sean, Rick Ross & Puff Daddy).mp3",
"01. DJ Khaled - THANKFUL (feat. Lil Wayne & Jeremih).mp3",
"12. DJ Khaled - I CAN HAVE IT ALL (feat. Bryson Tiller, H.E.R. & Meek Mill).mp3",
"02. DJ Khaled - EVERY CHANCE I GET (feat. Lil Baby & Lil Durk).mp3",
"08. DJ Khaled - POPSTAR (feat. Drake).mp3",
"13. DJ Khaled - GREECE (feat. Drake).mp3",
"04. DJ Khaled - WE GOING CRAZY (feat. H.E.R. & Migos).mp3",
"10. DJ Khaled - SORRY NOT SORRY (Harmonies by The Hive) [feat. Nas, JAY-Z & James Fauntleroy].mp3",
"03. DJ Khaled - BIG PAPER (feat. Cardi B).mp3",
"14. DJ Khaled - WHERE YOU COME FROM (feat. Buju Banton, Capleton & Bounty Killer).mp3",
"07. DJ Khaled - BODY IN MOTION (feat. Bryson Tiller, Lil Baby & Roddy Ricch).mp3",
"06. DJ Khaled - LET IT GO (feat. Justin Bieber & 21 Savage).mp3",
"11. DJ Khaled - JUST BE (feat. Justin Timberlake).mp3",
},
)
check_album_dl_success(
"/Users/nathan/StreamripDownloads/Paul Weller - Fat Pop (2021) [FLAC] [24B-44.1kHz]",
{
"01. Paul Weller - Cosmic Fringes.flac",
"11. Paul Weller - In Better Times.flac",
"05. Paul Weller - Glad Times.flac",
"08. Paul Weller - That Pleasure.flac",
"04. Paul Weller - Shades Of Blue.flac",
"12. Paul Weller - Still Glides The Stream.flac",
"03. Paul Weller - Fat Pop.flac",
"cover.jpg",
"02. Paul Weller - True.flac",
"09. Paul Weller - Failed.flac",
"06. Paul Weller - Cobweb Connections.flac",
"10. Paul Weller - Moving Canvas.flac",
"07. Paul Weller - Testify.flac",
},
)
restore_config()
if __name__ == "__main__":
main()