20 |
20 |
import json
|
21 |
21 |
import mock
|
22 |
22 |
import os
|
|
23 |
import xml.etree.ElementTree as ET
|
23 |
24 |
|
24 |
25 |
import pytest
|
25 |
26 |
import xmlschema
|
... | ... | |
66 |
67 |
return json.loads(content)
|
67 |
68 |
|
68 |
69 |
|
|
70 |
@pytest.fixture
|
|
71 |
def family_data():
|
|
72 |
filepath = os.path.join(os.path.dirname(__file__), 'data/toulouse_axel/family_info.xml')
|
|
73 |
with open(filepath) as xml:
|
|
74 |
content = xml.read()
|
|
75 |
resp = '''
|
|
76 |
<?xml version="1.0"?>
|
|
77 |
<PORTAILSERVICE>
|
|
78 |
<RESULTAT>
|
|
79 |
<TYPE>RefFamilleDui</TYPE>
|
|
80 |
<STATUS>OK</STATUS>
|
|
81 |
<DATE>10/10/2010 10:10:01</DATE>
|
|
82 |
<COMMENTAIRES><![CDATA[]]></COMMENTAIRES>
|
|
83 |
</RESULTAT>
|
|
84 |
<DATA>
|
|
85 |
%s
|
|
86 |
</DATA>
|
|
87 |
</PORTAILSERVICE>
|
|
88 |
'''.strip() % content
|
|
89 |
return ref_famille_dui.response_converter.decode(ET.fromstring(resp))['DATA']['PORTAIL']['DUI']
|
|
90 |
|
|
91 |
|
69 |
92 |
@pytest.fixture
|
70 |
93 |
def flat_update_params():
|
71 |
94 |
filepath = os.path.join(os.path.dirname(__file__), 'data/toulouse_axel/flat_update_family_info.json')
|
... | ... | |
564 |
587 |
])
|
565 |
588 |
|
566 |
589 |
|
567 |
|
def test_update_family_info_endpoint_axel_error(app, resource, update_params):
|
|
590 |
def test_update_family_info_endpoint_axel_error(app, resource, update_params, family_data):
|
568 |
591 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
592 |
|
569 |
593 |
with mock.patch('passerelle.contrib.toulouse_axel.models.form_maj_famille_dui') as operation:
|
570 |
594 |
operation.side_effect = AxelError('FooBar')
|
571 |
|
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
|
595 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
596 |
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
572 |
597 |
assert resp.json['err_desc'] == "Axel error: FooBar"
|
573 |
598 |
assert resp.json['err'] == 'error'
|
574 |
599 |
assert 'error_post_data' in resp.json['data']
|
... | ... | |
580 |
605 |
assert resp.json['err'] == 'not-found'
|
581 |
606 |
|
582 |
607 |
|
583 |
|
def test_update_family_info_endpoint(app, resource, update_params):
|
|
608 |
def test_update_family_info_endpoint(app, resource, update_params, family_data):
|
584 |
609 |
link = Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
610 |
|
585 |
611 |
content = "<PORTAIL/>"
|
586 |
612 |
with mock_getdata(content, 'FormMajFamilleDui'):
|
587 |
|
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
|
613 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
614 |
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
588 |
615 |
assert resp.json['err'] == 0
|
589 |
616 |
assert resp.json['dui'] == 'XXX'
|
590 |
617 |
assert resp.json['updated'] is True
|
... | ... | |
594 |
621 |
|
595 |
622 |
with mock.patch('passerelle.contrib.toulouse_axel.models.form_maj_famille_dui') as operation:
|
596 |
623 |
operation.return_value = OperationResult(json_response={}, xml_request='', xml_response='')
|
597 |
|
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
|
624 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
625 |
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
598 |
626 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['IDDUI'] == 'XXX'
|
599 |
627 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['DATEDEMANDE'] == datetime.date.today().strftime('%Y-%m-%d')
|
600 |
628 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['QUIACTUALISEDUI'] == '1'
|
... | ... | |
603 |
631 |
link.save()
|
604 |
632 |
with mock.patch('passerelle.contrib.toulouse_axel.models.form_maj_famille_dui') as operation:
|
605 |
633 |
operation.return_value = OperationResult(json_response={}, xml_request='', xml_response='')
|
606 |
|
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
|
634 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
635 |
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=update_params)
|
607 |
636 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['IDDUI'] == 'XXX'
|
608 |
637 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['DATEDEMANDE'] == datetime.date.today().strftime('%Y-%m-%d')
|
609 |
638 |
assert operation.call_args_list[0][0][1]['PORTAIL']['DUI']['QUIACTUALISEDUI'] == '2'
|
610 |
639 |
|
611 |
640 |
|
612 |
|
def test_update_family_info_flat_endpoint(app, resource, flat_update_params):
|
|
641 |
def test_update_family_info_flat_endpoint(app, resource, flat_update_params, family_data):
|
613 |
642 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
614 |
643 |
content = "<PORTAIL/>"
|
615 |
644 |
with mock_getdata(content, 'FormMajFamilleDui'):
|
616 |
|
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=flat_update_params)
|
|
645 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
646 |
resp = app.post_json('/toulouse-axel/test/update_family_info?NameID=yyy', params=flat_update_params)
|
617 |
647 |
assert resp.json['err'] == 0
|
618 |
648 |
assert resp.json['dui'] == 'XXX'
|
619 |
649 |
assert resp.json['updated'] is True
|
... | ... | |
622 |
652 |
assert 'xml_response' in resp.json['data']
|
623 |
653 |
|
624 |
654 |
|
625 |
|
def test_sanitize_update_family_data_adresse(app, resource, update_params):
|
|
655 |
def test_sanitize_update_family_data_missing_rl_fields(app, resource, update_params, family_data):
|
|
656 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
657 |
|
|
658 |
full_update_params = copy.deepcopy(update_params)
|
|
659 |
for key in ['IDPERSONNE', 'NOM', 'PRENOM', 'NOMJEUNEFILLE', 'DATENAISSANCE', 'CIVILITE']:
|
|
660 |
assert key not in full_update_params['RL1']
|
|
661 |
assert key not in full_update_params['RL2']
|
|
662 |
|
|
663 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
664 |
resource.sanitize_update_family_data(name_id='yyy', post_data=full_update_params)
|
|
665 |
for key in ['IDPERSONNE', 'NOM', 'PRENOM', 'NOMJEUNEFILLE', 'DATENAISSANCE', 'CIVILITE']:
|
|
666 |
assert full_update_params['RL1'][key] == family_data['RL1'][key]
|
|
667 |
assert full_update_params['RL2'][key] == family_data['RL2'][key]
|
|
668 |
assert full_update_params['RL1']['INDICATEURRL'] == '1'
|
|
669 |
assert full_update_params['RL2']['INDICATEURRL'] == '2'
|
|
670 |
|
|
671 |
|
|
672 |
def test_sanitize_update_family_data_missing_revenus_fields(app, resource, update_params, family_data):
|
|
673 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
|
674 |
|
|
675 |
full_update_params = copy.deepcopy(update_params)
|
|
676 |
assert 'NBENFANTSACHARGE' not in update_params['REVENUS']
|
|
677 |
|
|
678 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
679 |
resource.sanitize_update_family_data(name_id='yyy', post_data=full_update_params)
|
|
680 |
assert full_update_params['REVENUS']['NBENFANTSACHARGE'] == family_data['REVENUS']['NBENFANTSACHARGE']
|
|
681 |
|
|
682 |
# if revenus are not set in Axel
|
|
683 |
full_update_params = copy.deepcopy(update_params)
|
|
684 |
family_data.pop('REVENUS')
|
|
685 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
686 |
resource.sanitize_update_family_data(name_id='yyy', post_data=full_update_params)
|
|
687 |
assert full_update_params['REVENUS']['NBENFANTSACHARGE'] is None
|
|
688 |
|
|
689 |
|
|
690 |
def test_sanitize_update_family_data_adresse(app, resource, update_params, family_data):
|
626 |
691 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
627 |
692 |
|
628 |
693 |
# test maj:adresse
|
... | ... | |
630 |
695 |
partial_update_params['maj:adresse'] = False
|
631 |
696 |
for key in partial_update_params['ADRESSE'].keys():
|
632 |
697 |
partial_update_params['ADRESSE'][key] = None # reset fields
|
633 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
698 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
699 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
634 |
700 |
for value in partial_update_params['ADRESSE'].values():
|
635 |
701 |
assert value is None
|
636 |
702 |
|
637 |
703 |
|
638 |
|
def test_sanitize_update_family_data_revenus(app, resource, update_params):
|
|
704 |
def test_sanitize_update_family_data_revenus(app, resource, update_params, family_data):
|
639 |
705 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
640 |
706 |
|
641 |
707 |
# test maj:revenus
|
... | ... | |
643 |
709 |
partial_update_params['maj:revenus'] = False
|
644 |
710 |
for key in partial_update_params['REVENUS'].keys():
|
645 |
711 |
partial_update_params['REVENUS'][key] = None # reset fields
|
646 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
712 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
713 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
647 |
714 |
assert 'REVENUS' not in partial_update_params
|
648 |
715 |
|
649 |
716 |
|
650 |
|
def test_sanitize_update_family_data_rln(app, resource, update_params):
|
|
717 |
def test_sanitize_update_family_data_rln(app, resource, update_params, family_data):
|
651 |
718 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
652 |
719 |
|
653 |
720 |
# test maj:rln
|
... | ... | |
655 |
722 |
partial_update_params['maj:rl1'] = False
|
656 |
723 |
for key in partial_update_params['RL1'].keys():
|
657 |
724 |
partial_update_params['RL1'][key] = None # reset fields
|
658 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
725 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
726 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
659 |
727 |
assert 'RL1' not in partial_update_params
|
660 |
728 |
partial_update_params = copy.deepcopy(update_params)
|
661 |
729 |
partial_update_params['maj:rl2'] = False
|
662 |
730 |
for key in partial_update_params['RL2'].keys():
|
663 |
731 |
partial_update_params['RL2'][key] = None # reset fields
|
664 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
732 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
733 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
665 |
734 |
assert 'RL2' not in partial_update_params
|
666 |
735 |
|
667 |
736 |
|
668 |
|
def test_sanitize_update_family_data_rln_adresse_employeur(app, resource, update_params):
|
|
737 |
def test_sanitize_update_family_data_rln_adresse_employeur(app, resource, update_params, family_data):
|
669 |
738 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
670 |
739 |
|
671 |
740 |
# test maj:rln_adresse_employeur
|
... | ... | |
673 |
742 |
partial_update_params['maj:rl1_adresse_employeur'] = False
|
674 |
743 |
for key in partial_update_params['RL1']['ADREMPLOYEUR'].keys():
|
675 |
744 |
partial_update_params['RL1']['ADREMPLOYEUR'][key] = None # reset fields
|
676 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
745 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
746 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
677 |
747 |
assert 'ADREMPLOYEUR' not in partial_update_params['RL1']
|
678 |
748 |
partial_update_params = copy.deepcopy(update_params)
|
679 |
749 |
partial_update_params['maj:rl2_adresse_employeur'] = False
|
680 |
750 |
for key in partial_update_params['RL2']['ADREMPLOYEUR'].keys():
|
681 |
751 |
partial_update_params['RL2']['ADREMPLOYEUR'][key] = None # reset fields
|
682 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
752 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
753 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
683 |
754 |
assert 'ADREMPLOYEUR' not in partial_update_params['RL2']
|
684 |
755 |
# combine with maj:rln
|
685 |
756 |
partial_update_params = copy.deepcopy(update_params)
|
686 |
757 |
partial_update_params['maj:rl1'] = False
|
687 |
758 |
partial_update_params['maj:rl1_adresse_employeur'] = False
|
688 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
759 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
760 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
689 |
761 |
assert 'RL1' not in partial_update_params
|
690 |
762 |
partial_update_params = copy.deepcopy(update_params)
|
691 |
763 |
partial_update_params['maj:rl2'] = False
|
692 |
764 |
partial_update_params['maj:rl2_adresse_employeur'] = False
|
693 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
765 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
766 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
694 |
767 |
assert 'RL2' not in partial_update_params
|
695 |
768 |
|
696 |
769 |
# test maj:rln_adresse_employeur not set
|
697 |
770 |
for val in [None, '']:
|
698 |
771 |
partial_update_params = copy.deepcopy(update_params)
|
699 |
772 |
partial_update_params['maj:rl1_adresse_employeur'] = val
|
700 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
773 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
774 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
701 |
775 |
assert 'ADREMPLOYEUR' not in partial_update_params['RL1']
|
702 |
776 |
partial_update_params = copy.deepcopy(update_params)
|
703 |
777 |
partial_update_params['maj:rl2_adresse_employeur'] = val
|
704 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
778 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
779 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
705 |
780 |
assert 'ADREMPLOYEUR' not in partial_update_params['RL2']
|
706 |
781 |
|
707 |
782 |
|
708 |
|
def test_sanitize_update_family_data_enfant_n(app, resource, update_params):
|
|
783 |
def test_sanitize_update_family_data_enfant_n(app, resource, update_params, family_data):
|
709 |
784 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
710 |
785 |
|
711 |
786 |
# test maj:enfant_n
|
... | ... | |
715 |
790 |
if key == 'IDPERSONNE':
|
716 |
791 |
continue
|
717 |
792 |
partial_update_params['ENFANT'][0][key] = None # reset fields
|
718 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
793 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
794 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
719 |
795 |
assert len(partial_update_params['ENFANT']) == 1
|
720 |
796 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
721 |
797 |
|
... | ... | |
725 |
801 |
if key == 'IDPERSONNE':
|
726 |
802 |
continue
|
727 |
803 |
partial_update_params['ENFANT'][1][key] = None # reset fields
|
728 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
804 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
805 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
729 |
806 |
assert len(partial_update_params['ENFANT']) == 1
|
730 |
807 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "4242"
|
731 |
808 |
|
... | ... | |
734 |
811 |
partial_update_params['maj:enfant_1'] = False
|
735 |
812 |
for key in partial_update_params['ENFANT'][1].keys():
|
736 |
813 |
partial_update_params['ENFANT'][1][key] = None # reset fields
|
737 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
814 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
815 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
738 |
816 |
assert len(partial_update_params['ENFANT']) == 1
|
739 |
817 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "4242"
|
740 |
818 |
|
... | ... | |
742 |
820 |
partial_update_params = copy.deepcopy(update_params)
|
743 |
821 |
partial_update_params['maj:enfant_0'] = False
|
744 |
822 |
partial_update_params['maj:enfant_1'] = False
|
745 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
823 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
824 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
746 |
825 |
assert 'ENFANT' not in partial_update_params
|
747 |
826 |
|
748 |
827 |
# unknown child
|
749 |
828 |
partial_update_params = copy.deepcopy(update_params)
|
750 |
829 |
partial_update_params['maj:enfant_5'] = False
|
751 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
830 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
831 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
752 |
832 |
assert len(partial_update_params['ENFANT']) == 2
|
753 |
833 |
|
754 |
834 |
|
755 |
|
def test_sanitize_update_family_data_enfant_n_assurance(app, resource, update_params):
|
|
835 |
def test_sanitize_update_family_data_enfant_n_assurance(app, resource, update_params, family_data):
|
756 |
836 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
757 |
837 |
|
758 |
838 |
# test maj:enfant_n_assurance
|
... | ... | |
761 |
841 |
for key in partial_update_params['ENFANT'][1]['ASSURANCE'].keys():
|
762 |
842 |
partial_update_params['ENFANT'][1]['ASSURANCE'][key] = None # reset fields
|
763 |
843 |
partial_update_params['maj:enfant_0'] = False # check that ordering is not a problem
|
764 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
844 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
845 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
765 |
846 |
assert len(partial_update_params['ENFANT']) == 1
|
766 |
847 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
767 |
848 |
assert 'ASSURANCE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
770 |
851 |
partial_update_params['maj:enfant_1'] = False
|
771 |
852 |
partial_update_params['maj:enfant_1_assurance'] = False
|
772 |
853 |
partial_update_params['maj:enfant_0'] = False
|
773 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
854 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
855 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
774 |
856 |
assert 'ENFANT' not in partial_update_params
|
775 |
857 |
|
776 |
858 |
# test maj:enfant_n_assurance not set
|
777 |
859 |
for val in [None, '']:
|
778 |
860 |
partial_update_params = copy.deepcopy(update_params)
|
779 |
861 |
partial_update_params['maj:enfant_1_assurance'] = val
|
780 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
862 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
863 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
781 |
864 |
assert 'ASSURANCE' not in partial_update_params['ENFANT'][0]
|
782 |
865 |
|
783 |
866 |
|
784 |
|
def test_sanitize_update_family_data_enfant_n_contact(app, resource, update_params):
|
|
867 |
def test_sanitize_update_family_data_enfant_n_contact(app, resource, update_params, family_data):
|
785 |
868 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
786 |
869 |
|
787 |
870 |
# test maj:enfant_n_contact
|
... | ... | |
791 |
874 |
for key in contact.keys():
|
792 |
875 |
partial_update_params['ENFANT'][0]['CONTACT'][i][key] = None # reset fields
|
793 |
876 |
partial_update_params['maj:enfant_1'] = False
|
794 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
877 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
878 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
795 |
879 |
assert len(partial_update_params['ENFANT']) == 1
|
796 |
880 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "4242"
|
797 |
881 |
assert 'CONTACT' not in partial_update_params['ENFANT'][0]
|
... | ... | |
800 |
884 |
partial_update_params['maj:enfant_1'] = False
|
801 |
885 |
partial_update_params['maj:enfant_1_contact'] = False
|
802 |
886 |
partial_update_params['maj:enfant_0'] = False
|
803 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
887 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
888 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
804 |
889 |
assert 'ENFANT' not in partial_update_params
|
805 |
890 |
|
806 |
891 |
# test maj:enfant_n_contact not set
|
... | ... | |
808 |
893 |
partial_update_params = copy.deepcopy(update_params)
|
809 |
894 |
partial_update_params['maj:enfant_0_contact'] = val
|
810 |
895 |
partial_update_params['maj:enfant_1'] = False
|
811 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
896 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
897 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
812 |
898 |
assert 'CONTACT' not in partial_update_params['ENFANT'][0]
|
813 |
899 |
|
814 |
900 |
|
815 |
|
def test_sanitize_update_family_data_enfant_n_sanitaire(app, resource, update_params):
|
|
901 |
def test_sanitize_update_family_data_enfant_n_sanitaire(app, resource, update_params, family_data):
|
816 |
902 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
817 |
903 |
|
818 |
904 |
# test maj:enfant_n_sanitaire
|
... | ... | |
821 |
907 |
for key in partial_update_params['ENFANT'][1]['SANITAIRE'].keys():
|
822 |
908 |
partial_update_params['ENFANT'][1]['SANITAIRE'][key] = None # reset fields
|
823 |
909 |
partial_update_params['maj:enfant_0'] = False
|
824 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
910 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
911 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
825 |
912 |
assert len(partial_update_params['ENFANT']) == 1
|
826 |
913 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
827 |
914 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
830 |
917 |
partial_update_params['maj:enfant_1'] = False
|
831 |
918 |
partial_update_params['maj:enfant_1_sanitaire'] = False
|
832 |
919 |
partial_update_params['maj:enfant_0'] = False
|
833 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
920 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
921 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
834 |
922 |
assert 'ENFANT' not in partial_update_params
|
835 |
923 |
|
836 |
924 |
# test maj:enfant_n_sanitaire not set
|
... | ... | |
838 |
926 |
partial_update_params = copy.deepcopy(update_params)
|
839 |
927 |
partial_update_params['maj:enfant_0_sanitaire'] = val
|
840 |
928 |
partial_update_params['maj:enfant_1_sanitaire'] = val
|
841 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
929 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
930 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
842 |
931 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
843 |
932 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][1]
|
844 |
933 |
|
845 |
934 |
|
846 |
|
def test_sanitize_update_family_data_enfant_n_sanitaire_allergie(app, resource, update_params):
|
|
935 |
def test_sanitize_update_family_data_enfant_n_sanitaire_allergie(app, resource, update_params, family_data):
|
847 |
936 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
848 |
937 |
|
849 |
938 |
# test maj:enfant_n_sanitaire_allergie
|
... | ... | |
852 |
941 |
for key in partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE'].keys():
|
853 |
942 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE'][key] = None # reset fields
|
854 |
943 |
partial_update_params['maj:enfant_0'] = False
|
855 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
944 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
945 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
856 |
946 |
assert len(partial_update_params['ENFANT']) == 1
|
857 |
947 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
858 |
948 |
assert 'ALLERGIE' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
... | ... | |
861 |
951 |
partial_update_params['maj:enfant_1_sanitaire'] = False
|
862 |
952 |
partial_update_params['maj:enfant_1_sanitaire_allergie'] = False
|
863 |
953 |
partial_update_params['maj:enfant_0'] = False
|
864 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
954 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
955 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
865 |
956 |
assert len(partial_update_params['ENFANT']) == 1
|
866 |
957 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
867 |
958 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
870 |
961 |
partial_update_params['maj:enfant_1'] = False
|
871 |
962 |
partial_update_params['maj:enfant_1_sanitaire_allergie'] = False
|
872 |
963 |
partial_update_params['maj:enfant_0'] = False
|
873 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
964 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
965 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
874 |
966 |
assert 'ENFANT' not in partial_update_params
|
875 |
967 |
|
876 |
968 |
# test maj:enfant_n_sanitaire_allergie not set
|
... | ... | |
878 |
970 |
partial_update_params = copy.deepcopy(update_params)
|
879 |
971 |
partial_update_params['maj:enfant_0_sanitaire_allergie'] = val
|
880 |
972 |
partial_update_params['maj:enfant_1_sanitaire_allergie'] = val
|
881 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
973 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
974 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
882 |
975 |
assert 'ALLERGIE' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
883 |
976 |
assert 'ALLERGIE' not in partial_update_params['ENFANT'][1]['SANITAIRE']
|
884 |
977 |
|
... | ... | |
889 |
982 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['MEDICAMENTEUSES'] = 'NON'
|
890 |
983 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['ALIMENTAIRES'] = 'NON'
|
891 |
984 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['AUTRES'] = ''
|
892 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
985 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
986 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
893 |
987 |
assert partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE'] == [
|
894 |
988 |
{'TYPE': 'ASTHME', 'ALLERGIQUE': 'NON', 'NOMALLERGIE': None},
|
895 |
989 |
{'TYPE': 'MEDICAMENTEUSES', 'ALLERGIQUE': 'NON', 'NOMALLERGIE': None},
|
... | ... | |
902 |
996 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['MEDICAMENTEUSES'] = 'OUI'
|
903 |
997 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['ALIMENTAIRES'] = 'OUI'
|
904 |
998 |
partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE']['AUTRES'] = 'accariens'
|
905 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
999 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1000 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
906 |
1001 |
assert partial_update_params['ENFANT'][0]['SANITAIRE']['ALLERGIE'] == [
|
907 |
1002 |
{'TYPE': 'ASTHME', 'ALLERGIQUE': 'OUI', 'NOMALLERGIE': None},
|
908 |
1003 |
{'TYPE': 'MEDICAMENTEUSES', 'ALLERGIQUE': 'OUI', 'NOMALLERGIE': None},
|
... | ... | |
911 |
1006 |
]
|
912 |
1007 |
|
913 |
1008 |
|
914 |
|
def test_sanitize_update_family_data_enfant_n_sanitaire_medecin(app, resource, update_params):
|
|
1009 |
def test_sanitize_update_family_data_enfant_n_sanitaire_medecin(app, resource, update_params, family_data):
|
915 |
1010 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
916 |
1011 |
|
917 |
1012 |
# test maj:enfant_n_sanitaire_medecin
|
... | ... | |
920 |
1015 |
for key in partial_update_params['ENFANT'][1]['SANITAIRE']['MEDECIN'].keys():
|
921 |
1016 |
partial_update_params['ENFANT'][1]['SANITAIRE']['MEDECIN'][key] = None # reset fields
|
922 |
1017 |
partial_update_params['maj:enfant_0'] = False
|
923 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1018 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1019 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
924 |
1020 |
assert len(partial_update_params['ENFANT']) == 1
|
925 |
1021 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
926 |
1022 |
assert 'MEDECIN' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
... | ... | |
929 |
1025 |
partial_update_params['maj:enfant_1_sanitaire'] = False
|
930 |
1026 |
partial_update_params['maj:enfant_1_sanitaire_medecin'] = False
|
931 |
1027 |
partial_update_params['maj:enfant_0'] = False
|
932 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1028 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1029 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
933 |
1030 |
assert len(partial_update_params['ENFANT']) == 1
|
934 |
1031 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
935 |
1032 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
938 |
1035 |
partial_update_params['maj:enfant_1'] = False
|
939 |
1036 |
partial_update_params['maj:enfant_1_sanitaire_medecin'] = False
|
940 |
1037 |
partial_update_params['maj:enfant_0'] = False
|
941 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1038 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1039 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
942 |
1040 |
assert 'ENFANT' not in partial_update_params
|
943 |
1041 |
|
944 |
1042 |
# test maj:enfant_n_sanitaire_medecin not set
|
... | ... | |
946 |
1044 |
partial_update_params = copy.deepcopy(update_params)
|
947 |
1045 |
partial_update_params['maj:enfant_0_sanitaire_medecin'] = val
|
948 |
1046 |
partial_update_params['maj:enfant_1_sanitaire_medecin'] = val
|
949 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1047 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1048 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
950 |
1049 |
assert 'MEDECIN' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
951 |
1050 |
assert 'MEDECIN' not in partial_update_params['ENFANT'][1]['SANITAIRE']
|
952 |
1051 |
|
953 |
1052 |
|
954 |
|
def test_sanitize_update_family_data_enfant_n_sanitaire_vaccin(app, resource, update_params):
|
|
1053 |
def test_sanitize_update_family_data_enfant_n_sanitaire_vaccin(app, resource, update_params, family_data):
|
955 |
1054 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
956 |
1055 |
|
957 |
1056 |
# test maj:enfant_n_sanitaire_vaccin
|
... | ... | |
960 |
1059 |
for key in partial_update_params['ENFANT'][1]['SANITAIRE']['VACCIN'].keys():
|
961 |
1060 |
partial_update_params['ENFANT'][1]['SANITAIRE']['VACCIN'][key] = None # reset fields
|
962 |
1061 |
partial_update_params['maj:enfant_0'] = False
|
963 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1062 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1063 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
964 |
1064 |
assert len(partial_update_params['ENFANT']) == 1
|
965 |
1065 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
966 |
1066 |
assert 'VACCIN' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
... | ... | |
969 |
1069 |
partial_update_params['maj:enfant_1_sanitaire'] = False
|
970 |
1070 |
partial_update_params['maj:enfant_1_sanitaire_vaccin'] = False
|
971 |
1071 |
partial_update_params['maj:enfant_0'] = False
|
972 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1072 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1073 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
973 |
1074 |
assert len(partial_update_params['ENFANT']) == 1
|
974 |
1075 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
975 |
1076 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
978 |
1079 |
partial_update_params['maj:enfant_1'] = False
|
979 |
1080 |
partial_update_params['maj:enfant_1_sanitaire_vaccin'] = False
|
980 |
1081 |
partial_update_params['maj:enfant_0'] = False
|
981 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1082 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1083 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
982 |
1084 |
assert 'ENFANT' not in partial_update_params
|
983 |
1085 |
|
984 |
1086 |
# test maj:enfant_n_sanitaire_vaccin not set
|
... | ... | |
986 |
1088 |
partial_update_params = copy.deepcopy(update_params)
|
987 |
1089 |
partial_update_params['maj:enfant_0_sanitaire_vaccin'] = val
|
988 |
1090 |
partial_update_params['maj:enfant_1_sanitaire_vaccin'] = val
|
989 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1091 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1092 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
990 |
1093 |
assert 'VACCIN' not in partial_update_params['ENFANT'][0]['SANITAIRE']
|
991 |
1094 |
assert 'VACCIN' not in partial_update_params['ENFANT'][1]['SANITAIRE']
|
992 |
1095 |
|
993 |
1096 |
|
994 |
|
def test_sanitize_update_family_data_enfant_n_sanitaire_handicap(app, resource, update_params):
|
|
1097 |
def test_sanitize_update_family_data_enfant_n_sanitaire_handicap(app, resource, update_params, family_data):
|
995 |
1098 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
996 |
1099 |
|
997 |
1100 |
# test maj:enfant_n_contact
|
998 |
|
filepath = os.path.join(os.path.dirname(__file__), 'data/toulouse_axel/family_info.xml')
|
999 |
|
with open(filepath) as xml:
|
1000 |
|
content = xml.read()
|
1001 |
1101 |
partial_update_params = copy.deepcopy(update_params)
|
1002 |
1102 |
partial_update_params['maj:enfant_0_sanitaire_handicap'] = False
|
1003 |
1103 |
# reset fields
|
... | ... | |
1012 |
1112 |
for key in handicap_fields:
|
1013 |
1113 |
partial_update_params['ENFANT'][0]['SANITAIRE'][key] = None
|
1014 |
1114 |
partial_update_params['maj:enfant_1'] = False
|
1015 |
|
with mock_getdata(content, 'RefFamilleDui'):
|
|
1115 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
1016 |
1116 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
1017 |
|
original_values = resource.get_family_data(name_id='yyy')['ENFANT'][0]['SANITAIRE']
|
1018 |
1117 |
assert len(partial_update_params['ENFANT']) == 1
|
1019 |
1118 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "4242"
|
1020 |
1119 |
# fields were set with origin values found in Axel
|
1021 |
1120 |
new_values = partial_update_params['ENFANT'][0]['SANITAIRE']
|
1022 |
1121 |
for key in handicap_fields:
|
1023 |
|
assert new_values[key] == original_values[key]
|
|
1122 |
assert new_values[key] == family_data['ENFANT'][0]['SANITAIRE'][key]
|
1024 |
1123 |
# combine with maj:enfant_n_sanitaire
|
1025 |
1124 |
partial_update_params = copy.deepcopy(update_params)
|
1026 |
1125 |
partial_update_params['maj:enfant_1_sanitaire'] = False
|
1027 |
1126 |
partial_update_params['maj:enfant_1_sanitaire_handicap'] = False
|
1028 |
1127 |
partial_update_params['maj:enfant_0'] = False
|
1029 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1128 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1129 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
1030 |
1130 |
assert len(partial_update_params['ENFANT']) == 1
|
1031 |
1131 |
assert partial_update_params['ENFANT'][0]['IDPERSONNE'] == "3535"
|
1032 |
1132 |
assert 'SANITAIRE' not in partial_update_params['ENFANT'][0]
|
... | ... | |
1035 |
1135 |
partial_update_params['maj:enfant_1'] = False
|
1036 |
1136 |
partial_update_params['maj:enfant_1_sanitaire_sanitaire'] = False
|
1037 |
1137 |
partial_update_params['maj:enfant_0'] = False
|
1038 |
|
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
|
1138 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
|
1139 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
1039 |
1140 |
assert 'ENFANT' not in partial_update_params
|
1040 |
1141 |
|
1041 |
1142 |
# test maj:enfant_n_sanitaire_handicap not set
|
1042 |
1143 |
for val in [None, '']:
|
1043 |
1144 |
partial_update_params = copy.deepcopy(update_params)
|
1044 |
1145 |
partial_update_params['maj:enfant_0_sanitaire_handicap'] = val
|
1045 |
|
with mock.patch('passerelle.contrib.toulouse_axel.models.ref_famille_dui') as operation:
|
|
1146 |
partial_update_params['maj:enfant_1'] = False
|
|
1147 |
# reset fields
|
|
1148 |
for key in handicap_fields:
|
|
1149 |
partial_update_params['ENFANT'][0]['SANITAIRE'][key] = None
|
|
1150 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_family_data', return_value=family_data):
|
1046 |
1151 |
resource.sanitize_update_family_data(name_id='yyy', post_data=partial_update_params)
|
1047 |
|
assert operation.call_args_list == [mock.call(resource, {'PORTAIL': {'DUI': {'IDDUI': u'XXX'}}})]
|
1048 |
|
|
1049 |
|
|
1050 |
|
def test_sanitize_update_family_data_axel_error(app, resource, update_params):
|
|
1152 |
new_values = partial_update_params['ENFANT'][0]['SANITAIRE']
|
|
1153 |
for key in handicap_fields:
|
|
1154 |
assert new_values[key] == family_data['ENFANT'][0]['SANITAIRE'][key]
|
|
1155 |
|
|
1156 |
|
|
1157 |
@pytest.mark.parametrize('flags', [
|
|
1158 |
# get family data to fill handicap fields
|
|
1159 |
['maj:enfant_0_sanitaire_handicap', 'maj:revenus', 'maj:rl1', 'maj:rl2'],
|
|
1160 |
# get family data to fill revenus fields
|
|
1161 |
['maj:rl1', 'maj:rl2'],
|
|
1162 |
# get family data to fill rl1 fields
|
|
1163 |
['maj:revenus', 'maj:rl2'],
|
|
1164 |
# get family data to fill rl2 fields
|
|
1165 |
['maj:revenus', 'maj:rl1'],
|
|
1166 |
])
|
|
1167 |
def test_sanitize_update_family_data_axel_error(app, resource, update_params, flags):
|
1051 |
1168 |
Link.objects.create(resource=resource, name_id='yyy', dui='XXX', person_id='42')
|
1052 |
1169 |
|
1053 |
1170 |
partial_update_params = copy.deepcopy(update_params)
|
1054 |
|
partial_update_params['maj:enfant_0_sanitaire_handicap'] = False
|
|
1171 |
for flag in flags:
|
|
1172 |
partial_update_params[flag] = False
|
1055 |
1173 |
with mock.patch('passerelle.contrib.toulouse_axel.models.ref_famille_dui') as operation:
|
1056 |
1174 |
operation.side_effect = AxelError('FooBar')
|
1057 |
1175 |
with pytest.raises(APIError, match='Axel error: FooBar'):
|
1058 |
|
-
|