Skip to content

Commit

Permalink
tests/moderation: add tests for budgeting moderation form
Browse files Browse the repository at this point in the history
  • Loading branch information
fuzzylogic2000 committed Nov 25, 2022
1 parent 1701030 commit 112d728
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
41 changes: 40 additions & 1 deletion tests/budgeting/test_views_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,46 @@ def test_moderate_view(client, phase_factory, proposal_factory, user,
data = {
'moderator_feedback': 'test',
'is_archived': False,
'statement': 'its a statement'
'statement': 'its a statement',
'remark': 'this is a remark',
}
response = client.post(url, data)
assert redirect_target(response) == 'proposal-detail'

# was the NotifyCreatorOrContactOnModeratorFeedback sent?
assert len(mail.outbox) == 1
assert mail.outbox[0].to == [item.contact_email]
assert mail.outbox[0].subject.startswith('Rückmeldung')


@pytest.mark.django_db
def test_moderate_view_with_tasks(
client, phase_factory, proposal_factory, user,
area_settings_factory, moderation_task_factory):
phase, module, project, item = setup_phase(
phase_factory, proposal_factory, phases.RequestPhase)
item.contact_email = 'user_test@liqd.net'
item.save()
area_settings_factory(module=module)
url = reverse('meinberlin_budgeting:proposal-moderate',
kwargs={'pk': item.pk, 'year': item.created.year})
project.moderators.set([user])
task1 = moderation_task_factory(module=module)
task2 = moderation_task_factory(module=module)
with freeze_phase(phase):
client.login(username=user.email, password='password')

response = client.get(url)
assert_template_response(
response,
'meinberlin_budgeting/proposal_moderate_form.html')

data = {
'moderator_feedback': 'test',
'is_archived': False,
'statement': 'its a statement',
'remark': 'this is a remark',
'completed_tasks': [task1.pk, task2.pk],
}
response = client.post(url, data)
assert redirect_target(response) == 'proposal-detail'
Expand Down
3 changes: 3 additions & 0 deletions tests/moderationtasks/conftest.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from pytest_factoryboy import register

from meinberlin.test.factories.budgeting import ProposalFactory

from .factories import ModerationTaskFactory

register(ModerationTaskFactory)
register(ProposalFactory)
36 changes: 36 additions & 0 deletions tests/moderationtasks/test_mixins.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import pytest
from django import forms

from meinberlin.apps.budgeting.models import Proposal
from meinberlin.apps.moderationtasks.mixins import TasksAddableFieldMixin


class TaskForm(TasksAddableFieldMixin, forms.ModelForm):

class Meta:
model = Proposal
fields = ['completed_tasks']


@pytest.mark.django_db
def test_choice(module, moderation_task_factory, proposal_factory):
task1 = moderation_task_factory(module=module)
task2 = moderation_task_factory()
proposal = proposal_factory(module=module)

form = TaskForm(instance=proposal)
choice = form.fields['completed_tasks'].queryset.all()
assert task1 in choice
assert task2 not in choice


@pytest.mark.django_db
def test_show_labels(module, moderation_task_factory, proposal_factory):
proposal = proposal_factory(module=module)
moderation_task_factory()
form = TaskForm(instance=proposal)
assert not form.show_tasks()

moderation_task_factory(module=module)
form = TaskForm(instance=proposal)
assert form.show_tasks()
14 changes: 14 additions & 0 deletions tests/moderatorremark/test_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import pytest


@pytest.mark.django_db
def test_project(moderator_remark):
assert moderator_remark.project == moderator_remark.item.project


@pytest.mark.django_db
def test_content(moderator_remark):
assert moderator_remark.content
moderator_remark.remark = ''
moderator_remark.save()
assert not moderator_remark.content

0 comments on commit 112d728

Please sign in to comment.