Skip to content

Commit

Permalink
Split GPS tests
Browse files Browse the repository at this point in the history
  • Loading branch information
celine-m-s committed Jun 26, 2024
1 parent 8dec0b3 commit 5075b4a
Show file tree
Hide file tree
Showing 3 changed files with 177 additions and 169 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# name: test_beneficiary_details
'''
<div class="col-12" id="beneficiary_details_container">

<div class="c-box mb-3 mb-lg-5">
<h2>Données administratives</h2>
<hr/>
Expand All @@ -17,7 +17,7 @@
<small>Nom</small>
<strong>Doe</strong>
</li>

<li>
<small>Date de naissance</small>
<strong>01/01/1990</strong>
Expand All @@ -31,116 +31,116 @@
</li>
<li>
<small>Téléphone</small>

<strong>06 12 34 56 78</strong>
<button class="btn-link" data-bs-placement="top" data-bs-title="Copié!" data-bs-toggle="tooltip" data-bs-trigger="manual" data-it-clipboard-button="copy" data-it-copy-to-clipboard="0612345678" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="copied_user_phone">
<i class="ri-file-copy-line"></i>
</button>

</li>
<li>
<small>Adresse</small>

<address>12 rue Georges Bizet, 35000 Rennes</address>

</li>

<li>
<small>Numéro de sécurité sociale</small>

<strong>290010101010125</strong>

</li>
</ul>

</div>
<div class="col-6">
<ul class="list-data mb-3">
<li>
<small>Niveau de formation</small>

<strong>Formation de niveau BAC</strong>

</li>








<li>
<small>Identifiant France Travail (ex Pôle emploi)</small>


<i class="text-disabled">Non renseigné</i>

</li>

</ul>
</div>
</div>
</div>




<div class="c-box mb-3 mb-lg-5" id="gps_intervenants">

<h2>Intervenant</h2>
<hr/>
<div class="p-0 m-0">


<div class="c-box--results__header px-0 gps_intervenant">
<div class="d-flex flex-column flex-lg-row gap-2 gap-lg-3">

<div class="c-box--results__summary flex-grow-1">
<i aria-hidden="true" class="ri-user-line"></i>

<div>
<h3>
Pierre DUPONT
<span class="font-weight-normal fs-6 fst-italic">


(prescripteur pour Les Olivades)

</span>
</h3>

<div class="d-flex flex-column flex-md-column gap-1 gap-md-2">
<span>
<i aria-hidden="true" class="ri-mail-line font-weight-normal me-1"></i>pierre.dupont@test.local
</span>


<span>
<i aria-hidden="true" class="ri-phone-line font-weight-normal me-1"></i>06 12 34 56 78
</span>



<span>
<i aria-hidden="true" class="ri-calendar-line font-weight-normal me-1"></i>Suivi depuis le <strong>21/06/2024</strong>
</span>

<span>
<i aria-hidden="true" class="ri-map-pin-user-line font-weight-normal me-1"></i><strong>Référent</strong>
</span>

</div>
</div>
</div>
</div>
</div>


</div>

</div>

</div>
'''
# ---
Expand Down Expand Up @@ -182,7 +182,7 @@
'''
<div class="my-3 my-md-4 s-box__row row membership-card">
<div class="c-box--results__header">

<div class="c-box--results__summary">
<i aria-hidden="true" class="ri-user-line"></i>
<div>
Expand All @@ -191,67 +191,67 @@
</div>
</div>
</div>

<hr class="m-0 pb-4"/>

<div class="d-flex justify-content-between mb-4">
<div>

<div>


<div>

Vous avez ajouté ce bénéficiaire le <strong>21/06/2024</strong>.
</div>


1 autre professionnel
est
intervenu auprès de ce bénéficiaire.

</div>

</div>


</div>
<div class="d-flex justify-content-between">


<div>


<a aria-label="Ne plus suivre Jane DOE" class="btn btn-warning btn-block w-100 w-md-auto btn-ico" data-bs-body="Vous pourrez toujours suivre ce bénéficiaire de nouveau plus tard." data-bs-confirm-class="btn-danger" data-bs-confirm-text="Ne plus suivre" data-bs-confirm-url="/gps/groups/34/leave" data-bs-target="#confirm_modal" data-bs-title="Êtes-vous sûr de ne plus vouloir suivre Jane DOE ?" data-bs-toggle="modal" href="/users/details/7614fc4b-aef9-4694-ab17-12324300180a">
<i aria-hidden="true" class="ri-user-unfollow-line"></i>
<span>Ne plus suivre</span>

</a>



</div>


<div>



<a aria-label="Devenir référent de Jane DOE" class="btn btn-outline-success btn-block w-100 w-md-auto btn-ico" data-bs-body="Vous pourrez toujours ne plus être référent de ce bénéficiaire plus tard." data-bs-confirm-class="btn-success" data-bs-confirm-text="Devenir référent" data-bs-confirm-url="/gps/groups/34/toggle_referent" data-bs-target="#confirm_modal" data-bs-title="Êtes-vous sûr de vouloir devenir référent de Jane DOE ?" data-bs-toggle="modal" href="/users/details/7614fc4b-aef9-4694-ab17-12324300180a">

<i aria-hidden="true" class="ri-map-pin-user-line font-weight-normal me-1"></i>
<span>Devenir référent</span>

</a>


<a aria-label="Consulter la fiche de Jane DOE" class="btn btn-outline-primary btn-block btn-ico w-100 w-md-auto" href="/users/details/7614fc4b-aef9-4694-ab17-12324300180a">
<i aria-hidden="true" class="ri-eye-line ri-xl font-weight-medium"></i>
<span>Consulter la fiche</span>
</a>
</div>


</div>
</div>
'''
Expand Down
94 changes: 94 additions & 0 deletions tests/gps/test_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import datetime

import pytest
from django.conf import settings
from pytest_django.asserts import assertNumQueries

from itou.gps.models import FollowUpGroup, FollowUpGroupMembership
from tests.companies.factories import CompanyMembershipFactory
from tests.gps.factories import FollowUpGroupFactory, FollowUpGroupMembershipFactory
from tests.prescribers.factories import PrescriberMembershipFactory
from tests.users.factories import (
EmployerFactory,
JobSeekerFactory,
PrescriberFactory,
)


def test_membership_is_from_bulk_creation():
membership = FollowUpGroupMembershipFactory()
assert not membership.is_from_bulk_creation

membership.created_at = datetime.datetime.combine(
settings.GPS_GROUPS_CREATED_AT_DATE, datetime.time(), tzinfo=datetime.UTC
)
assert membership.is_from_bulk_creation


def test_follow_beneficiary():
beneficiary = JobSeekerFactory()
prescriber = PrescriberFactory(membership=True)

FollowUpGroup.objects.follow_beneficiary(beneficiary=beneficiary, user=prescriber, is_referent=True)
group = FollowUpGroup.objects.get()
membership = group.memberships.get()
assert membership.is_active is True
assert membership.is_referent is True
assert membership.creator == prescriber

membership.is_active = False
membership.is_referent = False
membership.save()

FollowUpGroup.objects.follow_beneficiary(beneficiary=beneficiary, user=prescriber, is_referent=True)
group = FollowUpGroup.objects.get()
membership = group.memberships.get()
assert membership.is_active is True
assert membership.is_referent is True

membership.is_active = False
membership.save()

FollowUpGroup.objects.follow_beneficiary(beneficiary=beneficiary, user=prescriber, is_referent=False)
group = FollowUpGroup.objects.get()
membership = group.memberships.get()
assert membership.is_active is True
assert membership.is_referent is False

other_member = EmployerFactory()
FollowUpGroup.objects.follow_beneficiary(beneficiary=beneficiary, user=other_member, is_referent=True)
assert group.memberships.count() == 2
other_membership = group.memberships.get(member=other_member)
assert other_membership.is_referent is True # No limit to the number of referent


@pytest.mark.parametrize(
"UserFactory,MembershipFactory,relation_name",
[
(EmployerFactory, CompanyMembershipFactory, "company"),
(PrescriberFactory, PrescriberMembershipFactory, "organization"),
],
)
def test_manager_organizations_names(UserFactory, MembershipFactory, relation_name):
user = UserFactory()
first_membership = MembershipFactory(is_active=True, is_admin=False, user=user)
admin_membership = MembershipFactory(is_active=True, is_admin=True, user=user)
last_membership = MembershipFactory(is_active=True, is_admin=False, user=user)
FollowUpGroupFactory(memberships=True, memberships__member=user)
with assertNumQueries(1):
group_membership = FollowUpGroupMembership.objects.with_members_organizations_names().get(member_id=user.pk)

# The organization we are admin of should come first
assert group_membership.organization_name == getattr(admin_membership, relation_name).name
admin_membership.delete()

group_membership = FollowUpGroupMembership.objects.with_members_organizations_names().get(member_id=user.pk)
# Then it's ordered by membership creation date.
assert group_membership.organization_name == getattr(first_membership, relation_name).name

# No membership
first_membership.delete()
last_membership.delete()

group_membership = FollowUpGroupMembership.objects.with_members_organizations_names().get(member_id=user.pk)
assert not group_membership.organization_name
Loading

0 comments on commit 5075b4a

Please sign in to comment.