def dump_app(id, **kw): from mkt.webapps.serializers import AppSerializer # Because @robhudson told me to. # Note: not using storage because all these operations should be local. target_dir = os.path.join(settings.DUMPED_APPS_PATH, 'apps', str(id / 1000)) target_file = os.path.join(target_dir, str(id) + '.json') try: obj = Webapp.objects.get(pk=id) except Webapp.DoesNotExist: task_log.info(u'Webapp does not exist: {0}'.format(id)) return req = RequestFactory().get('/') req.user = AnonymousUser() req.REGION = RESTOFWORLD if not os.path.exists(target_dir): os.makedirs(target_dir) task_log.info('Dumping app {0} to {1}'.format(id, target_file)) res = AppSerializer(obj, context={'request': req}).data json.dump(res, open(target_file, 'w'), cls=JSONEncoder) return target_file
def get_request(self, data=None): if data is None: data = {} request = RequestFactory().get('/', data) request.REGION = mkt.regions.RESTOFWORLD request.API = True request.user = AnonymousUser() return request
def test_sort_regional(self): """Popularity and trending use regional sorting for mature regions.""" req = RequestFactory().get('/') req.REGION = mkt.regions.BRA # Default empty query searches use popularity. qs = self._filter(req) ok_({'popularity_%s' % mkt.regions.BRA.id: {'order': 'desc'}} in qs['sort']) # Popularity. req = RequestFactory().get('/', data={'sort': ['popularity']}) req.REGION = mkt.regions.BRA qs = self._filter(req) ok_({'popularity_%s' % mkt.regions.BRA.id: {'order': 'desc'}} in qs['sort']) # Trending. req = RequestFactory().get('/', data={'sort': ['trending']}) req.REGION = mkt.regions.BRA qs = self._filter(req) ok_({'trending_%s' % mkt.regions.BRA.id: {'order': 'desc'}} in qs['sort'])
def test_sort_regional(self): """Popularity and trending use regional sorting for mature regions.""" req = RequestFactory().get('/') req.REGION = mkt.regions.BRA # Default empty query searches use popularity. qs = self._filter(req) ok_({'popularity_%s' % mkt.regions.BRA.id: { 'order': 'desc' }} in qs['sort']) # Popularity. req = RequestFactory().get('/', data={'sort': ['popularity']}) req.REGION = mkt.regions.BRA qs = self._filter(req) ok_({'popularity_%s' % mkt.regions.BRA.id: { 'order': 'desc' }} in qs['sort']) # Trending. req = RequestFactory().get('/', data={'sort': ['trending']}) req.REGION = mkt.regions.BRA qs = self._filter(req) ok_({'trending_%s' % mkt.regions.BRA.id: { 'order': 'desc' }} in qs['sort'])
def req_factory_factory(url='', user=None, post=False, data=None, **kwargs): """Creates a request factory, logged in with the user.""" req = RequestFactory() if post: req = req.post(url, data or {}) else: req = req.get(url, data or {}) if user: req.user = UserProfile.objects.get(id=user.id) req.groups = user.groups.all() else: req.user = AnonymousUser() req.check_ownership = partial(check_ownership, req) req.REGION = kwargs.pop('region', mkt.regions.REGIONS_CHOICES[0][1]) req.API_VERSION = 2 for key in kwargs: setattr(req, key, kwargs[key]) return req
def dump_app(id, **kw): from mkt.webapps.serializers import AppSerializer target_dir = os.path.join(settings.DUMPED_APPS_PATH, 'apps', str(id / 1000)) target_file = os.path.join(target_dir, str(id) + '.json') try: obj = Webapp.objects.get(pk=id) except Webapp.DoesNotExist: task_log.info(u'Webapp does not exist: {0}'.format(id)) return req = RequestFactory().get('/') req.user = AnonymousUser() req.REGION = RESTOFWORLD task_log.info('Dumping app {0} to {1}'.format(id, target_file)) res = AppSerializer(obj, context={'request': req}).data with private_storage.open(target_file, 'w') as fileobj: json.dump(res, fileobj, cls=JSONEncoder) return target_file
def collection_data(collection): request = RequestFactory().get('/') request.user = AnonymousUser() request.REGION = RESTOFWORLD return ShortAppsCollectionSerializer(collection, context={'request': request}).data