Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite88d34e

Browse files
author
Liora Milbaum
authored
feat: allow passing kwargs to Gitlab class when instantiating withfrom_config (#2392)
1 parent50a0301 commite88d34e

File tree

4 files changed

+62
-1
lines changed

4 files changed

+62
-1
lines changed

‎docs/api-usage-advanced.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,15 @@ on your own, such as for nested API responses and ``Union`` return types. For ex
181181
182182
ifTYPE_CHECKING:
183183
assertisinstance(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+

‎gitlab/client.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,14 +232,20 @@ def api_version(self) -> str:
232232

233233
@classmethod
234234
deffrom_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,
236239
)->"Gitlab":
237240
"""Create a Gitlab connection from configuration files.
238241
239242
Args:
240243
gitlab_id: ID of the configuration section.
241244
config_files list[str]: List of paths to configuration files.
242245
246+
kwargs:
247+
session requests.Session: Custom requests Session
248+
243249
Returns:
244250
A Gitlab connection.
245251
@@ -264,6 +270,7 @@ def from_config(
264270
order_by=config.order_by,
265271
user_agent=config.user_agent,
266272
retry_transient_errors=config.retry_transient_errors,
273+
**kwargs,
267274
)
268275

269276
@classmethod

‎tests/functional/api/test_gitlab.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
importpytest
2+
importrequests
23

34
importgitlab
45

@@ -23,6 +24,24 @@ def test_auth_from_config(gl, temp_dir):
2324
assertisinstance(test_gitlab.user,gitlab.v4.objects.CurrentUser)
2425

2526

27+
deftest_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+
asserttest_gitlab.session!=custom_session
34+
35+
36+
deftest_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+
asserttest_gitlab.session==custom_session
43+
44+
2645
deftest_broadcast_messages(gl,get_all_kwargs):
2746
msg=gl.broadcastmessages.create({"message":"this is the message"})
2847
msg.color="#444444"

‎tests/unit/test_gitlab.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
fromhttp.clientimportHTTPConnection
55

66
importpytest
7+
importrequests
78
importresponses
89

910
importgitlab
@@ -412,3 +413,25 @@ def test_gitlab_keep_base_url(kwargs, link_header, expected_next_url, show_warni
412413
else:
413414
obj=gl.http_list("/tests",iterator=True)
414415
assertobj._next_url==expected_next_url
416+
417+
418+
deftest_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+
asserttest_gitlab.session!=custom_session
426+
427+
428+
deftest_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+
asserttest_gitlab.session==custom_session

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp