148 lines
6.9 KiB
Python
148 lines
6.9 KiB
Python
import os
|
|
import json
|
|
from decimal import Decimal
|
|
|
|
import mock
|
|
import pytest
|
|
|
|
from django.core.urlresolvers import reverse
|
|
from django.contrib.contenttypes.models import ContentType
|
|
|
|
from passerelle.base.models import ApiUser, AccessRight
|
|
from passerelle.contrib.solis_apa.models import SolisAPA
|
|
from passerelle.contrib.solis_apa import integration
|
|
|
|
|
|
TEST_BASE_DIR = os.path.join(os.path.dirname(__file__), 'data', 'solis_apa')
|
|
|
|
|
|
def json_get_data(filename):
|
|
with open(os.path.join(TEST_BASE_DIR, filename)) as fd:
|
|
return json.load(fd)
|
|
|
|
|
|
@pytest.fixture
|
|
def setup(db):
|
|
api = ApiUser.objects.create(username='all',
|
|
keytype='', key='')
|
|
solis = SolisAPA.objects.create(base_url='https://whateever.com/rec/',
|
|
slug='test')
|
|
obj_type = ContentType.objects.get_for_model(solis)
|
|
AccessRight.objects.create(codename='can_access', apiuser=api,
|
|
resource_type=obj_type, resource_pk=solis.pk)
|
|
|
|
@pytest.fixture
|
|
def url():
|
|
def get_url(name):
|
|
return reverse('solis-apa-%s' % name, kwargs={'slug': 'test'})
|
|
return get_url
|
|
|
|
|
|
@pytest.fixture(params=[
|
|
json_get_data('premiere_demande_apa_domicile.json'),
|
|
json_get_data('premiere_demande_apa_etablissement.json'),
|
|
json_get_data('premiere_demande_apa_etablissement_papier.json')])
|
|
def formdata(request):
|
|
return request.param
|
|
|
|
|
|
@mock.patch('passerelle.utils.Request.post')
|
|
def test_instegration_demande_apa_domicile(mocked_post, setup, app, url):
|
|
fake_response = '{"ImportIdResults":{"Items":[{"key":"indexDossier","value":359043},{"key":"indexBeneficiaire","value":458238},{"key":"indexDemande","value":221155}]}}'
|
|
|
|
mocked_post.return_value = mock.Mock(status_code=200, content=fake_response,
|
|
json=lambda: json.loads(fake_response))
|
|
|
|
resp = app.post_json(url('integration'),
|
|
params=json_get_data('premiere_demande_apa_domicile.json'), status=200)
|
|
|
|
resp.json['data']['indexDossier'] == 359043
|
|
resp.json['data']['indexBeneficiaire'] == 458238
|
|
resp.json['data']['indexDemande'] == 221155
|
|
|
|
|
|
@mock.patch('passerelle.utils.Request.post')
|
|
def test_integration_demande_apa_etablissement(mocked_post, setup, app, url):
|
|
fake_response = '{"ImportIdResults":{"Items":[{"key":"indexDossier","value":359043},{"key":"indexBeneficiaire","value":458238},{"key":"indexDemande","value":221155}]}}'
|
|
|
|
mocked_post.return_value = mock.Mock(status_code=200, content=fake_response,
|
|
json=lambda: json.loads(fake_response))
|
|
|
|
resp = app.post_json(url('integration'),
|
|
params=json_get_data('premiere_demande_apa_etablissement.json'), status=200)
|
|
|
|
resp.json['data']['indexDossier'] == 359043
|
|
resp.json['data']['indexBeneficiaire'] == 458238
|
|
resp.json['data']['indexDemande'] == 221155
|
|
|
|
|
|
def test_get_conjoint(setup, url, formdata):
|
|
data = integration.build_message(formdata)
|
|
if formdata['display_id'] == '25-3':
|
|
assert data['Conjoint']['indexIndividu'] == '458107'
|
|
assert data['Conjoint']['bParticipeRevenus'] is False
|
|
assert data['Conjoint']['dateNaissance'] == '1930-06-11'
|
|
assert data['Conjoint']['nom'] == 'MCBEAL'
|
|
assert data['Conjoint']['prenom'] == 'ALLY'
|
|
assert data['Conjoint']['sexe'] == 'F'
|
|
assert data['Conjoint']['situationFamiliale'] == 2
|
|
assert data['RevenusImposition']['anneeReference'] == 2015
|
|
assert Decimal(data['RevenusImposition']['revenuReference']) == Decimal(30000.0)
|
|
elif formdata['display_id'] == '32-1':
|
|
assert 'Conjoint' not in data
|
|
assert data['RevenusImposition']['anneeReference'] == 2015
|
|
assert Decimal(data['RevenusImposition']['revenuReference']) == Decimal(32000.0)
|
|
else:
|
|
assert 'Conjoint' not in data
|
|
assert data['RevenusImposition']['anneeReference'] == 2016
|
|
assert Decimal(data['RevenusImposition']['revenuReference']) == Decimal(1500)
|
|
|
|
|
|
def test_recipient_address(setup, formdata):
|
|
data = integration.build_message(formdata)
|
|
if formdata['display_id'] == '25-3':
|
|
# received values
|
|
assert formdata['workflow']['data']['adresse_var_code_commune'] == '14000 CAEN'
|
|
assert formdata['workflow']['data']['adresse_var_code_commune_raw'] == 'commune-14-118'
|
|
assert formdata['workflow']['data']['adresse_var_code_lieu'] == 'AVENUE DU PARC BELLEVUE'
|
|
assert formdata['workflow']['data']['adresse_var_code_lieu_raw'] == '0867'
|
|
assert formdata['workflow']['data']['adresse_var_num_lieu'] == '1'
|
|
assert formdata['fields']['code_commune'] == '14000 CAEN'
|
|
assert formdata['fields']['code_commune_raw'] == 'commune-14-118'
|
|
# built values
|
|
assert data['Beneficiaire']['Adresse']['codeCommune'] == 118
|
|
assert data['Beneficiaire']['Adresse']['codeDepartement'] == 14
|
|
assert data['Beneficiaire']['Adresse']['codeLieu'] == '0867'
|
|
assert data['Beneficiaire']['Adresse']['numeroLieu'] == '1'
|
|
elif formdata['display_id'] == '32-1':
|
|
# received values
|
|
assert formdata['workflow']['data']['adresse_var_code_commune'] == '14930 ETERVILLE'
|
|
assert formdata['workflow']['data']['adresse_var_code_commune_raw'] == 'commune-14-254'
|
|
assert formdata['workflow']['data']['adresse_var_code_lieu'] == 'RUE DU JARDIN DE LA FERME'
|
|
assert formdata['workflow']['data']['adresse_var_code_lieu_raw'] == 'Z001'
|
|
assert formdata['workflow']['data']['adresse_var_num_lieu'] == '1'
|
|
assert formdata['fields']['code_commune'] == '14930 ETERVILLE'
|
|
assert formdata['fields']['code_commune_raw'] == 'commune-14-254'
|
|
# built values
|
|
assert data['Beneficiaire']['Adresse']['codeCommune'] == 254
|
|
assert data['Beneficiaire']['Adresse']['codeDepartement'] == 14
|
|
assert data['Beneficiaire']['Adresse']['codeLieu'] == 'Z001'
|
|
assert data['Beneficiaire']['Adresse']['numeroLieu'] == '1'
|
|
else:
|
|
# received values
|
|
formdata['fields']['papier_code_commune'] == '33370 FARGUES ST HILAIRE'
|
|
formdata['fields']['papier_code_commune_raw'] == 'commune-33-165'
|
|
formdata['fields']['papier_code_lieu'] == 'ROUTE DE MAISON ROUGE'
|
|
formdata['fields']['papier_code_lieu_raw'] == '0001'
|
|
formdata['fields']['papier_excode_commune'] == '14150 OUISTREHAM'
|
|
formdata['fields']['papier_excode_commune_raw'] == 'commune-14-488'
|
|
formdata['fields']['papier_excode_lieu'] == 'RUE DU PETIT BONHEUR'
|
|
formdata['fields']['papier_excode_lieu_raw'] == '0730'
|
|
formdata['fields']['papier_exnum_lieu'] == '2'
|
|
formdata['fields']['papier_num_lieu'] == '20'
|
|
# built values
|
|
assert data['Beneficiaire']['Adresse']['codeCommune'] == 488
|
|
assert data['Beneficiaire']['Adresse']['codeDepartement'] == 14
|
|
assert data['Beneficiaire']['Adresse']['codeLieu'] == '0730'
|
|
assert data['Beneficiaire']['Adresse']['numeroLieu'] == '2'
|