Example #1
0
    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"])
Example #2
0
    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'])
Example #3
0
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)
Example #4
0
    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'])
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)