15
15
from gitlab .v4 .objects .projects import ProjectStorage
16
16
17
17
project_content = {"name" : "name" , "id" : 1 }
18
+ project_for_user_1_content = {
19
+ "name" : "name" ,
20
+ "id" : 1 ,
21
+ "owner" : {"id" : 1 , "username" : "owner_username" , "name" : "owner_name" },
22
+ }
18
23
languages_content = {
19
24
"python" : 80.00 ,
20
25
"ruby" : 99.99 ,
30
35
"id" : 1 ,
31
36
},
32
37
]
38
+ forked_from_1_content = {
39
+ "name" : "name" ,
40
+ "id" : 2 ,
41
+ "forks_count" : 0 ,
42
+ "forked_from_project" : {"id" : 1 , "name" : "name" , "forks_count" : 1 },
43
+ }
33
44
import_content = {
34
45
"id" : 1 ,
35
46
"name" : "project" ,
@@ -50,6 +61,45 @@ def resp_get_project():
50
61
yield rsps
51
62
52
63
64
+ @pytest .fixture
65
+ def resp_post_project ():
66
+ with responses .RequestsMock () as rsps :
67
+ rsps .add (
68
+ method = responses .POST ,
69
+ url = "http://localhost/api/v4/projects" ,
70
+ json = project_content ,
71
+ content_type = "application/json" ,
72
+ status = 201 ,
73
+ )
74
+ yield rsps
75
+
76
+
77
+ @pytest .fixture
78
+ def resp_post_project_user ():
79
+ with responses .RequestsMock () as rsps :
80
+ rsps .add (
81
+ method = responses .POST ,
82
+ url = "http://localhost/api/v4/projects/user/1" ,
83
+ json = project_for_user_1_content ,
84
+ content_type = "application/json" ,
85
+ status = 201 ,
86
+ )
87
+ yield rsps
88
+
89
+
90
+ @pytest .fixture
91
+ def resp_post_fork_project ():
92
+ with responses .RequestsMock () as rsps :
93
+ rsps .add (
94
+ method = responses .POST ,
95
+ url = "http://localhost/api/v4/projects/1/fork" ,
96
+ json = forked_from_1_content ,
97
+ content_type = "application/json" ,
98
+ status = 201 ,
99
+ )
100
+ yield rsps
101
+
102
+
53
103
@pytest .fixture
54
104
def resp_get_project_storage ():
55
105
with responses .RequestsMock () as rsps :
@@ -220,24 +270,36 @@ def test_list_project_users(project, resp_list_users):
220
270
assert user .state == "active"
221
271
222
272
223
- @pytest .mark .skip (reason = "missing test" )
224
- def test_create_project (gl ):
225
- pass
273
+ def test_create_project (gl , resp_post_project ):
274
+ project = gl .projects .create ({"name" : "name" })
275
+ assert project .id == 1
276
+ assert project .name == "name"
226
277
227
278
228
- @pytest .mark .skip (reason = "missing test" )
229
- def test_create_user_project (gl ):
230
- pass
279
+ def test_create_user_project (user , resp_post_project_user ):
280
+ user_project = user .projects .create ({"name" : "name" })
281
+ assert user_project .id == 1
282
+ assert user_project .name == "name"
283
+ assert user_project .owner
284
+ assert user_project .owner .get ("id" ) == user .id
285
+ assert user_project .owner .get ("name" ) == "owner_name"
286
+ assert user_project .owner .get ("username" ) == "owner_username"
231
287
232
288
233
289
@pytest .mark .skip (reason = "missing test" )
234
290
def test_update_project (gl ):
235
291
pass
236
292
237
293
238
- @pytest .mark .skip (reason = "missing test" )
239
- def test_fork_project (gl ):
240
- pass
294
+ def test_fork_project (project , resp_post_fork_project ):
295
+ fork = project .forks .create ({})
296
+ assert fork .id == 2
297
+ assert fork .name == "name"
298
+ assert fork .forks_count == 0
299
+ assert fork .forked_from_project
300
+ assert fork .forked_from_project .get ("id" ) == project .id
301
+ assert fork .forked_from_project .get ("name" ) == "name"
302
+ assert fork .forked_from_project .get ("forks_count" ) == 1
241
303
242
304
243
305
def test_list_project_forks (project , resp_list_forks ):
0 commit comments