Exemplo n.º 1
0
def test_detail_view_private_visible_to_initiator(client, phase_factory,
                                                  idea_factory):
    phase, module, project, idea = setup_phase(phase_factory, idea_factory,
                                               phases.FeedbackPhase)
    idea.module.project.is_public = False
    idea.module.project.save()
    url = idea.get_absolute_url()
    user = idea.project.organisation.initiators.first()
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200
Exemplo n.º 2
0
def test_pre_phase(phase_factory, poll_factory, question, choice, vote, user):
    phase, module, project, _ = setup_phase(phase_factory, poll_factory,
                                            phases.VotingPhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Exemplo n.º 3
0
def test_phase_active(phase_factory, live_question_factory, user):
    phase, _, project, item = setup_phase(phase_factory, live_question_factory,
                                          phases.IssuePhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 4
0
def test_detail_view_private_not_visible_anonymous(client, phase_factory,
                                                   subject_factory):
    phase, module, project, subject = setup_phase(phase_factory,
                                                  subject_factory,
                                                  phases.DebatePhase)
    subject.module.project.access = Access.PRIVATE
    subject.module.project.save()
    url = subject.get_absolute_url()
    response = client.get(url)
    assert response.status_code == 302
    assert redirect_target(response) == 'account_login'
def test_edit_view(client, phase_factory):
    phase, module, project, item = setup_phase(phase_factory, None,
                                               CommentPhase)
    initiator = module.project.organisation.initiators.first()
    url = component.get_base_url(module)
    client.login(username=initiator.email, password='******')
    response = client.get(url)
    assert_template_response(
        response,
        '{{ cookiecutter.project_app_prefix }}_documents/document_dashboard.html'
    )
Exemplo n.º 6
0
def test_phase_active(phase_factory, user):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CollectPhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Exemplo n.º 7
0
def test_phase_active(phase_factory, map_idea_factory, user):
    phase, _, project, item = setup_phase(phase_factory, map_idea_factory,
                                          phases.CollectPhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_phase(phase):
        assert rules.has_perm(perm_name, anonymous, item)
        assert rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 8
0
def test_list_view(client, phase_factory, map_idea_factory, organisation):
    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.FeedbackPhase)
    phase_2, module_2, project_2, mapidea_2 = setup_phase(
        phase_factory, map_idea_factory, phases.FeedbackPhase)
    url = project.get_absolute_url()

    with freeze_phase(phase):
        response = client.get(url)
        assert_template_response(response,
                                 'a4_candy_mapideas/mapidea_list.html')
        assert response.status_code == 200
        assert mapidea in response.context_data['mapidea_list']
        assert mapidea_2 not in response.context_data['mapidea_list']
        assert response.context_data['mapidea_list'][0].comment_count == 0
        assert (response.context_data['mapidea_list'][0].positive_rating_count
                == 0)
        assert (response.context_data['mapidea_list'][0].negative_rating_count
                == 0)
def test_chapter_detail_view(client, phase_factory, chapter_factory,
                             organisation):
    phase, module, project, item = setup_phase(
        phase_factory, None, phases.CommentPhase)
    chapter_factory(module=module, weight=0)
    chapter = chapter_factory(module=module, weight=1)
    url = chapter.get_absolute_url()
    with freeze_phase(phase):
        response = client.get(url)
        assert_template_response(
            response, 'a4_candy_documents/chapter_detail.html')
Exemplo n.º 10
0
def test_detail_view_private_visible_to_initiator(client, phase_factory,
                                                  topic_factory):
    phase, module, project, topic = setup_phase(phase_factory, topic_factory,
                                                phases.PrioritizePhase)
    topic.module.project.access = Access.PRIVATE
    topic.module.project.save()
    url = topic.get_absolute_url()
    user = topic.project.organisation.initiators.first()
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200
Exemplo n.º 11
0
def test_detail_view_private_not_visible_anonymous(client, phase_factory,
                                                   map_idea_factory):
    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.FeedbackPhase)
    mapidea.module.project.is_public = False
    mapidea.module.project.save()
    url = mapidea.get_absolute_url()
    response = client.get(url)
    assert response.status_code == 302
    assert redirect_target(response) == 'account_login'
Exemplo n.º 12
0
def test_pre_phase(phase_factory, chapter_factory, user):
    phase, _, project, item = setup_phase(phase_factory, chapter_factory,
                                          phases.CommentPhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 13
0
def test_pre_phase(phase_factory, topic_factory, user):
    phase, _, project, item = setup_phase(phase_factory, topic_factory,
                                          phases.PrioritizePhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert rules.has_perm(perm_name, anonymous, item)
        assert rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 14
0
def test_paragraph_detail_view(client, phase_factory, chapter_factory,
                               paragraph_factory):
    phase, module, project, item = setup_phase(phase_factory, chapter_factory,
                                               phases.CommentPhase)
    paragraph = paragraph_factory(chapter=item)
    url = paragraph.get_absolute_url()
    with freeze_phase(phase):
        response = client.get(url)
        assert_template_response(
            response,
            '{{ cookiecutter.project_app_prefix }}_documents/paragraph_detail.html'
        )
Exemplo n.º 15
0
def test_chapter_detail_view(client, phase_factory, chapter_factory):
    phase, module, project, item = setup_phase(phase_factory, None,
                                               phases.CommentPhase)
    chapter_factory(module=module, weight=0)
    chapter = chapter_factory(module=module, weight=1)
    url = chapter.get_absolute_url()
    with freeze_phase(phase):
        response = client.get(url)
        assert_template_response(
            response,
            '{{ cookiecutter.project_app_prefix }}_documents/chapter_detail.html'
        )
Exemplo n.º 16
0
def test_post_phase_project_archived(phase_factory, map_idea_factory, user):
    phase, _, project, item = setup_phase(phase_factory, map_idea_factory,
                                          phases.RatingPhase,
                                          module__project__is_archived=True)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_archived
    with freeze_post_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 17
0
def test_phase_active_project_draft(phase_factory, idea_factory, user):
    phase, _, project, item = setup_phase(phase_factory, idea_factory,
                                          phases.CollectPhase,
                                          module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 18
0
def test_detail_view_private_visible_to_moderator(client, phase_factory,
                                                  map_idea_factory):
    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.FeedbackPhase)
    mapidea.module.project.access = Access.PRIVATE
    mapidea.module.project.save()
    url = mapidea.get_absolute_url()
    user = mapidea.project.moderators.first()
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200
Exemplo n.º 19
0
def test_detail_view_private_visible_to_moderator(client, phase_factory,
                                                  subject_factory):
    phase, module, project, subject = setup_phase(phase_factory,
                                                  subject_factory,
                                                  phases.DebatePhase)
    subject.module.project.access = Access.PRIVATE
    subject.module.project.save()
    url = subject.get_absolute_url()
    user = subject.project.moderators.first()
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200
Exemplo n.º 20
0
def test_detail_view(client, phase_factory, map_idea_factory):
    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.FeedbackPhase)
    url = mapidea.get_absolute_url()
    with freeze_phase(phase):
        response = client.get(url)
        assert_template_response(
            response,
            '{{ cookiecutter.project_app_prefix }}_mapideas/mapidea_detail.html'
        )
        assert response.status_code == 200
Exemplo n.º 21
0
def test_post_phase_project_archived(phase_factory, user):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CollectPhase,
                                            module__project__is_archived=True)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_archived
    with freeze_post_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
def test_detail_view_private_not_visible_normal_user(client, user,
                                                     phase_factory,
                                                     topic_factory):
    phase, module, project, topic = setup_phase(phase_factory, topic_factory,
                                                phases.PrioritizePhase)
    topic.module.project.is_public = False
    topic.module.project.save()
    assert user not in topic.module.project.participants.all()
    client.login(username=user.email, password='******')
    url = topic.get_absolute_url()
    response = client.get(url)
    assert response.status_code == 403
Exemplo n.º 23
0
def test_phase_active(phase_factory, idea_factory, user, member_factory):
    phase, _, project, item = setup_phase(phase_factory, idea_factory,
                                          phases.CollectPhase)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, member.member, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 24
0
def test_pre_phase(phase_factory, user, member_factory):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CommentPhase)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert not rules.has_perm(perm_name, member.member, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Exemplo n.º 25
0
def test_phase_active(phase_factory, poll_factory, user):
    phase, _, project, item = setup_phase(phase_factory, poll_factory,
                                          phases.VotingPhase)
    anonymous, moderator, initiator = setup_users(project)
    creator = item.creator

    assert project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, creator, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Exemplo n.º 26
0
def test_phase_active_project_draft(phase_factory, user):
    phase, module, project, _ = setup_phase(phase_factory,
                                            None,
                                            phases.PrioritizePhase,
                                            module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Exemplo n.º 27
0
def test_creator_cannot_delete_in_wrong_phase(client, phase_factory,
                                              map_idea_factory):

    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.RatingPhase)
    url = reverse('mapidea-delete', kwargs={'slug': mapidea.slug})
    with freeze_phase(phase):
        count = models.MapIdea.objects.all().count()
        assert count == 1
        client.login(username=mapidea.creator.email, password='******')
        response = client.post(url)
        assert response.status_code == 403
Exemplo n.º 28
0
def test_detail_view_private_not_visible_normal_user(client, user,
                                                     phase_factory,
                                                     map_idea_factory):
    phase, module, project, mapidea = setup_phase(phase_factory,
                                                  map_idea_factory,
                                                  phases.FeedbackPhase)
    mapidea.module.project.is_public = False
    mapidea.module.project.save()
    assert user not in mapidea.module.project.participants.all()
    client.login(username=user.email, password='******')
    url = mapidea.get_absolute_url()
    response = client.get(url)
    assert response.status_code == 403
Exemplo n.º 29
0
def test_detail_view_private_visible_to_participant(client, user,
                                                    phase_factory,
                                                    topic_factory):
    phase, module, project, topic = setup_phase(phase_factory, topic_factory,
                                                phases.PrioritizePhase)
    topic.module.project.access = Access.PRIVATE
    topic.module.project.save()
    url = topic.get_absolute_url()
    assert user not in topic.module.project.participants.all()
    topic.module.project.participants.add(user)
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200
Exemplo n.º 30
0
def test_detail_view_private_visible_to_participant(client, user,
                                                    phase_factory,
                                                    idea_factory):
    phase, module, project, idea = setup_phase(phase_factory, idea_factory,
                                               phases.FeedbackPhase)
    idea.module.project.is_public = False
    idea.module.project.save()
    url = idea.get_absolute_url()
    assert user not in idea.module.project.participants.all()
    idea.module.project.participants.add(user)
    client.login(username=user.email, password='******')
    response = client.get(url)
    assert response.status_code == 200