@@ -81,6 +81,116 @@ def test_stable_versions(self):
81
81
self .assertTrue (version_stable .active )
82
82
self .assertEqual (version_stable .identifier , '0.9' )
83
83
84
+ def test_update_stable_version (self ):
85
+ version_post_data = {
86
+ 'branches' : [
87
+ {
88
+ 'identifier' : 'origin/master' ,
89
+ 'verbose_name' : 'master' ,
90
+ },
91
+ ],
92
+ 'tags' : [
93
+ {
94
+ 'identifier' : '0.9' ,
95
+ 'verbose_name' : '0.9' ,
96
+ },
97
+ {
98
+ 'identifier' : '0.8' ,
99
+ 'verbose_name' : '0.8' ,
100
+ },
101
+ ]
102
+ }
103
+
104
+ self .client .post (
105
+ '/api/v2/project/%s/sync_versions/' % self .pip .pk ,
106
+ data = json .dumps (version_post_data ),
107
+ content_type = 'application/json' ,
108
+ )
109
+
110
+ version_stable = Version .objects .get (slug = STABLE )
111
+ self .assertTrue (version_stable .active )
112
+ self .assertEqual (version_stable .identifier , '0.9' )
113
+
114
+ version_post_data = {
115
+ 'tags' : [
116
+ {
117
+ 'identifier' : '1.0.0' ,
118
+ 'verbose_name' : '1.0.0' ,
119
+ },
120
+ ]
121
+ }
122
+
123
+ self .client .post (
124
+ '/api/v2/project/%s/sync_versions/' % self .pip .pk ,
125
+ data = json .dumps (version_post_data ),
126
+ content_type = 'application/json' ,
127
+ )
128
+
129
+ version_stable = Version .objects .get (slug = STABLE )
130
+ self .assertTrue (version_stable .active )
131
+ self .assertEqual (version_stable .identifier , '1.0.0' )
132
+
133
+ version_post_data = {
134
+ 'tags' : [
135
+ {
136
+ 'identifier' : '0.7' ,
137
+ 'verbose_name' : '0.7' ,
138
+ },
139
+ ]
140
+ }
141
+
142
+ self .client .post (
143
+ '/api/v2/project/%s/sync_versions/' % self .pip .pk ,
144
+ data = json .dumps (version_post_data ),
145
+ content_type = 'application/json' ,
146
+ )
147
+
148
+ version_stable = Version .objects .get (slug = STABLE )
149
+ self .assertTrue (version_stable .active )
150
+ self .assertEqual (version_stable .identifier , '1.0.0' )
151
+
152
+ def test_update_inactive_stable_version (self ):
153
+ version_post_data = {
154
+ 'branches' : [
155
+ {
156
+ 'identifier' : 'origin/master' ,
157
+ 'verbose_name' : 'master' ,
158
+ },
159
+ ],
160
+ 'tags' : [
161
+ {
162
+ 'identifier' : '0.9' ,
163
+ 'verbose_name' : '0.9' ,
164
+ },
165
+ ]
166
+ }
167
+
168
+ self .client .post (
169
+ '/api/v2/project/%s/sync_versions/' % self .pip .pk ,
170
+ data = json .dumps (version_post_data ),
171
+ content_type = 'application/json' ,
172
+ )
173
+
174
+ version_stable = Version .objects .get (slug = STABLE )
175
+ self .assertEqual (version_stable .identifier , '0.9' )
176
+ version_stable .active = False
177
+ version_stable .save ()
178
+
179
+ version_post_data ['tags' ].append ({
180
+ 'identifier' : '1.0.0' ,
181
+ 'verbose_name' : '1.0.0' ,
182
+ })
183
+
184
+ self .client .post (
185
+ '/api/v2/project/%s/sync_versions/' % self .pip .pk ,
186
+ data = json .dumps (version_post_data ),
187
+ content_type = 'application/json' ,
188
+ )
189
+
190
+ version_stable = Version .objects .get (slug = STABLE )
191
+ self .assertFalse (version_stable .active )
192
+ self .assertEqual (version_stable .identifier , '1.0.0' )
193
+
84
194
def test_new_tag_update_active (self ):
85
195
86
196
Version .objects .create (project = self .pip , identifier = '0.8.3' ,
0 commit comments