61 lines
2.4 KiB
Python
61 lines
2.4 KiB
Python
import importlib.util
|
|
import sys
|
|
import unittest
|
|
from unittest.mock import MagicMock
|
|
|
|
# Mock Pipecat package
|
|
sys.modules["pipecat"] = MagicMock()
|
|
sys.modules["pipecat"].__version__ = "0.0.0-test"
|
|
|
|
# Load the module directly from source
|
|
spec = importlib.util.spec_from_file_location(
|
|
"pipecat.services.google.utils", "src/pipecat/services/google/utils.py"
|
|
)
|
|
utils_module = importlib.util.module_from_spec(spec)
|
|
sys.modules["pipecat.services.google.utils"] = utils_module
|
|
spec.loader.exec_module(utils_module)
|
|
|
|
update_google_client_http_options = utils_module.update_google_client_http_options
|
|
pipecat_version = "0.0.0-test"
|
|
|
|
|
|
class TestGoogleUtils(unittest.TestCase):
|
|
def test_update_google_client_http_options_none(self):
|
|
options = update_google_client_http_options(None)
|
|
self.assertEqual(options, {"headers": {"x-goog-api-client": f"pipecat/{pipecat_version}"}})
|
|
|
|
def test_update_google_client_http_options_dict_empty(self):
|
|
options = update_google_client_http_options({})
|
|
self.assertEqual(options, {"headers": {"x-goog-api-client": f"pipecat/{pipecat_version}"}})
|
|
|
|
def test_update_google_client_http_options_dict_existing_headers(self):
|
|
initial_options = {"headers": {"Authorization": "Bearer token"}}
|
|
options = update_google_client_http_options(initial_options)
|
|
self.assertEqual(options["headers"]["Authorization"], "Bearer token")
|
|
self.assertEqual(options["headers"]["x-goog-api-client"], f"pipecat/{pipecat_version}")
|
|
|
|
def test_update_google_client_http_options_object(self):
|
|
class HttpOptions:
|
|
def __init__(self):
|
|
self.headers = None
|
|
|
|
http_options = HttpOptions()
|
|
updated_options = update_google_client_http_options(http_options)
|
|
self.assertEqual(
|
|
updated_options.headers, {"x-goog-api-client": f"pipecat/{pipecat_version}"}
|
|
)
|
|
|
|
def test_update_google_client_http_options_object_existing_headers(self):
|
|
class HttpOptions:
|
|
def __init__(self):
|
|
self.headers = {"Authorization": "Bearer token"}
|
|
|
|
http_options = HttpOptions()
|
|
updated_options = update_google_client_http_options(http_options)
|
|
self.assertEqual(updated_options.headers["Authorization"], "Bearer token")
|
|
self.assertEqual(updated_options.headers["x-goog-api-client"], f"pipecat/{pipecat_version}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|