2647 |
2647 |
assert resp.json['data'][4]['prefill'] is True
|
2648 |
2648 |
|
2649 |
2649 |
|
|
2650 |
def test_clae_booking_activity_prefill_endpoint_axel_error(app, resource):
|
|
2651 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
2652 |
with mock.patch('passerelle.contrib.toulouse_axel.models.enfants_activites') as operation:
|
|
2653 |
operation.side_effect = AxelError('FooBar')
|
|
2654 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2655 |
assert resp.json['err_desc'] == "Axel error: FooBar"
|
|
2656 |
assert resp.json['err'] == 'error'
|
|
2657 |
|
|
2658 |
filepath = os.path.join(os.path.dirname(__file__), 'data/toulouse_axel/child_activities.xml')
|
|
2659 |
with open(filepath) as xml:
|
|
2660 |
content = xml.read()
|
|
2661 |
with mock_getdata(content, 'EnfantsActivites'):
|
|
2662 |
with mock.patch('passerelle.contrib.toulouse_axel.models.reservation_periode') as operation:
|
|
2663 |
operation.side_effect = AxelError('FooBar')
|
|
2664 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2665 |
assert resp.json['err_desc'] == "Axel error: FooBar"
|
|
2666 |
assert resp.json['err'] == 'error'
|
|
2667 |
|
|
2668 |
|
|
2669 |
@pytest.mark.parametrize('value', ['foo', '20/01/2020', '2020'])
|
|
2670 |
def test_clae_booking_activity_prefill_endpoint_bad_date_format(app, resource, value):
|
|
2671 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
2672 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=%s&activity_type=MAT' % value, status=400)
|
|
2673 |
assert resp.json['err_desc'] == "bad date format, should be YYYY-MM-DD"
|
|
2674 |
assert resp.json['err'] == 'bad-request'
|
|
2675 |
|
|
2676 |
|
|
2677 |
def test_clae_booking_activity_prefill_endpoint_activity_type(app, resource):
|
|
2678 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
2679 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=FOO', status=400)
|
|
2680 |
assert resp.json['err_desc'] == "bad activity_type, should be MAT, MIDI, SOIR or GARD"
|
|
2681 |
assert resp.json['err'] == 'bad-request'
|
|
2682 |
|
|
2683 |
|
|
2684 |
def test_clae_booking_activity_prefill_endpoint_no_result(app, resource, child_activities_data):
|
|
2685 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2686 |
assert resp.json['err_desc'] == "Person not found"
|
|
2687 |
assert resp.json['err'] == 'not-found'
|
|
2688 |
|
|
2689 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
2690 |
filepath = os.path.join(os.path.dirname(__file__), 'data/toulouse_axel/child_activities.xml')
|
|
2691 |
with open(filepath) as xml:
|
|
2692 |
content = xml.read()
|
|
2693 |
with mock_getdata(content, 'EnfantsActivites'):
|
|
2694 |
with mock.patch('passerelle.contrib.toulouse_axel.models.reservation_periode') as operation:
|
|
2695 |
operation.side_effect = AxelError('FooBar')
|
|
2696 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=4242&booking_date=2020-01-20&activity_type=MAT')
|
|
2697 |
assert resp.json['err_desc'] == "Child not found"
|
|
2698 |
assert resp.json['err'] == 'not-found'
|
|
2699 |
|
|
2700 |
content = """<PORTAIL>
|
|
2701 |
<DUI>
|
|
2702 |
<IDDUI>XXX</IDDUI>
|
|
2703 |
<ENFANT>
|
|
2704 |
<IDPERSONNE>4242</IDPERSONNE>
|
|
2705 |
<ACTIVITE>
|
|
2706 |
<ANNEEREFERENCE>2019</ANNEEREFERENCE>
|
|
2707 |
<IDACTIVITE>A19P1M1</IDACTIVITE>
|
|
2708 |
<JOUR>00000</JOUR>
|
|
2709 |
</ACTIVITE>
|
|
2710 |
</ENFANT>
|
|
2711 |
</DUI>
|
|
2712 |
</PORTAIL>"""
|
|
2713 |
activities = child_activities_data['ENFANT'][0]
|
|
2714 |
with mock_getdata(content, 'ReservationPeriode'):
|
|
2715 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_child_activities', return_value=activities):
|
|
2716 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2717 |
assert resp.json['err_desc'] == "Child not found"
|
|
2718 |
assert resp.json['err'] == 'not-found'
|
|
2719 |
|
|
2720 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.clae_booking_activity_possible_days') as possible_days:
|
|
2721 |
possible_days.return_value = {'data': []}
|
|
2722 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2723 |
assert resp.json['err'] == 0
|
|
2724 |
assert resp.json['data'] == []
|
|
2725 |
|
|
2726 |
|
|
2727 |
def test_clae_booking_activity_prefill_endpoint(app, resource, child_activities_data):
|
|
2728 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
2729 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.clae_booking_activity_possible_days') as possible_days:
|
|
2730 |
possible_days.return_value = {
|
|
2731 |
'data': [
|
|
2732 |
{
|
|
2733 |
'id': '3535-MAT-A19P1M1-monday',
|
|
2734 |
'prefill': True,
|
|
2735 |
},
|
|
2736 |
{
|
|
2737 |
'id': '3535-MAT-A19P1M1-tuesday',
|
|
2738 |
'prefill': False,
|
|
2739 |
},
|
|
2740 |
{
|
|
2741 |
'id': '3535-MAT-A19P1M1-wednesday',
|
|
2742 |
'prefill': None,
|
|
2743 |
},
|
|
2744 |
{
|
|
2745 |
'id': '3535-MAT-A19P1M1-thursday',
|
|
2746 |
'prefill': False,
|
|
2747 |
},
|
|
2748 |
{
|
|
2749 |
'id': '3535-MAT-A19P1M1-friday',
|
|
2750 |
'prefill': True,
|
|
2751 |
},
|
|
2752 |
]
|
|
2753 |
}
|
|
2754 |
resp = app.get('/toulouse-axel/test/clae_booking_activity_prefill?NameID=yyy&idpersonne=3535&booking_date=2020-01-20&activity_type=MAT')
|
|
2755 |
assert resp.json['err'] == 0
|
|
2756 |
assert resp.json['data'] == ['3535-MAT-A19P1M1-monday', '3535-MAT-A19P1M1-friday']
|
|
2757 |
|
|
2758 |
|
2650 |
2759 |
def test_are_children_registered_axel_error(resource):
|
2651 |
2760 |
with mock.patch('passerelle.contrib.toulouse_axel.models.enfants_activites') as operation:
|
2652 |
2761 |
operation.side_effect = AxelError('FooBar')
|
2653 |
|
-
|