Example #1
0
File: units.py Project: arky/pootle
def _test_units_state_filter(qs, unit_filter):
    result = UnitStateFilter(qs).filter(unit_filter)
    for item in result:
        assert item in qs
    assert result.count() == result.distinct().count()
    if unit_filter == "all":
        assert list(result) == list(qs)
        return
    elif unit_filter == "translated":
        states = [TRANSLATED]
    elif unit_filter == "untranslated":
        states = [UNTRANSLATED]
    elif unit_filter == "fuzzy":
        states = [FUZZY]
    elif unit_filter == "incomplete":
        states = [UNTRANSLATED, FUZZY]
    assert all(
        state in states
        for state
        in result.values_list("state", flat=True))
    assert (
        qs.filter(state__in=states).count()
        == result.count())
Example #2
0
def test_units_state_filter(units_state_searches):
    unit_filter = units_state_searches
    qs = Unit.objects.all()
    if not hasattr(UnitStateFilter, "filter_%s" % unit_filter):
        with pytest.raises(FilterNotFound):
            UnitStateFilter(qs).filter(unit_filter)
        return
    test_qs = [
        qs,
        qs.none(),
        qs.filter(store__translation_project__project=Project.objects.first())
    ]
    for _qs in test_qs:
        _test_units_state_filter(_qs, unit_filter)
Example #3
0
def _test_units_state_filter(qs, unit_filter):
    result = UnitStateFilter(qs).filter(unit_filter)
    for item in result:
        assert item in qs
    assert result.count() == result.distinct().count()
    if unit_filter == "all":
        assert list(result) == list(qs)
        return
    elif unit_filter == "translated":
        states = [TRANSLATED]
    elif unit_filter == "untranslated":
        states = [UNTRANSLATED]
    elif unit_filter == "fuzzy":
        states = [FUZZY]
    elif unit_filter == "incomplete":
        states = [UNTRANSLATED, FUZZY]
    assert all(state in states for state in result.values_list("state", flat=True))
    assert qs.filter(state__in=states).count() == result.count()