14
14
from readthedocs .projects .tasks import remove_dirs
15
15
from readthedocs .core .utils import slugify , trigger_build
16
16
from readthedocs .projects .models import Project
17
+ from readthedocs .builds .constants import LATEST
17
18
18
19
19
20
class CoreUtilTests (TestCase ):
@@ -34,6 +35,61 @@ def test_trigger_skipped_project(self, update_docs_task):
34
35
self .assertFalse (update_docs_task .signature .called )
35
36
self .assertFalse (update_docs_task .signature ().apply_async .called )
36
37
38
+ @mock .patch ('readthedocs.projects.tasks.update_docs_task' )
39
+ def test_trigger_build_when_version_not_provided_default_version_exist (self , update_docs_task ):
40
+ self .assertFalse (Version .objects .filter (slug = 'test-default-version' ).exists ())
41
+
42
+ project_1 = get (Project )
43
+ version_1 = get (Version , project = project_1 , slug = 'test-default-version' , active = True )
44
+
45
+ project_1 .default_version = 'test-default-version'
46
+ project_1 .save ()
47
+
48
+ default_version = project_1 .get_default_version ()
49
+ self .assertEqual (default_version , 'test-default-version' )
50
+
51
+ trigger_build (project = project_1 )
52
+ kwargs = {
53
+ 'version_pk' : version_1 .pk ,
54
+ 'record' : True ,
55
+ 'force' : False ,
56
+ 'build_pk' : mock .ANY ,
57
+ }
58
+
59
+ update_docs_task .signature .assert_has_calls ([
60
+ mock .call (
61
+ args = (project_1 .pk ,),
62
+ kwargs = kwargs ,
63
+ options = mock .ANY ,
64
+ immutable = True ,
65
+ ),
66
+ ])
67
+
68
+ @mock .patch ('readthedocs.projects.tasks.update_docs_task' )
69
+ def test_trigger_build_when_version_not_provided_default_version_doesnt_exist (self , update_docs_task ):
70
+
71
+ trigger_build (project = self .project )
72
+ default_version = self .project .get_default_version ()
73
+ version_ = self .project .versions .get (slug = default_version )
74
+
75
+ self .assertEqual (version_ .slug , LATEST )
76
+
77
+ kwargs = {
78
+ 'version_pk' : version_ .pk ,
79
+ 'record' : True ,
80
+ 'force' : False ,
81
+ 'build_pk' : mock .ANY ,
82
+ }
83
+
84
+ update_docs_task .signature .assert_has_calls ([
85
+ mock .call (
86
+ args = (self .project .pk ,),
87
+ kwargs = kwargs ,
88
+ options = mock .ANY ,
89
+ immutable = True ,
90
+ ),
91
+ ])
92
+
37
93
@mock .patch ('readthedocs.projects.tasks.update_docs_task' )
38
94
def test_trigger_custom_queue (self , update_docs ):
39
95
"""Use a custom queue when routing the task."""
0 commit comments