def setUp(self): super(TestUpgradeJetpacks, self).setUp() urllib2_patch = mock.patch('files.tasks.urllib2') self.urllib2 = urllib2_patch.start() self.addCleanup(urllib2_patch.stop) JetpackUpgrader().jetpack_versions('0.9', '1.0')
def setUp(self): super(TestRepackageJetpack, self).setUp() urllib_patch = mock.patch('files.tasks.urllib') self.urllib = urllib_patch.start() self.addCleanup(urllib_patch.stop) self.addon = Addon.objects.get(id=3615) # Match the guid from jetpack.xpi. self.addon.update(guid='jid0-ODIKJS9b4IT3H1NYlPKr0NDtLuE@jetpack') self.file = self.addon.current_version.all_files[0] eq_(self.file.status, amo.STATUS_PUBLIC) # Set up a temp file so urllib.urlretrieve works. self.xpi_path = os.path.join(settings.ROOT, 'apps/files/fixtures/files/jetpack.xpi') tmp_file = tempfile.NamedTemporaryFile(delete=False) tmp_file.write(open(self.xpi_path, 'rb').read()) tmp_file.flush() self.urllib.urlretrieve.return_value = (tmp_file.name, None) self.upgrader = JetpackUpgrader() settings.SEND_REAL_EMAIL = True self.uuid = uuid.uuid4().hex
def check_jetpack_version(sender, **kw): import files.tasks from files.utils import JetpackUpgrader minver, maxver = JetpackUpgrader().jetpack_versions() qs = File.objects.filter(version__addon=sender, jetpack_version__isnull=False) ids = [f.id for f in qs if vint(minver) <= vint(f.jetpack_version) < vint(maxver)] if ids: files.tasks.start_upgrade.delay(ids, priority='high')
def jetpack(request): upgrader = JetpackUpgrader() minver, maxver = upgrader.jetpack_versions() form = JetpackUpgradeForm(request.POST) if request.method == 'POST': if form.is_valid(): if 'minver' in request.POST: data = form.cleaned_data upgrader.jetpack_versions(data['minver'], data['maxver']) elif 'upgrade' in request.POST: if upgrader.version(maxver): start_upgrade(minver, maxver) elif 'cancel' in request.POST: upgrader.cancel() return redirect('zadmin.jetpack') else: messages.error(request, form.errors.as_text()) jetpacks = find_jetpacks(minver, maxver, from_builder_only=True) upgrading = upgrader.version() # Current Jetpack version upgrading to. repack_status = upgrader.files() # The files being repacked. show = request.GET.get('show', upgrading or minver) subset = filter( lambda f: not f.needs_upgrade and f.jetpack_version == show, jetpacks) need_upgrade = filter(lambda f: f.needs_upgrade, jetpacks) repacked = [] if upgrading: # Group the repacked files by status for this Jetpack upgrade. grouped_files = sorted_groupby(repack_status.values(), key=lambda f: f['status']) for group, rows in grouped_files: rows = sorted(list(rows), key=lambda f: f['file']) for idx, row in enumerate(rows): rows[idx]['file'] = File.objects.get(id=row['file']) repacked.append((group, rows)) groups = sorted_groupby(jetpacks, 'jetpack_version') by_version = dict((version, len(list(files))) for version, files in groups) return render( request, 'zadmin/jetpack.html', dict(form=form, upgrader=upgrader, by_version=by_version, upgrading=upgrading, need_upgrade=need_upgrade, subset=subset, show=show, repacked=repacked, repack_status=repack_status))
def setUp(self): self.addon = Addon.objects.get(id=3615) JetpackUpgrader().jetpack_versions('1.0', '1.1')
def jetpack_resend(request, file_id): maxver = JetpackUpgrader().version() log.info('Starting a jetpack upgrade to %s [1 file].' % maxver) start_upgrade_task.delay([file_id], sdk_version=maxver) return redirect('zadmin.jetpack')
def setUp(self): super(TestCheckJetpackVersion, self).setUp() self.addon = Addon.objects.get(id=3615) JetpackUpgrader().jetpack_versions('1.0', '1.1')