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())
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)
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()