Exemple #1
0
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'
Exemple #2
0
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_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_contributons_can_preview_their_own_aids(client, user, contributor):
    client.force_login(contributor)
    aid = AidFactory(status='draft', author=user)
    url = aid.get_absolute_url()
    res = client.get(url)
    assert res.status_code == 404

    aid.author = contributor
    aid.save()
    res = client.get(url)
    assert res.status_code == 200
    assert 'Cette aide <strong>n\'est actuellement pas affichée sur le site</strong>.' in res.content.decode()  # noqa
def test_aid_eligibility():
    aid_1 = AidFactory()
    aid_2 = AidFactory()
    eligibility_test_1 = EligibilityTestFactory()
    aid_2.eligibility_test = eligibility_test_1
    aid_2.save()

    assert EligibilityTest.objects.count() == 1
    assert Aid.objects.count() == 2
    assert Aid.objects.has_eligibility_test().count() == 1
    assert aid_1.has_eligibility_test() is False
    assert aid_2.has_eligibility_test() is True
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
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