Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nathom committed Jan 14, 2024
1 parent fa65929 commit 1704406
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions tests/test_qobuz_client.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import hashlib
import logging
import os

Expand All @@ -12,9 +13,22 @@
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():
Expand All @@ -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
Expand All @@ -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)
Expand All @@ -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"])
Expand All @@ -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):
Expand Down

0 comments on commit 1704406

Please sign in to comment.