Skip to content
This repository was archived by the owner on Mar 15, 2018. It is now read-only.

Commit ab94f7f

Browse files
committed
Always update app status when uploading a new version (bug 895882)
1 parent c4cf609 commit ab94f7f

2 files changed

Lines changed: 21 additions & 11 deletions

File tree

mkt/developers/tests/test_views_versions.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ def test_rejected_packaged(self):
134134
eq_(doc('#rejection blockquote').text(), comments)
135135

136136

137+
@mock.patch('mkt.webapps.tasks.update_cached_manifests.delay', new=mock.Mock)
137138
class TestAddVersion(BasePackagedAppTest):
138139

139140
def setUp(self):
@@ -150,9 +151,7 @@ def _post(self, expected_status=200):
150151
eq_(res.status_code, expected_status)
151152
return res
152153

153-
@mock.patch('mkt.webapps.models.Webapp.get_manifest_json')
154-
def test_post(self, _mock):
155-
_mock.return_value = {}
154+
def test_post(self):
156155
self.app.current_version.update(version='0.9',
157156
created=self.days_ago(1))
158157
self._post(302)
@@ -165,27 +164,22 @@ def test_unique_version(self):
165164
self.assertFormError(res, 'upload_form', 'upload',
166165
'Version 1.0 already exists')
167166

168-
@mock.patch('mkt.webapps.models.Webapp.get_manifest_json')
169-
def test_pending_on_new_version(self, _mock):
167+
def test_pending_on_new_version(self):
170168
# Test app rejection, then new version, updates app status to pending.
171-
_mock.return_value = {}
172169
self.app.current_version.update(version='0.9',
173170
created=self.days_ago(1))
174171
self.app.update(status=amo.STATUS_REJECTED)
175172
files = File.objects.filter(version__addon=self.app)
176173
files.update(status=amo.STATUS_DISABLED)
177174
self._post(302)
175+
self.app.reload()
178176
version = self.app.versions.latest()
179177
eq_(version.version, '1.0')
180178
eq_(version.all_files[0].status, amo.STATUS_PENDING)
181-
self.app.update_status()
182179
eq_(self.app.status, amo.STATUS_PENDING)
183180

184181
@mock.patch('mkt.developers.views.run_validator')
185-
@mock.patch('mkt.webapps.models.Webapp.get_manifest_json')
186-
def test_prefilled_features(self, get_manifest_json_,
187-
run_validator_):
188-
get_manifest_json_.return_value = {}
182+
def test_prefilled_features(self, run_validator_):
189183
run_validator_.return_value = '{"feature_profile": ["apps", "audio"]}'
190184

191185
self.app.current_version.update(version='0.9',
@@ -219,6 +213,19 @@ def test_blocklist_on_new_version(self):
219213
assert EscalationQueue.objects.filter(addon=self.app).exists(), (
220214
'App not in escalation queue')
221215

216+
def test_new_version_when_incomplete(self):
217+
self.app.current_version.update(version='0.9',
218+
created=self.days_ago(1))
219+
self.app.update(status=amo.STATUS_NULL)
220+
files = File.objects.filter(version__addon=self.app)
221+
files.update(status=amo.STATUS_DISABLED)
222+
self._post(302)
223+
self.app.reload()
224+
version = self.app.versions.latest()
225+
eq_(version.version, '1.0')
226+
eq_(version.all_files[0].status, amo.STATUS_PENDING)
227+
eq_(self.app.status, amo.STATUS_PENDING)
228+
222229

223230
class TestEditVersion(amo.tests.TestCase):
224231
"""

mkt/developers/views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ def status(request, addon_id, addon, webapp=False):
218218
ver = Version.from_upload(upload_form.cleaned_data['upload'],
219219
addon, [amo.PLATFORM_ALL])
220220

221+
# Update addon status now that the new version was saved.
222+
addon.update_status()
223+
221224
res = run_validator(ver.all_files[0].file_path)
222225
validation_result = json.loads(res)
223226

0 commit comments

Comments
 (0)