3
3
from os .path import exists
4
4
from tempfile import mkdtemp
5
5
6
+ from allauth .socialaccount .models import SocialAccount
6
7
from django .contrib .auth .models import User
7
8
from django_dynamic_fixture import get
8
9
from messages_extends .models import Message
9
10
from mock import MagicMock , patch
10
11
11
- from allauth .socialaccount .models import SocialAccount
12
-
13
- from readthedocs .builds .constants import LATEST , BUILD_STATUS_SUCCESS , EXTERNAL
14
- from readthedocs .builds .models import Build
12
+ from readthedocs .builds .constants import (
13
+ BUILD_STATE_TRIGGERED ,
14
+ BUILD_STATUS_SUCCESS ,
15
+ EXTERNAL ,
16
+ LATEST ,
17
+ )
18
+ from readthedocs .builds .models import Build , Version
19
+ from readthedocs .doc_builder .environments import LocalBuildEnvironment
15
20
from readthedocs .doc_builder .exceptions import VersionLockedError
16
- from readthedocs .projects import tasks
17
- from readthedocs .builds .models import Version
18
21
from readthedocs .oauth .models import RemoteRepository
22
+ from readthedocs .projects import tasks
19
23
from readthedocs .projects .exceptions import RepositoryError
20
24
from readthedocs .projects .models import Project
21
25
from readthedocs .rtd_tests .base import RTDTestCase
@@ -51,6 +55,22 @@ def setUp(self):
51
55
)
52
56
self .project .users .add (self .eric )
53
57
58
+ def get_update_docs_task (self , version ):
59
+ build_env = LocalBuildEnvironment (
60
+ version .project , version , record = False ,
61
+ )
62
+
63
+ update_docs = tasks .UpdateDocsTaskStep (
64
+ build_env = build_env ,
65
+ project = version .project ,
66
+ version = version ,
67
+ build = {
68
+ 'id' : 99 ,
69
+ 'state' : BUILD_STATE_TRIGGERED ,
70
+ },
71
+ )
72
+ return update_docs
73
+
54
74
def tearDown (self ):
55
75
shutil .rmtree (self .repo )
56
76
super ().tearDown ()
@@ -236,18 +256,16 @@ def test_check_duplicate_reserved_version_latest(self, checkout_path, api_v2):
236
256
checkout_path .return_value = local_repo
237
257
238
258
version = self .project .versions .get (slug = LATEST )
239
- sync_repository = tasks .UpdateDocsTaskStep ()
240
- sync_repository .version = version
241
- sync_repository .project = self .project
259
+ sync_repository = self .get_update_docs_task (version )
242
260
with self .assertRaises (RepositoryError ) as e :
243
- sync_repository .sync_repo ()
261
+ sync_repository .sync_repo (sync_repository . build_env )
244
262
self .assertEqual (
245
263
str (e .exception ),
246
264
RepositoryError .DUPLICATED_RESERVED_VERSIONS ,
247
265
)
248
266
249
267
delete_git_branch (self .repo , 'latest' )
250
- sync_repository .sync_repo ()
268
+ sync_repository .sync_repo (sync_repository . build_env )
251
269
api_v2 .project ().sync_versions .post .assert_called ()
252
270
253
271
@patch ('readthedocs.projects.tasks.api_v2' )
@@ -262,11 +280,9 @@ def test_check_duplicate_reserved_version_stable(self, checkout_path, api_v2):
262
280
checkout_path .return_value = local_repo
263
281
264
282
version = self .project .versions .get (slug = LATEST )
265
- sync_repository = tasks .UpdateDocsTaskStep ()
266
- sync_repository .version = version
267
- sync_repository .project = self .project
283
+ sync_repository = self .get_update_docs_task (version )
268
284
with self .assertRaises (RepositoryError ) as e :
269
- sync_repository .sync_repo ()
285
+ sync_repository .sync_repo (sync_repository . build_env )
270
286
self .assertEqual (
271
287
str (e .exception ),
272
288
RepositoryError .DUPLICATED_RESERVED_VERSIONS ,
@@ -281,11 +297,10 @@ def test_check_duplicate_no_reserved_version(self, api_v2):
281
297
create_git_tag (self .repo , 'no-reserved' )
282
298
283
299
version = self .project .versions .get (slug = LATEST )
284
- sync_repository = tasks .UpdateDocsTaskStep ()
285
- sync_repository .version = version
286
- sync_repository .project = self .project
287
- sync_repository .sync_repo ()
288
300
301
+ sync_repository = self .get_update_docs_task (version )
302
+
303
+ sync_repository .sync_repo (sync_repository .build_env )
289
304
api_v2 .project ().sync_versions .post .assert_called ()
290
305
291
306
def test_public_task_exception (self ):
0 commit comments