def clean_request_args(request_args, lot_filters):
    """Removes any unknown args keys or values from request.

    Compares every key/value pair from request query parameters
    with the list of name/value pairs retrieved from search
    presenters. Only pairs that match are kept.

    'q' and 'page' arguments are preserved if present in the request.args.
    'lot' is only kept if the value is a valid lot.

    """
    allowed_filters = allowed_request_lot_filters(lot_filters)

    clean_args = MultiDict([
        f for f in request_args.items(multi=True)
        if f in allowed_filters
    ])

    for key in ['q', 'page']:
        if request_args.get(key):
            clean_args[key] = request_args[key]

    if lot_to_lot_case(request_args.get('lot')):
        clean_args['lot'] = request_args.get('lot')

    return clean_args
def sections_for_lot(lot, builder):
    if lot is None or lot == 'all':
        sections = builder.filter(
            {'lot': 'IaaS'}).filter(
            {'lot': 'PaaS'}).filter(
            {'lot': 'SaaS'}).filter(
            {'lot': 'SCS'}).sections
    else:
        sections = builder.filter({'lot': lot_to_lot_case(lot)}).sections

    return sections
Пример #3
0
    def test_returns_lot_in_lot_case(self):

        cases = [
            ("saas", "SaaS"),
            ("iaas", "IaaS"),
            ("paas", "PaaS"),
            ("scs", "SCS"),
            ("dewdew", None),
        ]

        for example, expected in cases:
            assert lot_to_lot_case(example) == expected
    def test_returns_lot_in_lot_case(self):

        cases = [
            ("saas", "SaaS"),
            ("iaas", "IaaS"),
            ("paas", "PaaS"),
            ("scs", "SCS"),
            ("dewdew", None),
        ]

        for example, expected in cases:
            assert lot_to_lot_case(example) == expected