| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 50a0301 commit e88d34e
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -181,3 +181,15 @@ on your own, such as for nested API responses and ``Union`` return types. For ex | |||
| 181 | 181 | ||
| 182 | 182 | if TYPE_CHECKING: | |
| 183 | 183 | assert isinstance(license["plan"], str) | |
| 184 | + | ||
| 185 | + Custom session (Bring your own Session) | ||
| 186 | + --------------------------------------- | ||
| 187 | + | ||
| 188 | + You can use configuration files and a custom session to create | ||
| 189 | + ``gitlab.Gitlab`` objects: | ||
| 190 | + | ||
| 191 | + .. code-block:: python | ||
| 192 | + | ||
| 193 | + gl = gitlab.Gitlab.from_config('somewhere', ['/tmp/gl.cfg'], session=custom_session) | ||
| 194 | + | ||
| 195 | + | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -232,14 +232,20 @@ def api_version(self) -> str: | |||
| 232 | 232 | ||
| 233 | 233 | @classmethod | |
| 234 | 234 | def from_config( | |
| 235 | - cls, gitlab_id: Optional[str] = None, config_files: Optional[List[str]] = None | ||
| 235 | + cls, | ||
| 236 | + gitlab_id: Optional[str] = None, | ||
| 237 | + config_files: Optional[List[str]] = None, | ||
| 238 | + **kwargs: Any, | ||
| 236 | 239 | ) -> "Gitlab": | |
| 237 | 240 | """Create a Gitlab connection from configuration files. | |
| 238 | 241 | ||
| 239 | 242 | Args: | |
| 240 | 243 | gitlab_id: ID of the configuration section. | |
| 241 | 244 | config_files list[str]: List of paths to configuration files. | |
| 242 | 245 | ||
| 246 | + kwargs: | ||
| 247 | + session requests.Session: Custom requests Session | ||
| 248 | + | ||
| 243 | 249 | Returns: | |
| 244 | 250 | A Gitlab connection. | |
| 245 | 251 | ||
@@ -264,6 +270,7 @@ def from_config( | |||
| 264 | 270 | order_by=config.order_by, | |
| 265 | 271 | user_agent=config.user_agent, | |
| 266 | 272 | retry_transient_errors=config.retry_transient_errors, | |
| 273 | + **kwargs, | ||
| 267 | 274 | ) | |
| 268 | 275 | ||
| 269 | 276 | @classmethod | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,5 @@ | |||
| 1 | 1 | import pytest | |
| 2 | + import requests | ||
| 2 | 3 | ||
| 3 | 4 | import gitlab | |
| 4 | 5 | ||
@@ -23,6 +24,24 @@ def test_auth_from_config(gl, temp_dir): | |||
| 23 | 24 | assert isinstance(test_gitlab.user, gitlab.v4.objects.CurrentUser) | |
| 24 | 25 | ||
| 25 | 26 | ||
| 27 | + def test_no_custom_session(gl, temp_dir): | ||
| 28 | + """Test no custom session""" | ||
| 29 | + custom_session = requests.Session() | ||
| 30 | + test_gitlab = gitlab.Gitlab.from_config( | ||
| 31 | + config_files=[temp_dir / "python-gitlab.cfg"] | ||
| 32 | + ) | ||
| 33 | + assert test_gitlab.session != custom_session | ||
| 34 | + | ||
| 35 | + | ||
| 36 | + def test_custom_session(gl, temp_dir): | ||
| 37 | + """Test custom session""" | ||
| 38 | + custom_session = requests.Session() | ||
| 39 | + test_gitlab = gitlab.Gitlab.from_config( | ||
| 40 | + config_files=[temp_dir / "python-gitlab.cfg"], session=custom_session | ||
| 41 | + ) | ||
| 42 | + assert test_gitlab.session == custom_session | ||
| 43 | + | ||
| 44 | + | ||
| 26 | 45 | def test_broadcast_messages(gl, get_all_kwargs): | |
| 27 | 46 | msg = gl.broadcastmessages.create({"message": "this is the message"}) | |
| 28 | 47 | msg.color = "#444444" | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,7 @@ | |||
| 4 | 4 | from http.client import HTTPConnection | |
| 5 | 5 | ||
| 6 | 6 | import pytest | |
| 7 | + import requests | ||
| 7 | 8 | import responses | |
| 8 | 9 | ||
| 9 | 10 | import gitlab | |
@@ -412,3 +413,25 @@ def test_gitlab_keep_base_url(kwargs, link_header, expected_next_url, show_warni | |||
| 412 | 413 | else: | |
| 413 | 414 | obj = gl.http_list("/tests", iterator=True) | |
| 414 | 415 | assert obj._next_url == expected_next_url | |
| 416 | + | ||
| 417 | + | ||
| 418 | + def test_no_custom_session(default_config): | ||
| 419 | + """Test no custom session""" | ||
| 420 | + | ||
| 421 | + config_path = default_config | ||
| 422 | + custom_session = requests.Session() | ||
| 423 | + test_gitlab = gitlab.Gitlab.from_config("one", [config_path]) | ||
| 424 | + | ||
| 425 | + assert test_gitlab.session != custom_session | ||
| 426 | + | ||
| 427 | + | ||
| 428 | + def test_custom_session(default_config): | ||
| 429 | + """Test custom session""" | ||
| 430 | + | ||
| 431 | + config_path = default_config | ||
| 432 | + custom_session = requests.Session() | ||
| 433 | + test_gitlab = gitlab.Gitlab.from_config( | ||
| 434 | + "one", [config_path], session=custom_session | ||
| 435 | + ) | ||
| 436 | + | ||
| 437 | + assert test_gitlab.session == custom_session | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments