From 1704406cdf09d50cc7a3b06859d2d8b9b061e123 Mon Sep 17 00:00:00 2001 From: Nathan Thomas Date: Sat, 13 Jan 2024 22:57:16 -0800 Subject: [PATCH] Update tests --- tests/test_qobuz_client.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/tests/test_qobuz_client.py b/tests/test_qobuz_client.py index 30c6d95..99be66a 100644 --- a/tests/test_qobuz_client.py +++ b/tests/test_qobuz_client.py @@ -1,3 +1,4 @@ +import hashlib import logging import os @@ -12,9 +13,22 @@ from streamrip.exceptions import MissingCredentialsError logger = logging.getLogger("streamrip") -@pytest.fixture() -def client(qobuz_client): - return qobuz_client +@pytest.fixture(scope="session") +def qobuz_client(): + config = Config.defaults() + config.session.qobuz.email_or_userid = os.environ["QOBUZ_EMAIL"] + config.session.qobuz.password_or_token = hashlib.md5( + os.environ["QOBUZ_PASSWORD"].encode("utf-8"), + ).hexdigest() + if "QOBUZ_APP_ID" in os.environ and "QOBUZ_SECRETS" in os.environ: + config.session.qobuz.app_id = os.environ["QOBUZ_APP_ID"] + config.session.qobuz.secrets = os.environ["QOBUZ_SECRETS"].split(",") + client = QobuzClient(config) + arun(client.login()) + + yield client + + arun(client.session.close()) def test_client_raises_missing_credentials(): @@ -26,8 +40,8 @@ def test_client_raises_missing_credentials(): @pytest.mark.skipif( "QOBUZ_EMAIL" not in os.environ, reason="Qobuz credentials not found in env." ) -def test_client_get_metadata(client): - meta = arun(client.get_metadata("s9nzkwg2rh1nc", "album")) +def test_client_get_metadata(qobuz_client): + meta = arun(qobuz_client.get_metadata("s9nzkwg2rh1nc", "album")) assert meta["title"] == "I Killed Your Dog" assert len(meta["tracks"]["items"]) == 16 assert meta["maximum_bit_depth"] == 24 @@ -36,8 +50,8 @@ def test_client_get_metadata(client): @pytest.mark.skipif( "QOBUZ_EMAIL" not in os.environ, reason="Qobuz credentials not found in env." ) -def test_client_get_downloadable(client): - d = arun(client.get_downloadable("19512574", 3)) +def test_client_get_downloadable(qobuz_client): + d = arun(qobuz_client.get_downloadable("19512574", 3)) assert isinstance(d, BasicDownloadable) assert d.extension == "flac" assert isinstance(d.url, str) @@ -47,8 +61,8 @@ def test_client_get_downloadable(client): @pytest.mark.skipif( "QOBUZ_EMAIL" not in os.environ, reason="Qobuz credentials not found in env." ) -def test_client_search_limit(client): - res = client.search("album", "rumours", limit=5) +def test_client_search_limit(qobuz_client): + res = qobuz_client.search("album", "rumours", limit=5) total = 0 for r in arun(res): total += len(r["albums"]["items"]) @@ -58,9 +72,9 @@ def test_client_search_limit(client): @pytest.mark.skipif( "QOBUZ_EMAIL" not in os.environ, reason="Qobuz credentials not found in env." ) -def test_client_search_no_limit(client): +def test_client_search_no_limit(qobuz_client): # Setting no limit has become impossible because `limit: int` now - res = client.search("album", "rumours", limit=10000) + res = qobuz_client.search("album", "rumours", limit=10000) correct_total = 0 total = 0 for r in arun(res):