Exemplo n.º 1
0
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
Exemplo n.º 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'
Exemplo n.º 3
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'
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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