Compare commits
3 Commits
893243ba39
...
ca13a2e194
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca13a2e194 | ||
|
|
3016d1287c | ||
|
|
bb7eebf502 |
@@ -14,7 +14,7 @@ import os
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
from datetime import datetime, timezone, timedelta
|
||||
from typing import Any, Callable, TypedDict
|
||||
from urllib.parse import urlencode
|
||||
from urllib.parse import urlencode, quote
|
||||
from urllib.request import urlopen, Request
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ def fetch_page(
|
||||
) -> dict[str, Any] | None:
|
||||
base = "https://gamma-api.polymarket.com/public-search"
|
||||
url = (
|
||||
f"{base}?q={q.replace(' ', '%20')}&limit={PAGE_SIZE}&page={page}"
|
||||
f"{base}?q={quote(q, safe='')}&limit={PAGE_SIZE}&page={page}"
|
||||
f"&search_profiles=false&search_tags=false"
|
||||
f"&keep_closed_markets=0&events_status=active&cache=false"
|
||||
)
|
||||
|
||||
@@ -1969,5 +1969,25 @@ class TestTimezoneParsing(unittest.TestCase):
|
||||
self.assertEqual(tz, timezone(timedelta(hours=7)))
|
||||
|
||||
|
||||
class TestUrlEncoding(unittest.TestCase):
|
||||
"""Tests for proper URL encoding of search queries."""
|
||||
|
||||
def test_quote_encodes_special_chars(self):
|
||||
"""quote() should properly encode all special characters."""
|
||||
from urllib.parse import quote
|
||||
|
||||
test_cases = [
|
||||
("Team A", "Team%20A"),
|
||||
("Team A & Team B", "Team%20A%20%26%20Team%20B"),
|
||||
("a=b", "a%3Db"),
|
||||
("100%", "100%25"),
|
||||
("C++", "C%2B%2B"),
|
||||
("Team (A)", "Team%20%28A%29"),
|
||||
("Team#1", "Team%231"),
|
||||
]
|
||||
for input_str, expected in test_cases:
|
||||
self.assertEqual(quote(input_str, safe=""), expected)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user