From 2f80ecab3cc50641e2336e118830762e0a17ffd1 Mon Sep 17 00:00:00 2001 From: Seonu Jang Date: Fri, 15 Mar 2024 00:44:52 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=91=20Fix=20no=20values=20not=20making?= =?UTF-8?q?=20page=20(#8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sitemapr/core.py | 2 +- tests/test_core.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/sitemapr/core.py b/sitemapr/core.py index 271c729..63a42a5 100644 --- a/sitemapr/core.py +++ b/sitemapr/core.py @@ -117,7 +117,7 @@ def _get_param_combinations( return [{}] combinations: list[dict[str, str]] = [] - for values in product(*[param.values for param in params]): + for values in product(*[param.values for param in params if param.values]): combination = { param.name: value for param, value in zip(params, values, strict=False) } diff --git a/tests/test_core.py b/tests/test_core.py index 9458b3a..99097ea 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -26,6 +26,14 @@ def test_iter_url_works(): path="/blog/{id}", path_params=[Param(name="id", values=["1", "2", "3"])], ), + Page( + path="/blog/{id}/comments", + path_params=[Param(name="id", values=["1", "2"])], + query_params=[ + Param(name="page", values=[]), + Param(name="sort", values=["asc", "desc"]), + ], + ), ] sitemapr = SiteMapr(base_url=base_url, pages=pages) @@ -124,6 +132,30 @@ def test_iter_url_works(): changefreq=None, priority=None, ), + SiteMapUrl( + loc="https://example.com/blog/1/comments?page=asc", + lastmod=None, + changefreq=None, + priority=None, + ), + SiteMapUrl( + loc="https://example.com/blog/2/comments?page=asc", + lastmod=None, + changefreq=None, + priority=None, + ), + SiteMapUrl( + loc="https://example.com/blog/1/comments?page=desc", + lastmod=None, + changefreq=None, + priority=None, + ), + SiteMapUrl( + loc="https://example.com/blog/2/comments?page=desc", + lastmod=None, + changefreq=None, + priority=None, + ), ] assert actuals == expected