def test_get_report_list_parameters(self): source = {"date": ["<2013-01-01T10:00:00+00:00"]} res = get_report_list_parameters(source) eq_(res["date"], "2013-01-01 10:00:00") ok_("range_value" not in res) ok_("range_unit" not in res) source = {"date": [">=2013-01-01T10:00:00+00:00"]} res = get_report_list_parameters(source) eq_(res["date"].split(" ")[0], datetime.datetime.utcnow().date().isoformat()) ok_("range_value" in res) eq_(res["range_unit"], "hours") source = { "date": [">2013-01-01T10:00:00+00:00", "<2013-02-01T10:00:00+00:00"], "product": ["WaterWolf"], "version": ["3.0b1", "4.0a", "5.1"], "release_channel": "aurora", "build_id": ["12345", "~67890"], } res = get_report_list_parameters(source) eq_(res["date"], "2013-02-01 10:00:00") ok_("range_value" in res) ok_(res["range_unit"], "hours") eq_(res["release_channels"], "aurora") ok_("release_channel" not in res) eq_(res["product"], ["WaterWolf"]) eq_(res["version"], ["WaterWolf:3.0b1", "WaterWolf:4.0a", "WaterWolf:5.1"]) eq_(res["build_id"], ["12345"])
def test_get_report_list_parameters(self): source = {'date': ['<2013-01-01T10:00:00+00:00']} res = get_report_list_parameters(source) eq_(res['date'], '2013-01-01 10:00:00') ok_('range_value' not in res) ok_('range_unit' not in res) source = {'date': ['>=2013-01-01T10:00:00+00:00']} res = get_report_list_parameters(source) eq_(res['date'].split(' ')[0], datetime.datetime.utcnow().date().isoformat()) ok_('range_value' in res) eq_(res['range_unit'], 'hours') source = { 'date': ['>2013-01-01T10:00:00+00:00', '<2013-02-01T10:00:00+00:00'], 'product': ['WaterWolf'], 'version': ['3.0b1', '4.0a', '5.1'], 'release_channel': 'aurora', 'build_id': ['12345', '~67890'], } res = get_report_list_parameters(source) eq_(res['date'], '2013-02-01 10:00:00') ok_('range_value' in res) ok_(res['range_unit'], 'hours') eq_(res['release_channels'], 'aurora') ok_('release_channel' not in res) eq_(res['product'], ['WaterWolf']) eq_(res['version'], ['WaterWolf:3.0b1', 'WaterWolf:4.0a', 'WaterWolf:5.1']) eq_(res['build_id'], ['12345'])
def signature_report(request, default_context=None): context = default_context params = get_validated_params(request) if isinstance(params, http.HttpResponseBadRequest): # There was an error in the form, let's return it. return params signature = request.GET.get('signature') if not signature: return http.HttpResponseBadRequest( '"signature" parameter is mandatory') context['signature'] = signature fields = sorted(x['name'] for x in SuperSearchFields().get().values() if x['is_exposed'] and x['is_returned'] and has_permissions(request.user, x['permissions_needed']) and x['name'] != 'signature' # exclude the signature field ) context['fields'] = [{ 'id': field, 'text': field.replace('_', ' ') } for field in fields] context['columns'] = request.GET.getlist('_columns') or DEFAULT_COLUMNS context['report_list_query_string'] = urllib.urlencode( utils.sanitize_dict(get_report_list_parameters(params)), True) return render(request, 'signature/signature_report.html', context)
def test_get_report_list_parameters(self): source = { 'date': ['<2013-01-01T10:00:00+00:00'] } res = get_report_list_parameters(source) eq_(res['date'], '2013-01-01 10:00:00') ok_('range_value' not in res) ok_('range_unit' not in res) source = { 'date': ['>=2013-01-01T10:00:00+00:00'] } res = get_report_list_parameters(source) eq_( res['date'].split(' ')[0], datetime.datetime.utcnow().date().isoformat() ) ok_('range_value' in res) eq_(res['range_unit'], 'hours') source = { 'date': [ '>2013-01-01T10:00:00+00:00', '<2013-02-01T10:00:00+00:00' ], 'product': ['WaterWolf'], 'version': ['3.0b1', '4.0a', '5.1'], 'release_channel': 'aurora', 'build_id': ['12345', '~67890'], } res = get_report_list_parameters(source) eq_(res['date'], '2013-02-01 10:00:00') ok_('range_value' in res) ok_(res['range_unit'], 'hours') eq_(res['release_channels'], 'aurora') ok_('release_channel' not in res) eq_(res['product'], ['WaterWolf']) eq_( res['version'], ['WaterWolf:3.0b1', 'WaterWolf:4.0a', 'WaterWolf:5.1'] ) eq_(res['build_id'], ['12345'])
def signature_report(request, params, default_context=None): context = default_context signature = request.GET.get('signature') if not signature: return http.HttpResponseBadRequest( '"signature" parameter is mandatory' ) context['signature'] = signature fields = sorted( x['name'] for x in SuperSearchFields().get().values() if x['is_exposed'] and x['is_returned'] and has_permissions(request.user, x['permissions_needed']) and x['name'] != 'signature' # exclude the signature field ) context['fields'] = [ {'id': field, 'text': field.replace('_', ' ')} for field in fields ] columns = request.GET.getlist('_columns') columns = [x for x in columns if x in fields] context['columns'] = columns or DEFAULT_COLUMNS sort = request.GET.getlist('_sort') sort = [x for x in sort if x in fields] context['sort'] = sort or DEFAULT_SORT context['channels'] = ','.join(settings.CHANNELS).split(',') context['channel'] = settings.CHANNEL context['report_list_query_string'] = urllib.urlencode( utils.sanitize_dict( get_report_list_parameters(params) ), True ) return render(request, 'signature/signature_report.html', context)
def signature_report(request, default_context=None): context = default_context params = get_validated_params(request) if isinstance(params, http.HttpResponseBadRequest): # There was an error in the form, let's return it. return params signature = request.GET.get('signature') if not signature: return http.HttpResponseBadRequest( '"signature" parameter is mandatory' ) context['signature'] = signature fields = sorted( x['name'] for x in SuperSearchFields().get().values() if x['is_exposed'] and x['is_returned'] and has_permissions(request.user, x['permissions_needed']) and x['name'] != 'signature' # exclude the signature field ) context['fields'] = [ {'id': field, 'text': field.replace('_', ' ')} for field in fields ] context['columns'] = request.GET.getlist('_columns') or DEFAULT_COLUMNS context['report_list_query_string'] = urllib.urlencode( utils.sanitize_dict( get_report_list_parameters(params) ), True ) return render(request, 'signature/signature_report.html', context)
def signature_report(request, params, default_context=None): context = default_context signature = request.GET.get('signature') if not signature: return http.HttpResponseBadRequest( '"signature" parameter is mandatory' ) context['signature'] = signature fields = sorted( x['name'] for x in SuperSearchFields().get().values() if x['is_exposed'] and x['is_returned'] and has_permissions(request.user, x['permissions_needed']) and x['name'] != 'signature' # exclude the signature field ) context['fields'] = [ {'id': field, 'text': field.replace('_', ' ')} for field in fields ] context['columns'] = request.GET.getlist('_columns') or DEFAULT_COLUMNS context['channels'] = ','.join(settings.CHANNELS).split(',') context['channel'] = settings.CHANNEL context['report_list_query_string'] = urllib.urlencode( utils.sanitize_dict( get_report_list_parameters(params) ), True ) return render(request, 'signature/signature_report.html', context)