mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 12:19:06 +00:00
* llm instructions * vibe dailyco * vibe dailyco * doc update (vibe) * dont show recording ui on call * stub processor (vibe) * stub processor (vibe) self-review * stub processor (vibe) self-review * chore(main): release 0.14.0 (#670) * Add multitrack pipeline * Mixdown audio tracks * Mixdown with pyav filter graph * Trigger multitrack processing for daily recordings * apply platform from envs in priority: non-dry * Use explicit track keys for processing * Align tracks of a multitrack recording * Generate waveforms for the mixed audio * Emit multriack pipeline events * Fix multitrack pipeline track alignment * dailico docs * Enable multitrack reprocessing * modal temp files uniform names, cleanup. remove llm temporary docs * docs cleanup * dont proceed with raw recordings if any of the downloads fail * dry transcription pipelines * remove is_miltitrack * comments * explicit dailyco room name * docs * remove stub data/method * frontend daily/whereby code self-review (no-mistake) * frontend daily/whereby code self-review (no-mistakes) * frontend daily/whereby code self-review (no-mistakes) * consent cleanup for multitrack (no-mistakes) * llm fun * remove extra comments * fix tests * merge migrations * Store participant names * Get participants by meeting session id * pop back main branch migration * s3 paddington (no-mistakes) * comment * pr comments * pr comments * pr comments * platform / meeting cleanup * Use participant names in summary generation * platform assignment to meeting at controller level * pr comment * room playform properly default none * room playform properly default none * restore migration lost * streaming WIP * extract storage / use common storage / proper env vars for storage * fix mocks tests * remove fall back * streaming for multifile * cenrtal storage abstraction (no-mistakes) * remove dead code / vars * Set participant user id for authenticated users * whereby recording name parsing fix * whereby recording name parsing fix * more file stream * storage dry + tests * remove homemade boto3 streaming and use proper boto * update migration guide * webhook creation script - print uuid --------- Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com> Co-authored-by: Mathieu Virbel <mat@meltingrocks.com> Co-authored-by: Sergey Mankovsky <sergey@monadical.com>
64 lines
2.7 KiB
Python
64 lines
2.7 KiB
Python
"""Tests for URL utility functions."""
|
|
|
|
from reflector.utils.url import add_query_param
|
|
|
|
|
|
class TestAddQueryParam:
|
|
"""Test the add_query_param function."""
|
|
|
|
def test_add_param_to_url_without_query(self):
|
|
"""Should add query param with ? to URL without existing params."""
|
|
url = "https://example.com/room"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "https://example.com/room?t=token123"
|
|
|
|
def test_add_param_to_url_with_existing_query(self):
|
|
"""Should add query param with & to URL with existing params."""
|
|
url = "https://example.com/room?existing=param"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "https://example.com/room?existing=param&t=token123"
|
|
|
|
def test_add_param_to_url_with_multiple_existing_params(self):
|
|
"""Should add query param to URL with multiple existing params."""
|
|
url = "https://example.com/room?param1=value1¶m2=value2"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert (
|
|
result == "https://example.com/room?param1=value1¶m2=value2&t=token123"
|
|
)
|
|
|
|
def test_add_param_with_special_characters(self):
|
|
"""Should properly encode special characters in param value."""
|
|
url = "https://example.com/room"
|
|
result = add_query_param(url, "name", "hello world")
|
|
assert result == "https://example.com/room?name=hello+world"
|
|
|
|
def test_add_param_to_url_with_fragment(self):
|
|
"""Should preserve URL fragment when adding query param."""
|
|
url = "https://example.com/room#section"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "https://example.com/room?t=token123#section"
|
|
|
|
def test_add_param_to_url_with_query_and_fragment(self):
|
|
"""Should preserve fragment when adding param to URL with existing query."""
|
|
url = "https://example.com/room?existing=param#section"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "https://example.com/room?existing=param&t=token123#section"
|
|
|
|
def test_add_param_overwrites_existing_param(self):
|
|
"""Should overwrite existing param with same name."""
|
|
url = "https://example.com/room?t=oldtoken"
|
|
result = add_query_param(url, "t", "newtoken")
|
|
assert result == "https://example.com/room?t=newtoken"
|
|
|
|
def test_url_without_scheme(self):
|
|
"""Should handle URLs without scheme (relative URLs)."""
|
|
url = "/room/path"
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "/room/path?t=token123"
|
|
|
|
def test_empty_url(self):
|
|
"""Should handle empty URL."""
|
|
url = ""
|
|
result = add_query_param(url, "t", "token123")
|
|
assert result == "?t=token123"
|