Tests: removed useless files added by mistake and old 'tests' directory

This commit is contained in:
Michael Bideau 2019-07-11 17:18:08 +02:00
parent 1ac8c2f14e
commit 6fe6307506
5 changed files with 0 additions and 577 deletions

View File

@ -1 +0,0 @@
!coverage.py: This is a private format, don't read it directly!{"lines":{"/home/vagrant/passerelle-atreal-openads/atreal_openads/tests/test_atreal_openads.py":[9,10,11,12,13,14,15,17,18,19,20,22,23,24,26,27,28,29,30,31,33,34,36,37,38,39,40,43,45,46,47,51,53,54,55,56,57,58,62,63,64,66,67,70,71,72,73,74,75,76,77,78,79,80,81,82,83,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,183,184,185,186,187,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,218,219,220,225,226,227,230,231,232,233,236,237,238,239,240,241,242,243,244,245,246,247,249,250,251,252,253,254,257,258,259,260,261,262,264,265,266,267,268,269,270,272,273,274,275,276,277,278,279,280,281,282,284,285,286,287,288,289,291,292,293,294,295,296,297,298,299,300,302,303,305,306,307,310,311,312,314,315,316,317,318,319,320,321,322,323,325,326,327,328,329,330,331,332,333,334,337,338,339,340,341,342,343,345,346,347,348,349,350,351,352,353,354,355,356,357,358,360,361,362,363,364,367,368,369,370,371,372,373,374,375,376,377,380,381,382,383,384,385,386,387,388,389,390,391,394,395,396,397,398,400,401,402,403,404,405,406,407,408,410,411,412,413,414,415,416,417,420,421,422,423,424,425,426,427,428,429,431,432,434,435,438,439,440,441,443,444,445,447,448,449,451,452,453,454,455,456,457,458,460,461,462,463,464,465,466,467,469,470,471,472,473,474,475,476,477,479,480,481,482,483,484,485,486,487,490,491,492,493,494,495,496,498,499,500,501,502,503,504,505,506,507,510,511,512,513,514,515,518,519,520,521,522,523,524,525,526,527,528,529,532,533,534,535,536,537,538,540,541,542,543,544,545,546,547,548,549,551,552,553,554,555],"/home/vagrant/passerelle-atreal-openads/atreal_openads/tests/conftest.py":[1,2,35,4,6,8,41,10,13,15,16,17,18,19,22,30],"/home/vagrant/passerelle-atreal-openads/atreal_openads/models.py":[20,21,22,23,24,25,26,27,28,29,30,32,34,35,36,37,38,40,41,42,45,46,47,50,52,56,63,65,66,67,68,69,70,71,74,76,78,81,82,83,86,88,89,90,94,99,100,101,105,106,107,108,109,110,111,112,113,114,115,116,119,120,121,122,123,124,125,126,127,128,130,132,134,136,137,139,140,141,142,143,144,146,147,148,151,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,183,184,185,186,187,188,189,190,191,194,195,196,198,199,200,201,202,203,238,239,240,241,242,243,244,245,246,247,248,249,257,259,260,261,262,264,265,266,267,268,269,270,273,274,275,276,277,278,279,280,281,282,283,284,286,288,289,290,291,292,293,295,298,299,300,301,302,304,305,306,307,308,309,312,313,316,317,318,319,320,321,322,323,324,325,328,331,333,334,335,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,353,354,355,356,357,358,359,360,363,364,365,367,368,369,373,374,378,379,380,381,382,383,384,385,386,387,388,390,391,393,394,395,398,400,401,402,403,404,406,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,426,428,429,430,431,432,433,434,435,436,437,438,441,442,443,447,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,466,467,468,469,470,471,474,475,476,477,478,479,480,481,484,485,486,487,488,489,492,493,494,495,496,497,498,501,503,504,505,506,507,510,511,512,516,517,521,524,525,526,527,528,529,530,533,534,535,536,537,538,539,540,541,542,543,547,548,549,550,551,552,553,555,556,557,558,559,560,563,564,565,566,567,568,569,570,572,573,574,575,576,577,578,579,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,600,601,602,603,604,606,607,609,612,613,614,615,616,617,618,621,622,623,624,627,628,629,630,631,632,633,636,637,638,639,640,644,645,648,649,650,653,656,658,659,660,661,662,663,664,665,666,667,668,669,677,679,680,681,682,683,684,685,686,687,688,689,690,692,693,694,700,701,702,703,706,707,708,709,710,711,712,713,714,715,727,728,741,742,743,745,746,747,748,749,750,751,762,764,765,766,767,768,769,770],"/home/vagrant/passerelle-atreal-openads/atreal_openads/migrations/__init__.py":[1],"/home/vagrant/passerelle-atreal-openads/atreal_openads/migrations/0001_initial.py":[3,5,6,9,11,14,18,19,21,22,23,24,25,26,27,28,29,31,32,35,36,38,39,40,41,42,43,44,45,46,47,48],"/home/vagrant/passerelle-atreal-openads/atreal_openads/__init__.py":[1]}}

View File

@ -1,11 +0,0 @@
import os
passerelle_root_dir = os.environ.get('PASSERELLE_ROOT_DIR')
if passerelle_root_dir and os.path.isdir(passerelle_root_dir):
passerelle_settings_file = os.path.join(passerelle_root_dir, 'tests/settings.py')
if os.path.exists(passerelle_settings_file):
execfile(passerelle_settings_file)
INSTALLED_APPS += ('passerelle.apps.atreal_openads',)

View File

@ -1 +0,0 @@
INSTALLED_APPS += ('passerelle.apps.atreal_openads',)

View File

@ -1,564 +0,0 @@
# -*- coding: utf-8 -*-
# to run it use the following command:
# ~> cd ~/src/passerelle/tests
# ~> DJANGO_SETTINGS_MODULE=passerelle.settings pytest -W ignore::django.utils.deprecation.RemovedInDjango20Warning test_atreal_openads.py -vv
#
# and with 'pytest-cov':
# ~> DJANGO_SETTINGS_MODULE=passerelle.settings pytest -W ignore::django.utils.deprecation.RemovedInDjango20Warning test_atreal_openads.py -vv --cov=~/src/passerelle/passerelle/apps/atreal_openads
import urlparse
import pytest
import mock
import json
import sys, os
sys.path.append('/home/vagrant/src/passerelle/tests')
import utils
from passerelle.apps.atreal_openads.models import AtrealOpenads, ForwardFile
from passerelle.base.models import Job
from passerelle.utils.jsonresponse import APIError
import base64
import re
from django.http import Http404
from django.http.request import HttpRequest, QueryDict
from django.http.response import HttpResponse, JsonResponse
from django.core.files import File
from requests import Response
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
CONNECTOR_NAME = 'atreal-openads'
CONNECTOR_SLUG = 'atreal'
COLLECTIVITE = 3
OPENADS_API_KEY = base64.urlsafe_b64encode(os.urandom(20))
OPENADS_API_URL = 'http://openads.api/'
FAKE_COOKIE_CRSF = base64.urlsafe_b64encode(os.urandom(20))
FAKE_NUMERO_DOSSIER = base64.urlsafe_b64encode(os.urandom(10))
TEST_FILE_TRAC_ICO = '/vagrant/test_files/trac.ico'
TEST_FILE_CERFA_DIA = '/vagrant/test_files/cerfa_10072-02.pdf'
TEST_FILE_PLAN_CADASTRAL = '/vagrant/test_files/plancadastral.pdf'
def get_file_data(path, b64=True):
"""Return the content of a file as a string, in base64 if specified."""
with open(path, 'r') as f:
if b64:
return base64.b64encode(f.read())
return f.read()
@pytest.fixture
def atreal_openads(db):
return AtrealOpenads.objects.create(
slug = CONNECTOR_SLUG,
collectivite = COLLECTIVITE,
openADS_API_key = OPENADS_API_KEY,
openADS_API_url = OPENADS_API_URL
)
def test_openads_hello(app, atreal_openads):
resp = atreal_openads.hello(None)
assert resp['hello'] == 'world'
resp = atreal_openads.hello(None, 'toto')
assert resp['hello'] == 'toto'
def test_openads_echo(app, atreal_openads):
meta = {
'Host' : 'passerelle.dev.publik.love',
'User-Agent' : 'Mozilla Firefox',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate, br',
'Referer' : 'https://passerelle.dev.publik.love/%s/%s/' % (CONNECTOR_NAME, CONNECTOR_SLUG),
'Cookie' : 'publik_portal_agent_url=https%3A%2F%2Fagent-combo.dev.publik.love%2F; '
'publik_portal_agent_title=Portail%20Agent; csrftoken-2baa71=' + FAKE_COOKIE_CRSF,
'DNT' : '1',
'Connection' : 'keep-alive',
'Pragma' : 'no-cache',
'Cache-Control' : 'no-cache'
}
req = HttpRequest()
req._body = ""
req.path = '/test'
req.method = 'GET'
req.encoding = 'utf-8'
req.GET = QueryDict(mutable=True) # required because of encoding setter
req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_type = 'text/plain'
req.content_params = None
req.COOKIES = {}
req.META = meta
req._read_started = False
resp = atreal_openads.echo(req, body=False, cookies=False, meta=False, empty=False)
jresp = json.loads(resp['received'])
assert jresp['scheme'] == 'http'
assert jresp['method'] == req.method
assert jresp['content_type'] == req.content_type
assert jresp['encoding'] == req.encoding
resp = atreal_openads.echo(req, body=True, cookies=True, meta=True, empty=True)
jresp = json.loads(resp['received'])
assert jresp['body'] == req._body
assert jresp['FILES'] == []
assert jresp['content_params'] == None
assert jresp['encoding'] == req.encoding
assert jresp['GET'] == {}
assert jresp['COOKIES'] == {}
assert jresp['content_type'] == req.content_type
assert jresp['POST'] == {}
assert jresp['scheme'] == 'http'
assert jresp['method'] == req.method
for k,v in req.META.items():
jresp['META'][k] == v
req = HttpRequest()
req._body = '{"data": "test"}'
req.path = '/test'
req.method = 'POST'
req.encoding = 'utf-8'
req.GET = QueryDict(mutable=True) # required because of encoding setter
req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_type = 'application/json; charset=UTF-8'
req.content_params = None
req.COOKIES = {}
req.META = meta
req._read_started = False
resp = atreal_openads.echo(req, body=False, cookies=False, meta=False, empty=False)
jresp = json.loads(resp['received'])
assert jresp['scheme'] == 'http'
assert jresp['method'] == req.method
assert jresp['content_type'] == req.content_type
assert jresp['encoding'] == req.encoding
resp = atreal_openads.echo(req, body=True, cookies=True, meta=True, empty=True)
jresp = json.loads(resp['received'])
assert jresp['body'] == req._body
assert jresp['FILES'] == []
assert jresp['content_params'] == None
assert jresp['encoding'] == req.encoding
assert jresp['GET'] == {}
assert jresp['COOKIES'] == {}
assert jresp['content_type'] == req.content_type
assert jresp['POST'] == {}
assert jresp['scheme'] == 'http'
assert jresp['method'] == req.method
for k,v in req.META.items():
jresp['META'][k] == v
def test_openads_echofile(app, atreal_openads):
test_file_b64 = get_file_data(TEST_FILE_TRAC_ICO)
test_file_json = {
'filename' : os.path.basename(TEST_FILE_TRAC_ICO),
'content_type' : 'image/x-icon',
'b64_content' : 'ccc'
}
req = HttpRequest()
req._body = json.dumps(test_file_json)
req.path = '/test'
req.method = 'POST'
req.encoding = 'utf-8'
req.GET = QueryDict(mutable=True) # required because of encoding setter
req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_type = 'application/json'
req.content_params = None
req.COOKIES = {}
req.META = {}
req._read_started = False
jresp = atreal_openads.echofile(req)
assert jresp['filename'] == test_file_json['filename']
assert jresp['content_type'] == test_file_json['content_type']
assert jresp['content'] == test_file_json['b64_content']
def test_openads_afile(app, atreal_openads):
test_file_b64 = get_file_data(TEST_FILE_TRAC_ICO)
jresp = atreal_openads.afile(None, format='json')
assert jresp['afile']['filename'] == 'trac.ico'
assert jresp['afile']['content_type'] == 'image/x-icon'
assert jresp['afile']['b64_content'] == test_file_b64
assert jresp['extra_info'] == 'blabla'
def test_openads_check_status(app, atreal_openads):
fake_resp_json = {
'message': 'Service online'
}
fake_resp = JsonResponse(fake_resp_json)
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = mock.Mock(content=fake_resp, status_code=200)
jresp = atreal_openads.check_status()
assert jresp['response'] == 200
def test_openads_create_dossier(app, atreal_openads):
fake_req_json = {
"fields": {
"autres_parcelles": True,
"cerfa": {
"content": get_file_data(TEST_FILE_CERFA_DIA),
"content_type": "application/pdf",
"field_id": "50",
"filename": os.path.basename(TEST_FILE_CERFA_DIA)
},
"code_postal": "13004",
"localite": "Marseille",
"nom": "Loulou",
"nom_voie": "Avenue de la Blaque",
"numero_voie": "52",
"plan_cadastral_1": {
"content": get_file_data(TEST_FILE_PLAN_CADASTRAL),
"content_type": "application/pdf",
"field_id": "113",
"filename": os.path.basename(TEST_FILE_PLAN_CADASTRAL)
},
"prenom": "Toto",
"proprietaire": "Oui",
"proprietaire_qualite": "Un particulier",
"proprietaire_qualite_raw": "Un particulier",
"proprietaire_raw": "Oui",
"reference_cadastrale": [
[
"999",
"Z",
"0010"
]
],
"references_cadastrales": [
[
"123",
"D",
"9874"
]
],
"terrain_code_postal": "13002",
"terrain_localite": "Marseille",
"terrain_nom_voie": "Boulevard de la Linule",
"terrain_numero_voie": "23"
}
}
req = HttpRequest()
req._body = json.dumps(fake_req_json)
req.path = '/test'
req.method = 'POST'
req.encoding = 'utf-8'
req.GET = QueryDict(mutable=True) # required because of encoding setter
req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_type = 'application/json'
req.content_params = None
req.COOKIES = {}
req.META = {}
req._read_started = False
fake_resp_json = {
'numero_dossier' : FAKE_NUMERO_DOSSIER,
'files': [{
'b64_content' : get_file_data(TEST_FILE_CERFA_DIA),
'content_type' : 'text/plain',
'filename' : 'recepisse_depot_%s.pdf' % FAKE_NUMERO_DOSSIER,
}]
}
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
jresp = atreal_openads.create_dossier(req, 'DIA')
assert jresp['numero_dossier'] == fake_resp_json['numero_dossier']
assert jresp['recepisse']['b64_content'] == fake_resp_json['files'][0]['b64_content']
assert jresp['recepisse']['content_type'] == 'application/pdf'
assert jresp['recepisse']['filename'] == fake_resp_json['files'][0]['filename']
job = Job.objects.filter(natural_id=FAKE_NUMERO_DOSSIER).last()
assert job
job_id = job.id
assert job.status == 'registered'
assert job.method_name == 'upload_user_files'
assert job.natural_id == FAKE_NUMERO_DOSSIER
assert job.parameters is not None
assert len(job.parameters) == 3
assert 'file_ids' in job.parameters
assert len(job.parameters['file_ids']) == 2
file_ids = job.parameters['file_ids']
FFs = ForwardFile.objects.filter(id__in=file_ids)
for FF in FFs:
assert len(FF.numero_demande) > 0
assert FF.numero_dossier == FAKE_NUMERO_DOSSIER
assert len(FF.file_hash) > 0
assert FF.upload_status == 'pending'
fake_resp_json = "You want add some files on %s " % FAKE_NUMERO_DOSSIER
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.jobs()
job = Job.objects.get(id=job_id)
assert job.status == 'completed'
FFs = ForwardFile.objects.filter(id__in=file_ids)
for FF in FFs:
assert FF.upload_status == 'success'
def test_openads_upload2ForwardFile(app, atreal_openads):
FF = atreal_openads.upload2ForwardFile(None, None)
assert FF is None
FF = atreal_openads.upload2ForwardFile(TEST_FILE_CERFA_DIA, FAKE_NUMERO_DOSSIER)
assert isinstance(FF, ForwardFile)
assert len(FF.numero_demande) > 0
assert FF.numero_dossier == FAKE_NUMERO_DOSSIER
assert FF.type_fichier == 'CERFA'
assert FF.orig_filename == os.path.basename(TEST_FILE_CERFA_DIA)
assert FF.content_type == 'application/pdf'
assert len(FF.file_hash) > 0
assert isinstance(FF.upload_file, File)
assert FF.upload_status == 'pending'
def test_openads_get_dossier(app, atreal_openads):
fake_resp_json = {
'etat' : u"Non préemption en cours",
'date_depot' : "24/04/2019",
'date_decision' : "",
'decision' : "",
'date_limite_instruction': "24/06/2019"
}
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
jresp = atreal_openads.get_dossier(None, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp['etat'] == fake_resp_json['etat']
assert jresp['date_depot'] == fake_resp_json['date_depot']
assert jresp['date_decision'] == fake_resp_json['date_decision']
assert jresp['decision'] == fake_resp_json['decision']
assert jresp['date_limite_instruction'] == fake_resp_json['date_limite_instruction']
fake_resp_json = {
'errors' : [{
'location' : 'path',
'name' : 'Invalid Type',
'description' : '"invalid_type" is not one of DIA, PC, DP, AT, PD'
}]
}
fake_resp = Response()
fake_resp.status_code = 404
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'Resource not found'
fake_resp._content = json.dumps(fake_resp_json)
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
jresp = atreal_openads.get_dossier(None, 'invalid_type', FAKE_NUMERO_DOSSIER)
assert re.search(r'^HTTP error: 404, \[path\] \(Invalid Type\) "invalid_type" is not one of DIA, PC, DP, AT, PD$', str(e.value))
def test_openads_add_file(app, atreal_openads):
fake_resp_json = "You want add some files on %s " % FAKE_NUMERO_DOSSIER
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
jresp = atreal_openads.add_file(None, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp == fake_resp_json
def test_openads_add_file_async(app, atreal_openads):
jresp = atreal_openads.add_file_async(None, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp['message'] == 'upload is pending (async)'
assert jresp['job_id'] is not None
job_id = jresp['job_id']
job = Job.objects.get(id=job_id)
assert job.status == 'registered'
assert job.method_name == 'upload_user_files'
assert job.natural_id == FAKE_NUMERO_DOSSIER
assert job.parameters is not None
assert len(job.parameters) == 3
assert 'file_ids' in job.parameters
assert len(job.parameters['file_ids']) == 1
file_id = job.parameters['file_ids'][0]
FF = ForwardFile.objects.get(id=file_id)
assert len(FF.numero_demande) > 0
assert FF.numero_dossier == FAKE_NUMERO_DOSSIER
assert FF.type_fichier == 'CERFA'
assert FF.orig_filename == os.path.basename(TEST_FILE_CERFA_DIA)
assert FF.content_type == 'application/pdf'
assert len(FF.file_hash) > 0
assert FF.upload_status == 'pending'
fake_resp_json = "You want add some files on %s " % FAKE_NUMERO_DOSSIER
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.jobs()
job = Job.objects.get(id=job_id)
assert job.status == 'completed'
FF = ForwardFile.objects.get(id=file_id)
assert FF.upload_status == 'success'
def test_openads_get_fwd_files_status(app, atreal_openads):
with pytest.raises(Http404) as e:
resp404 = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=18, summary=None)
assert re.search(r"^No file matches 'numero_dossier=[^']+' and 'id=[^']+'.$", str(e.value))
resp404 = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=None, summary=None)
assert resp404 is not None
assert len(resp404) == 0
FF = atreal_openads.upload2ForwardFile(TEST_FILE_TRAC_ICO, FAKE_NUMERO_DOSSIER)
FF.save()
assert isinstance(FF, ForwardFile)
jresp = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=None, summary=None)
assert jresp is not None
assert len(jresp) == 1
assert jresp[0]['id'] == FF.id
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type', 'upload_status', 'upload_msg']:
assert jresp[0][k] == getattr(FF, k)
assert jresp[0]['b64_content'] == get_file_data(FF.upload_file.path)
assert jresp[0]['last_update_datetime'] == FF.last_update_datetime
jresp = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=FF.id, summary=None)
assert jresp is not None
assert len(jresp) == 1
assert jresp[0]['id'] == FF.id
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type', 'upload_status', 'upload_msg']:
assert jresp[0][k] == getattr(FF, k)
assert jresp[0]['b64_content'] == get_file_data(FF.upload_file.path)
assert jresp[0]['last_update_datetime'] == FF.last_update_datetime
jresp = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=None, summary='1')
assert jresp is not None
assert jresp['all_forwarded'] == False
status_msg = '[%s] %s => %s' % (FF.id, FF.orig_filename, FF.upload_msg)
assert len(jresp['pending']) == 1
assert jresp['pending'][0] == status_msg
assert len(jresp['uploading']) == 0
assert len(jresp['success']) == 0
assert len(jresp['failed']) == 0
jresp = atreal_openads.get_fwd_files_status(None, FAKE_NUMERO_DOSSIER, fichier_id=FF.id, summary='1')
assert jresp is not None
assert jresp['all_forwarded'] == False
status_msg = '[%s] %s => %s' % (FF.id, FF.orig_filename, FF.upload_msg)
assert len(jresp['pending']) == 1
assert jresp['pending'][0] == status_msg
assert len(jresp['uploading']) == 0
assert len(jresp['success']) == 0
assert len(jresp['failed']) == 0
def test_openads_createForwardFile(app, atreal_openads):
jresp = atreal_openads.createForwardFile(None, FAKE_NUMERO_DOSSIER)
assert jresp is not None
m = re.search(r"^ForwardFile '(\d+)' created$", jresp['message'])
assert m
assert int(m.group(1)) > 0
file_id = int(m.group(1))
FF = ForwardFile.objects.get(id=file_id)
assert isinstance(FF, ForwardFile)
assert len(FF.numero_demande) > 0
assert FF.numero_dossier == FAKE_NUMERO_DOSSIER
assert FF.type_fichier == 'CERFA'
assert FF.orig_filename == os.path.basename(TEST_FILE_CERFA_DIA)
assert FF.content_type == 'application/pdf'
assert len(FF.file_hash) > 0
assert isinstance(FF.upload_file, File)
assert FF.upload_status == 'pending'
def test_openads_get_courrier(app, atreal_openads):
fake_resp_json = {
'files': [{
'filename' : "instruction_4.pdf",
'content_type' : "text/plain",
'b64_content' : get_file_data(TEST_FILE_CERFA_DIA)
}]
}
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
jresp = atreal_openads.get_courrier(None, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp['courrier']['filename'] == fake_resp_json['files'][0]['filename']
assert jresp['courrier']['content_type'] == fake_resp_json['files'][0]['content_type']
assert jresp['courrier']['b64_content'] == fake_resp_json['files'][0]['b64_content']
def test_openads_upload_user_files(app, atreal_openads):
FF = atreal_openads.upload2ForwardFile(TEST_FILE_TRAC_ICO, FAKE_NUMERO_DOSSIER)
FF.save()
assert isinstance(FF, ForwardFile)
assert FF.upload_status == 'pending'
file_id = FF.id
assert file_id
fake_resp_json = "You want add some files on %s " % FAKE_NUMERO_DOSSIER
fake_resp = Response()
fake_resp.status_code = 200
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
fake_resp._content = json.dumps(fake_resp_json)
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.upload_user_files('DIA', FAKE_NUMERO_DOSSIER, file_ids=[file_id])
FFup = ForwardFile.objects.get(id=file_id)
assert isinstance(FFup, ForwardFile)
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type']:
assert getattr(FFup, k) == getattr(FF, k)
assert FFup.upload_status == 'success'