lingo/tests/pricing/manager/test_agenda.py

62 lines
2.2 KiB
Python

from unittest import mock
import pytest
from lingo.agendas.models import Agenda, CheckTypeGroup
from tests.utils import login
pytestmark = pytest.mark.django_db
@mock.patch('lingo.pricing.views.refresh_agendas')
def test_refresh_agendas(mock_refresh, app, admin_user):
app = login(app)
resp = app.get('/manage/pricing/agendas/')
resp = resp.click('Refresh agendas')
assert resp.location.endswith('/manage/pricing/agendas/')
resp = resp.follow()
assert "Agendas refreshed." in resp
assert mock_refresh.call_args_list == [mock.call()]
def test_agenda_chrono_link(settings, app, admin_user):
settings.KNOWN_SERVICES = {}
agenda = Agenda.objects.create(label='Foo bar')
app = login(app)
resp = app.get('/manage/pricing/agendas/')
assert '/manage/agendas/%s/settings/' % agenda.slug not in resp
resp = app.get('/manage/pricing/agenda/%s/' % agenda.pk)
assert 'Agenda options' not in resp
assert '/manage/agendas/%s/settings/' % agenda.slug not in resp
settings.KNOWN_SERVICES['chrono'] = {'default': {'url': 'https://chrono.dev/'}}
resp = app.get('/manage/pricing/agendas/')
assert 'https://chrono.dev/manage/agendas/%s/settings/' % agenda.slug in resp
resp = app.get('/manage/pricing/agenda/%s/' % agenda.pk)
assert 'Agenda options' in resp
assert 'https://chrono.dev/manage/agendas/%s/settings/' % agenda.slug in resp
def test_detail_agenda_redirect(app, admin_user):
agenda = Agenda.objects.create(label='Foo Bar')
app = login(app)
resp = app.get('/manage/pricing/agenda/%s/' % agenda.slug, status=302)
assert resp.location.endswith('/manage/pricing/agenda/%s/' % agenda.pk)
def test_edit_agenda_check_type_group(app, admin_user):
agenda = Agenda.objects.create(label='Foo bar')
group = CheckTypeGroup.objects.create(label='Foo bar')
app = login(app)
resp = app.get('/manage/pricing/agenda/%s/' % agenda.pk)
assert 'No check types configured for this agenda.' in resp
resp = resp.click(href='/manage/pricing/agenda/%s/check-options' % agenda.pk)
resp.form['check_type_group'] = group.pk
resp = resp.form.submit().follow()
agenda.refresh_from_db()
assert agenda.check_type_group == group
assert 'Check type group: Foo bar' in resp