def test_form_language_suggestions_search(language0, tp0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin) team = form.language_team suggester = team.users_with_suggestions.pop()[0] suggestions = form.language_team.suggestions.filter( unit__store__translation_project__project__disabled=False, unit__store__obsolete=False) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_suggester=suggester)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(user__username=suggester))) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_tp=tp0.id)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(unit__store__translation_project=tp0))) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_state=FUZZY)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(unit__state=FUZZY)))
def test_form_language_suggestions_save_all(language0, tp0, admin): form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(actions="reject", select_all=True, filter_tp=tp0.id) ) assert list(form.suggestions_to_save) == list( form.language_team.suggestions.filter(unit__store__translation_project=tp0) ) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state == "rejected"
def test_form_language_suggestions_save_all(language0, tp0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin, data=dict(actions="reject", select_all=True, filter_tp=tp0.id)) assert (list(form.suggestions_to_save) == list( form.language_team.suggestions.filter( unit__store__translation_project=tp0))) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state.name == "rejected"
def test_form_language_suggestions_save(language0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin) suggestions = form.language_team.suggestions[:3] form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(actions="accept", suggestions=list(suggestions.values_list("id", flat=True))), ) assert form.is_valid() assert list(form.suggestions_to_save) == list(suggestions) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state == "accepted"
def test_form_language_suggestions_bad(language0, tp0, admin): with pytest.raises(KeyError): LanguageSuggestionAdminForm(language=language0) with pytest.raises(KeyError): LanguageSuggestionAdminForm(user=admin) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_tp=tp0.id, filter_state=OBSOLETE) ) assert not form.is_valid() assert list(form.batch().paginator.object_list) == list( form.language_team.suggestions.filter(unit__store__translation_project=tp0) ) assert not form.suggestions_review assert not form.suggestions_to_save
def test_form_language_suggestions(language0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin) suggesters = list( (username, ("%s (%s)" % (fullname, username) if fullname.strip() else username)) for username, fullname in sorted( form.language_team.users_with_suggestions)) assert (form.filter_suggester_choices == [("", "-----")] + suggesters) suggestions = form.language_team.suggestions.filter( unit__store__translation_project__project__disabled=False, unit__store__obsolete=False) assert (list(form.suggestions_qs.values_list("id", flat=True)) == list( suggestions.values_list("id", flat=True))) tps = form.language.translationproject_set.exclude(project__disabled=True) tps = tps.filter(stores__unit__suggestion__state__name="pending") assert (list(form.filter_tp_qs.values_list("id")) == list( tps.order_by("project__code").distinct().values_list("id"))) assert (list(form.fields["filter_suggester"].choices) == list( form.filter_suggester_choices)) assert (list(form.fields["filter_tp"].queryset) == list(form.filter_tp_qs)) assert (list(form.fields["suggestions"].queryset) == list( form.suggestions_qs)) assert (form.fields["actions"].choices == [("", "----"), ("reject", _("Reject")), ("accept", _("Accept"))])
def test_form_language_suggestions_reject_comment(language0, tp0, admin, member2_with_email): form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(actions="reject", comment="no thanks", select_all=True, filter_tp=tp0.id), ) assert list(form.suggestions_to_save) == list( form.language_team.suggestions.filter(unit__store__translation_project=tp0) ) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state == "rejected" assert len(mail.outbox) == 1 message = mail.outbox[0].message() for suggestion in form.suggestions_to_save: assert ("#%s" % suggestion.id) in str(message) assert "reject" in mail.outbox[0].subject.lower()
def test_form_language_suggestions_accept_comment(review_mock, language0, tp0, admin): review_mock.configure_mock(**{'return_value.accept.return_value': 23}) form = LanguageSuggestionAdminForm(language=language0, user=admin, data=dict(actions="accept", comment="no thanks", select_all=True, filter_tp=tp0.id)) assert (list(form.suggestions_to_save) == list( form.language_team.suggestions.filter( unit__store__translation_project=tp0))) assert form.save() == 23 assert (list(review_mock.return_value.accept.call_args) == [(), { 'comment': u'no thanks' }])
def test_form_language_suggestions_reject_comment(language0, tp0, admin, member2_with_email, mailoutbox): form = LanguageSuggestionAdminForm(language=language0, user=admin, data=dict(actions="reject", comment="no thanks", select_all=True, filter_tp=tp0.id)) assert (list(form.suggestions_to_save) == list( form.language_team.suggestions.filter( unit__store__translation_project=tp0))) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state.name == "rejected" assert len(mailoutbox) == 1 for suggestion in form.suggestions_to_save: assert ("#%s" % suggestion.id) in mailoutbox[0].body assert "reject" in mailoutbox[0].subject.lower()
def test_form_language_suggestions_accept_comment(review_mock, language0, tp0, admin): review_mock.configure_mock(**{'return_value.accept.return_value': 23}) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict( actions="accept", comment="no thanks", select_all=True, filter_tp=tp0.id)) assert ( list(form.suggestions_to_save) == list( form.language_team.suggestions.filter( unit__store__translation_project=tp0))) assert form.save() == 23 assert ( list(review_mock.return_value.accept.call_args) == [(), {'comment': u'no thanks'}])
def test_form_language_suggestions_save(language0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin) suggestions = form.language_team.suggestions[:3] form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(actions="accept", suggestions=list(suggestions.values_list("id", flat=True)))) assert form.is_valid() assert (list(form.suggestions_to_save) == list(suggestions)) form.save() for suggestion in form.suggestions_to_save: assert suggestion.state.name == "accepted"
def test_form_language_suggestions_bad(language0, tp0, admin): with pytest.raises(KeyError): LanguageSuggestionAdminForm(language=language0) with pytest.raises(KeyError): LanguageSuggestionAdminForm(user=admin) form = LanguageSuggestionAdminForm(language=language0, user=admin, data=dict(filter_tp=tp0.id, filter_state=OBSOLETE)) assert not form.is_valid() assert (list(form.batch().paginator.object_list) == list( form.language_team.suggestions.filter( unit__store__translation_project=tp0))) assert not form.suggestions_review assert not form.suggestions_to_save
def test_form_language_suggestions_search(language0, tp0, admin): form = LanguageSuggestionAdminForm(language=language0, user=admin) team = form.language_team suggester = team.users_with_suggestions.pop()[0] suggestions = form.language_team.suggestions.filter( unit__store__translation_project__project__disabled=False) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_suggester=suggester)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(user__username=suggester))) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_tp=tp0.id)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(unit__store__translation_project=tp0))) form = LanguageSuggestionAdminForm( language=language0, user=admin, data=dict(filter_state=FUZZY)) assert form.is_valid() assert ( list(form.search()) == list(suggestions.filter(unit__state=FUZZY)))