From: 
Subject: Debian changes

The Debian packaging of python-radios is maintained in git, using a workflow
similar to the one described in dgit-maint-merge(7).
The Debian delta is represented by this one combined patch; there isn't a
patch queue that can be represented as a quilt series.

A detailed breakdown of the changes is available from their canonical
representation -- git commits in the packaging repository.
For example, to see the changes made by the Debian maintainer in the first
upload of upstream version 1.2.3, you could use:

    % git clone https://git.dgit.debian.org/python-radios
    % cd python-radios
    % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian'

(If you have dgit, use `dgit clone python-radios`, rather than plain `git clone`.)

We don't use debian/source/options single-debian-patch because it has bugs.
Therefore, NMUs etc. may nevertheless have made additional patches.

---

diff --git a/tests/conftest.py b/tests/conftest.py
index b78b141..ec88da8 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,6 +1,7 @@
 """Common fixtures and helpers for Radio Browser API tests."""
 
 from collections.abc import AsyncGenerator, Generator
+from importlib.metadata import PackageNotFoundError, version
 from inspect import signature
 from pathlib import Path
 from types import SimpleNamespace
@@ -21,6 +22,26 @@ from pycares import (
 
 from radios import RadioBrowser
 
+
+def _syrupy_major() -> int:
+    """Return the major version of the installed Syrupy, 0 if it is missing."""
+    try:
+        return int(version("syrupy").split(".", 1)[0])
+    except PackageNotFoundError:
+        return 0
+
+
+if _syrupy_major() < 6:
+    # Syrupy before 6 serialized dataclasses with a plain repr, so the
+    # committed snapshots, written by Syrupy 6, would never match.  Debian
+    # ships such a release, so skip the snapshot assertions instead of
+    # regenerating files that would then differ from upstream.
+    @pytest.fixture
+    def snapshot() -> None:
+        """Skip snapshot assertions on Syrupy releases with a different format."""
+        pytest.skip("Syrupy below 6 serializes snapshots differently")
+
+
 AIOHTTP_REQUIRES_STREAM_WRITER = (
     "stream_writer" in signature(aiohttp.ClientResponse.__init__).parameters
 )
diff --git a/tests/test_search.py b/tests/test_search.py
index 91c1f67..9c5f5c7 100644
--- a/tests/test_search.py
+++ b/tests/test_search.py
@@ -2,6 +2,7 @@
 
 import re
 from typing import Any
+from urllib.parse import unquote
 
 import pytest
 from aioresponses import aioresponses
@@ -115,7 +116,7 @@ async def test_search_more_filters(
         has_extended_info=True,
     )
 
-    assert query["tagList"] == "jazz,blues"
+    assert unquote(query["tagList"]) == "jazz,blues"
     assert query["codec"] == "AAC"
     assert query["is_https"] == "true"
     assert query["has_geo_info"] == "false"
@@ -175,7 +176,7 @@ async def test_search_lowercases_tags_and_languages(
 
     assert query["language"] == "dutch"
     assert query["tag"] == "pop"
-    assert query["tagList"] == "jazz,blues"
+    assert unquote(query["tagList"]) == "jazz,blues"
     assert query["name"] == "Radio 538"
     assert query["state"] == "Utrecht"
 
diff --git a/tests/test_stations.py b/tests/test_stations.py
index 15ad73c..e70a9f6 100644
--- a/tests/test_stations.py
+++ b/tests/test_stations.py
@@ -1,6 +1,7 @@
 """Tests for retrieving stations with the Radio Browser API client."""
 
 import re
+from urllib.parse import unquote
 
 import pytest
 from aioresponses import aioresponses
@@ -195,7 +196,9 @@ async def test_stations_by_url(responses: aioresponses, radios: RadioBrowser) ->
         "f592bcd7-c052-11e9-8502-52543be04c81",
     ]
     ((_, url),) = responses.requests
-    assert url.query == {"url": stream_url}
+    assert {key: unquote(value) for key, value in url.query.items()} == {
+        "url": stream_url
+    }
 
 
 async def test_station_not_found(responses: aioresponses, radios: RadioBrowser) -> None:
