Projet

Général

Profil

0001-caluire-axel-hide-closed-activities-on-get_agenda-55.patch

Nicolas Roche (absent jusqu'au 3 avril), 21 juillet 2021 17:32

Télécharger (4,73 ko)

Voir les différences:

Subject: [PATCH] caluire-axel: hide closed activities on get_agenda (#55743)

 passerelle/contrib/caluire_axel/models.py |  2 +
 tests/test_caluire_axel.py                | 71 +++++++++++++++++++++++
 2 files changed, 73 insertions(+)
passerelle/contrib/caluire_axel/models.py
612 612
            elif pivot_date.weekday() == 2:
613 613
                # wednesday, jump to next thursday
614 614
                pivot_date += datetime.timedelta(days=1)
615 615

  
616 616
        bookings = []
617 617
        activity_type = self.get_activity_type(activity_id)
618 618
        days = result.json_response['DATA']['PORTAIL']['GETAGENDA'].get('JOUR', [])
619 619
        for day in days:
620
            if day['FERME']:
621
                continue
620 622
            day_date = datetime.datetime.strptime(day['JOURDATE'], axel.json_date_format).date()
621 623
            if day_date.weekday() == 2 and ignore_wednesday:
622 624
                continue
623 625
            if day_date.weekday() >= 5 and ignore_weekend:
624 626
                continue
625 627
            booking = {
626 628
                'id': '%s:%s:%s' % (child_id, activity_id, day['JOURDATE']),
627 629
                'text': dateformat.format(day_date, 'l j F Y'),
tests/test_caluire_axel.py
1563 1563
    assert resp.json['data'][10]['id'] == '50632:ETUDES:2020-10-29'
1564 1564
    assert resp.json['data'][11]['id'] == '50632:GARDERIES:2020-10-29'
1565 1565
    assert resp.json['data'][12]['id'] == '50632:ACCMAT:2020-10-30'
1566 1566
    assert resp.json['data'][13]['id'] == '50632:ECOLELEM:2020-10-30'
1567 1567
    assert resp.json['data'][14]['id'] == '50632:ETUDES:2020-10-30'
1568 1568
    assert resp.json['data'][15]['id'] == '50632:GARDERIES:2020-10-30'
1569 1569

  
1570 1570

  
1571
def test_get_agenda_periscolaire_endpoint_closed_activity(app, resource, family_data, activities_full):
1572
    Link.objects.create(resource=resource, name_id='yyy', family_id='XXX', person_id='42')
1573
    content = '''<PORTAIL>
1574
    <GETAGENDA>
1575
        <CODE>7</CODE>
1576
        <JOUR>
1577
          <JOURDATE>26/10/2020</JOURDATE>
1578
          <MATIN>.</MATIN>
1579
          <MIDI></MIDI>
1580
          <APRESMIDI></APRESMIDI>
1581
          <FERME>O</FERME>
1582
        </JOUR>
1583
        <JOUR>
1584
          <JOURDATE>27/10/2020</JOURDATE>
1585
          <MATIN>.</MATIN>
1586
          <MIDI></MIDI>
1587
          <APRESMIDI></APRESMIDI>
1588
          <FERME>O</FERME>
1589
        </JOUR>
1590
        <JOUR>
1591
          <JOURDATE>28/10/2020</JOURDATE>
1592
          <MATIN>.</MATIN>
1593
          <MIDI></MIDI>
1594
          <APRESMIDI></APRESMIDI>
1595
          <FERME>O</FERME>
1596
        </JOUR>
1597
        <JOUR>
1598
          <JOURDATE>29/10/2020</JOURDATE>
1599
          <MATIN>.</MATIN>
1600
          <MIDI></MIDI>
1601
          <APRESMIDI></APRESMIDI>
1602
          <FERME>O</FERME>
1603
        </JOUR>
1604
        <JOUR>
1605
          <JOURDATE>30/10/2020</JOURDATE>
1606
          <MATIN>.</MATIN>
1607
          <MIDI></MIDI>
1608
          <APRESMIDI></APRESMIDI>
1609
          <FERME>O</FERME>
1610
        </JOUR>
1611
        <JOUR>
1612
          <JOURDATE>31/10/2020</JOURDATE>
1613
          <MATIN>.</MATIN>
1614
          <MIDI></MIDI>
1615
          <APRESMIDI></APRESMIDI>
1616
          <FERME>O</FERME>
1617
        </JOUR>
1618
        <JOUR>
1619
          <JOURDATE>01/11/2020</JOURDATE>
1620
          <MATIN>.</MATIN>
1621
          <MIDI></MIDI>
1622
          <APRESMIDI></APRESMIDI>
1623
          <FERME>O</FERME>
1624
        </JOUR>
1625
    </GETAGENDA>
1626
</PORTAIL>'''
1627
    with mock_data(content, 'GetAgenda'):
1628
        with mock.patch(
1629
            'passerelle.contrib.caluire_axel.models.CaluireAxel.get_family_data',
1630
            return_value=family_data,
1631
        ):
1632
            with mock.patch(
1633
                'passerelle.contrib.caluire_axel.models.CaluireAxel.get_child_activities',
1634
                return_value=activities_full,
1635
            ):
1636
                resp = app.get(
1637
                    '/caluire-axel/test/get_agenda_periscolaire?NameID=yyy&idpersonne=50632&start_date=2020-09-01&end_date=2021-08-31'
1638
                )
1639
    assert len(resp.json['data']) == 0
1640

  
1641

  
1571 1642
@pytest.mark.parametrize('code', [0, -1, -2, -3, -4])
1572 1643
def test_get_agenda_periscolaire_endpoint_wrong_code(app, resource, family_data, activities, code):
1573 1644
    Link.objects.create(resource=resource, name_id='yyy', family_id='XXX', person_id='42')
1574 1645
    content = (
1575 1646
        '''<PORTAIL>
1576 1647
    <GETAGENDA>
1577 1648
        <CODE>%s</CODE>
1578 1649
    </GETAGENDA>
1579
-