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

Commitf1ebb88

Browse files
committed
refactor: split unit tests by GitLab API resources
1 parent3d6a723 commitf1ebb88

34 files changed

+2654
-2447
lines changed

‎gitlab/__init__.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,6 @@
4242
)
4343

4444

45-
def_sanitize(value):
46-
ifisinstance(value,dict):
47-
returndict((k,_sanitize(v))fork,vinvalue.items())
48-
ifisinstance(value,str):
49-
returnvalue.replace("/","%2F")
50-
returnvalue
51-
52-
5345
classGitlab(object):
5446
"""Represents a GitLab server connection.
5547
@@ -319,7 +311,7 @@ def set_license(self, license, **kwargs):
319311
def_construct_url(self,id_,obj,parameters,action=None):
320312
if"next_url"inparameters:
321313
returnparameters["next_url"]
322-
args=_sanitize(parameters)
314+
args=utils.sanitize_parameters(parameters)
323315

324316
url_attr="_url"
325317
ifactionisnotNone:

‎gitlab/tests/conftest.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
importpytest
2+
3+
importgitlab
4+
5+
6+
@pytest.fixture
7+
defdefault_config(tmpdir):
8+
valid_config="""[global]
9+
default = one
10+
ssl_verify = true
11+
timeout = 2
12+
13+
[one]
14+
url = http://one.url
15+
private_token = ABCDEF
16+
"""
17+
18+
config_path=tmpdir.join("python-gitlab.cfg")
19+
config_path.write(valid_config)
20+
returnstr(config_path)
21+
22+
23+
@pytest.fixture
24+
defgl():
25+
returngitlab.Gitlab(
26+
"http://localhost",private_token="private_token",api_version=4
27+
)
28+
29+
30+
# Todo: parametrize, but check what tests it's really useful for
31+
@pytest.fixture
32+
defgl_trailing():
33+
returngitlab.Gitlab(
34+
"http://localhost/",private_token="private_token",api_version=4
35+
)
36+
37+
38+
@pytest.fixture
39+
defgroup(gl):
40+
returngl.groups.get(1,lazy=True)
41+
42+
43+
@pytest.fixture
44+
defproject(gl):
45+
returngl.projects.get(1,lazy=True)
46+
47+
48+
@pytest.fixture
49+
defuser(gl):
50+
returngl.users.get(1,lazy=True)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
fromgitlab.mixinsimport (
2+
CreateMixin,
3+
CRUDMixin,
4+
DeleteMixin,
5+
GetMixin,
6+
ListMixin,
7+
NoUpdateMixin,
8+
UpdateMixin,
9+
RetrieveMixin,
10+
)
11+
12+
13+
deftest_retrieve_mixin():
14+
classM(RetrieveMixin):
15+
pass
16+
17+
obj=M()
18+
asserthasattr(obj,"list")
19+
asserthasattr(obj,"get")
20+
assertnothasattr(obj,"create")
21+
assertnothasattr(obj,"update")
22+
assertnothasattr(obj,"delete")
23+
assertisinstance(obj,ListMixin)
24+
assertisinstance(obj,GetMixin)
25+
26+
27+
deftest_crud_mixin():
28+
classM(CRUDMixin):
29+
pass
30+
31+
obj=M()
32+
asserthasattr(obj,"get")
33+
asserthasattr(obj,"list")
34+
asserthasattr(obj,"create")
35+
asserthasattr(obj,"update")
36+
asserthasattr(obj,"delete")
37+
assertisinstance(obj,ListMixin)
38+
assertisinstance(obj,GetMixin)
39+
assertisinstance(obj,CreateMixin)
40+
assertisinstance(obj,UpdateMixin)
41+
assertisinstance(obj,DeleteMixin)
42+
43+
44+
deftest_no_update_mixin():
45+
classM(NoUpdateMixin):
46+
pass
47+
48+
obj=M()
49+
asserthasattr(obj,"get")
50+
asserthasattr(obj,"list")
51+
asserthasattr(obj,"create")
52+
assertnothasattr(obj,"update")
53+
asserthasattr(obj,"delete")
54+
assertisinstance(obj,ListMixin)
55+
assertisinstance(obj,GetMixin)
56+
assertisinstance(obj,CreateMixin)
57+
assertnotisinstance(obj,UpdateMixin)
58+
assertisinstance(obj,DeleteMixin)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp