Exemple #1
0
def ddc_transform(raw):
    """
    Transform the ddc search field value
    :param str raw:
    :rtype: str
    """
    m = re_range.match(raw)
    if m:
        raw = [m.group('start').strip(), m.group('end').strip()]
        normed = normalize_ddc_range(*raw)
        return f'[{normed[0] or raw[0]} TO {normed[1] or raw[1]}]'
    elif raw.endswith('*'):
        return normalize_ddc_prefix(raw[:-1]) + '*'
    else:
        normed = normalize_ddc(raw.strip('"'))
        if normed:
            return normed[0]

    # if none of the transforms took
    return raw
Exemple #2
0
def test_normalize_ddc_prefix(prefix, normed, name):
    assert normalize_ddc_prefix(prefix) == normed