def test_only_published_aids_are_displayed(client): aid = AidFactory(status='draft') url = aid.get_absolute_url() res = client.get(url) assert res.status_code == 404 aid.status = 'reviewable' aid.save() res = client.get(url) assert res.status_code == 404 aid.status = 'published' aid.save() res = client.get(url) assert res.status_code == 200
def test_edition_of_aid_status(client, contributor): """Test that the publication workflow works as expected.""" aid = AidFactory(status='draft', author=contributor) client.force_login(contributor) update_status_url = reverse('aid_status_update_view', args=[aid.slug]) res = client.get(update_status_url) assert res.status_code == 405 # Method not allowed, only post res = client.post(update_status_url, {'current_status': 'draft'}) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'reviewable' res = client.post(update_status_url, {'current_status': 'reviewable'}) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'draft' aid.status = 'published' aid.save() res = client.post(update_status_url, {'current_status': 'published'}) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'draft'
def test_aid_status_workflow(client, contributor, aid_form_data): """Test that the publication workflow works as expected.""" aid = AidFactory(status='draft', author=contributor) client.force_login(contributor) form_url = reverse('aid_edit_view', args=[aid.slug]) aid_form_data.update({'_action': 'update_status'}) res = client.post(form_url, data=aid_form_data) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'reviewable' # _action is still "update_status" res = client.post(form_url, data=aid_form_data) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'draft' aid.status = 'published' aid.save() res = client.post(form_url, data=aid_form_data) aid.refresh_from_db() assert res.status_code == 302 assert aid.status == 'draft'
def test_amendment_form_is_only_accessible_for_published_aids(client): aid = AidFactory(status='draft') amend_url = reverse('aid_amend_view', args=[aid.slug]) res = client.get(amend_url) assert res.status_code == 404 aid.status = 'reviewable' res = client.get(amend_url) assert res.status_code == 404
def test_unpublish_aid_does_not_remove_published_date(): """when aids are unpublished, we keep the first publication date.""" aid = AidFactory(status='published', date_published=timezone.now()) aid.status = 'draft' aid.save() aid.refresh_from_db() assert aid.status == 'draft' assert aid.date_published is not None
def test_set_review_status_does_not_set_published_date(): aid = AidFactory(status='draft') assert aid.date_published is None aid.status = 'reviewable' aid.save() aid.refresh_from_db() assert aid.status == 'reviewable' assert aid.date_published is None
def test_republish_aid_does_not_override_first_publication_date(): """when aids are republished, we keep the first publication date.""" last_month = timezone.now() - timedelta(days=30) aid = AidFactory(status='draft', date_published=last_month) aid.status = 'published' aid.save() aid.refresh_from_db() assert aid.status == 'published' assert aid.date_published == last_month
def test_set_published_status_does_set_published_date(): """When aids are published, we store the publication date.""" aid = AidFactory(status='draft') assert aid.date_published is None aid.status = 'published' aid.save() aid.refresh_from_db() assert aid.status == 'published' assert aid.date_published is not None