diff --git a/.flake8 b/.flake8
new file mode 100644
index 0000000..7da1f96
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length = 100
diff --git a/atreal_openads/forms.py b/atreal_openads/forms.py
index 48039db..b2ec697 100644
--- a/atreal_openads/forms.py
+++ b/atreal_openads/forms.py
@@ -24,6 +24,7 @@ from django.forms import ModelForm
from .models import ForwardFile, Collectivite, Guichet
+
class ForwardFileForm(ModelForm):
"""Form for the ForwardFile model."""
diff --git a/atreal_openads/json_schemas.py b/atreal_openads/json_schemas.py
index a9abc9a..ff1ad79 100644
--- a/atreal_openads/json_schemas.py
+++ b/atreal_openads/json_schemas.py
@@ -26,24 +26,24 @@
JSON_SCHEMA_FILE = {
"description": "A file object",
- "$id" : "#file",
+ "$id": "#file",
"type": "object",
"properties": {
- "content" : {"type": "string"},
+ "content": {"type": "string"},
"content_type": {"type": ["string", "null"]},
- "filename" : {"type": "string"}
+ "filename": {"type": "string"}
},
"required": ["content", "filename"]
}
JSON_SCHEMA_FILE_B64 = {
"description": "A file object encoded in base64",
- "$id" : "#file",
+ "$id": "#file",
"type": "object",
"properties": {
- "b64_content" : {"type": "string"},
+ "b64_content": {"type": "string"},
"content_type": {"type": ["string", "null"]},
- "filename" : {"type": "string"}
+ "filename": {"type": "string"}
},
"required": ["b64_content", "filename"]
}
@@ -51,13 +51,13 @@ JSON_SCHEMA_FILE_B64 = {
JSON_SCHEMA_DATE_FRENCH = {
"type": "string",
# pylint: disable=anomalous-backslash-in-string
- "pattern": "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\d{4}$"
+ "pattern": "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\d{4}$" # noqa: W605
}
JSON_SCHEMA_CHECK_STATUS_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of an openADS 'connexion' test",
- "type" : "object",
+ "title": "Response of an openADS 'connexion' test",
+ "type": "object",
"properties": {
"response": {"type": "integer"}
},
@@ -66,12 +66,12 @@ JSON_SCHEMA_CHECK_STATUS_OUT = {
JSON_SCHEMA_CREATE_DOSSIER_IN = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Incoming request to create a 'dossier' in openADS.API",
+ "title": "Incoming request to create a 'dossier' in openADS.API",
"definitions": {
"refs-cadastrales": {
"description": "The 3 items of a 'cadastrale' reference",
- "$id" : "#refs-cadastrales",
- "type" : "array",
+ "$id": "#refs-cadastrales",
+ "type": "array",
"items": {
"type": "string"
},
@@ -99,11 +99,11 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
"plan_cadastral_3": {"$ref": "#/definitions/file_plan_cadastral"},
"plan_cadastral_4": {"$ref": "#/definitions/file_plan_cadastral"},
"plan_cadastral_5": {"$ref": "#/definitions/file_plan_cadastral"},
- "terrain_numero_voie" : {"type": "string"},
- "terrain_nom_voie" : {"type": "string"},
- "terrain_code_postal" : {"type": "string"},
- "terrain_localite" : {"type": "string"},
- "terrain_lieu_dit" : {"type": ["string", "null"]},
+ "terrain_numero_voie": {"type": "string"},
+ "terrain_nom_voie": {"type": "string"},
+ "terrain_code_postal": {"type": "string"},
+ "terrain_localite": {"type": "string"},
+ "terrain_lieu_dit": {"type": ["string", "null"]},
"reference_cadastrale": {
"description": "A list of 'cadastrales' references",
"type": "array",
@@ -116,24 +116,24 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
"description": "A list of 'cadastrales' references",
# conditionaly required and typed below
},
- "proprietaire" : {"enum": ["Oui", "Non"]},
- "qualite" : {"type": "string"},
- "denomination" : {}, # conditionaly required and typed below
- "raison_sociale" : {}, # conditionaly required and typed below
- "nom" : {"type": "string"},
- "prenom" : {"type": "string"},
- "numero_voie" : {"type": "string"},
- "nom_voie" : {"type": "string"},
- "code_postal" : {"type": "string"},
- "localite" : {"type": "string"},
- "lieu_dit" : {"type": ["string", "null"]},
- "mandataire_nom" : {}, # conditionaly required and typed below
- "mandataire_prenom" : {}, # conditionaly required and typed below
- "mandataire_numero_voie": {}, # conditionaly required and typed below
- "mandataire_nom_voie" : {}, # conditionaly required and typed below
- "mandataire_code_postal": {}, # conditionaly required and typed below
- "mandataire_localite" : {}, # conditionaly required and typed below
- "mandataire_lieu_dit" : {} # conditionaly required and typed below
+ "proprietaire": {"enum": ["Oui", "Non"]},
+ "qualite": {"type": "string"},
+ "denomination": {}, # conditionaly required and typed below
+ "raison_sociale": {}, # conditionaly required and typed below
+ "nom": {"type": "string"},
+ "prenom": {"type": "string"},
+ "numero_voie": {"type": "string"},
+ "nom_voie": {"type": "string"},
+ "code_postal": {"type": "string"},
+ "localite": {"type": "string"},
+ "lieu_dit": {"type": ["string", "null"]},
+ "mandataire_nom": {}, # conditionaly required and typed below
+ "mandataire_prenom": {}, # conditionaly required and typed below
+ "mandataire_numero_voie": {}, # conditionaly required and typed below
+ "mandataire_nom_voie": {}, # conditionaly required and typed below
+ "mandataire_code_postal": {}, # conditionaly required and typed below
+ "mandataire_localite": {}, # conditionaly required and typed below
+ "mandataire_lieu_dit": {} # conditionaly required and typed below
},
# requirements
@@ -166,7 +166,7 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"qualite": {"const": "Un particulier"},
- "denomination" : {"type": "null"},
+ "denomination": {"type": "null"},
"raison_sociale": {"type": "null"}
}
},
@@ -176,7 +176,7 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"qualite": {"const": "Une personne morale"},
- "denomination" : {"type": "string"},
+ "denomination": {"type": "string"},
"raison_sociale": {"type": "string"}
},
"required": ["denomination", "raison_sociale"]
@@ -193,13 +193,13 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"proprietaire": {"const": "Oui"},
- "mandataire_nom" : {"type": "null"},
- "mandataire_prenom" : {"type": "null"},
+ "mandataire_nom": {"type": "null"},
+ "mandataire_prenom": {"type": "null"},
"mandataire_numero_voie": {"type": "null"},
- "mandataire_nom_voie" : {"type": "null"},
+ "mandataire_nom_voie": {"type": "null"},
"mandataire_code_postal": {"type": "null"},
- "mandataire_localite" : {"type": "null"},
- "mandataire_lieu_dit" : {"type": "null"}
+ "mandataire_localite": {"type": "null"},
+ "mandataire_lieu_dit": {"type": "null"}
}
},
@@ -210,14 +210,14 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"proprietaire": {"const": "Non"},
- "mandataire_nom" : {"type": "string"},
- "mandataire_prenom" : {"type": "string"},
+ "mandataire_nom": {"type": "string"},
+ "mandataire_prenom": {"type": "string"},
"mandataire_numero_voie": {"type": "string"},
- "mandataire_nom_voie" : {"type": "string"},
+ "mandataire_nom_voie": {"type": "string"},
"mandataire_code_postal": {"type": "string"},
- "mandataire_localite" : {"type": "string"},
- "mandataire_qualite" : {"type": "string"},
- "mandataire_lieu_dit" : {"type": ["string", "null"]}
+ "mandataire_localite": {"type": "string"},
+ "mandataire_qualite": {"type": "string"},
+ "mandataire_lieu_dit": {"type": ["string", "null"]}
},
"required": [
"mandataire_nom",
@@ -238,7 +238,7 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"mandataire_qualite": {"const": "Un particulier"},
- "mandataire_denomination" : {"type": "null"},
+ "mandataire_denomination": {"type": "null"},
"mandataire_raison_sociale": {"type": "null"}
}
},
@@ -248,7 +248,7 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
{
"properties": {
"mandataire_qualite": {"const": "Une personne morale"},
- "mandataire_denomination" : {"type": "string"},
+ "mandataire_denomination": {"type": "string"},
"mandataire_raison_sociale": {"type": "string"}
},
"required": [
@@ -296,8 +296,8 @@ JSON_SCHEMA_CREATE_DOSSIER_IN = {
JSON_SCHEMA_CREATE_DOSSIER_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of a 'dossier' creation in openADS.API",
- "type" : "object",
+ "title": "Response of a 'dossier' creation in openADS.API",
+ "type": "object",
"properties": {
"numero_dossier": {"type": "string"},
"recepisse": JSON_SCHEMA_FILE_B64
@@ -307,14 +307,14 @@ JSON_SCHEMA_CREATE_DOSSIER_OUT = {
JSON_SCHEMA_GET_DOSSIER_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of a 'dossier' creation in openADS.API",
- "type" : "object",
+ "title": "Response of a 'dossier' creation in openADS.API",
+ "type": "object",
"properties": {
- "etat" : {"type": "string"},
- "date_depot" : JSON_SCHEMA_DATE_FRENCH,
+ "etat": {"type": "string"},
+ "date_depot": JSON_SCHEMA_DATE_FRENCH,
"date_decision": JSON_SCHEMA_DATE_FRENCH,
"date_limite_instruction": JSON_SCHEMA_DATE_FRENCH,
- "decision" : {"type": "string"}
+ "decision": {"type": "string"}
},
"required": [
"etat",
@@ -327,20 +327,20 @@ JSON_SCHEMA_GET_DOSSIER_OUT = {
JSON_SCHEMA_FORWARDFILE = {
"description": "A ForwardFile object (PDF document that must be forwarded to openADS)",
- "$id" : "#forwardfile",
+ "$id": "#forwardfile",
"type": "object",
"properties": {
- "id" : {"type": "integer"},
- "numero_demande" : {"type": "string"},
- "numero_dossier" : {"type": "string"},
- "type_fichier" : {"type": "string"},
- "file_hash" : {"type": "string"},
- "orig_filename" : {"type": "string"},
- "content_type" : {"type": "string"},
- "upload_status" : {"type": "string"},
- "upload_attempt" : {"type": "integer"},
- "upload_msg" : {"type": "string"},
- "content_size" : {"type": "integer"},
+ "id": {"type": "integer"},
+ "numero_demande": {"type": "string"},
+ "numero_dossier": {"type": "string"},
+ "type_fichier": {"type": "string"},
+ "file_hash": {"type": "string"},
+ "orig_filename": {"type": "string"},
+ "content_type": {"type": "string"},
+ "upload_status": {"type": "string"},
+ "upload_attempt": {"type": "integer"},
+ "upload_msg": {"type": "string"},
+ "content_size": {"type": "integer"},
"last_update_datetime": {"type": "string", "format": "date-time"}
},
"required": [
@@ -361,43 +361,43 @@ JSON_SCHEMA_FORWARDFILE = {
JSON_SCHEMA_GET_FWD_FILES_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of a request about the forwarding (detailled) of user files to openADS",
- "type" : "array",
+ "title": "Response of a request about the forwarding (detailled) of user files to openADS",
+ "type": "array",
"items": {"$ref": "#/definitions/forwardfile"},
"definitions": {
- "forwardfile" : JSON_SCHEMA_FORWARDFILE
+ "forwardfile": JSON_SCHEMA_FORWARDFILE
}
}
JSON_SCHEMA_GET_FWD_FILE_STATUS = {
"description": "The status of a ForwardFile",
- "$id" : "#forwardfile-status",
+ "$id": "#forwardfile-status",
"type": "string",
# pylint: disable=anomalous-backslash-in-string
- "pattern": "^\[\w+\] .+ => .+$"
+ "pattern": "^\[\w+\] .+ => .+$" # noqa: W605
}
JSON_SCHEMA_GET_FWD_FILES_STATUS_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of a request about the forwarding (summarized) of user files to openADS",
- "type" : "object",
+ "title": "Response of a request about the forwarding (summarized) of user files to openADS",
+ "type": "object",
"properties": {
"all_forwarded": {"type": "boolean"},
- "pending" : {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}},
+ "pending": {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}},
"uploading": {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}},
- "success" : {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}},
- "failed" : {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}}
+ "success": {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}},
+ "failed": {"type": "array", "items": {"$ref": "#/definitions/forwardfile-status"}}
},
"required": ["all_forwarded", "pending", "uploading", "success", "failed"],
"definitions": {
- "forwardfile-status" : JSON_SCHEMA_GET_FWD_FILE_STATUS
+ "forwardfile-status": JSON_SCHEMA_GET_FWD_FILE_STATUS
}
}
JSON_SCHEMA_GET_COURRIER_OUT = {
"$schema": "http://json-schema.org/draft-07/schema#",
- "title" : "Response of a 'courrier' from an openADS 'dossier'",
- "type" : "object",
+ "title": "Response of a 'courrier' from an openADS 'dossier'",
+ "type": "object",
"properties": {
"courrier": JSON_SCHEMA_FILE_B64
},
diff --git a/atreal_openads/models.py b/atreal_openads/models.py
index 816787d..85e3262 100644
--- a/atreal_openads/models.py
+++ b/atreal_openads/models.py
@@ -18,7 +18,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-"""Models for this connector module.""" # pylint: disable=too-many-lines
+"""Models for this connector module.""" # pylint: disable=too-many-lines
import base64
import datetime
@@ -41,12 +41,12 @@ from passerelle.utils.jsonresponse import APIError
from .json_schemas import (
JSON_SCHEMA_CREATE_DOSSIER_IN,
- #JSON_SCHEMA_CHECK_STATUS_OUT,
- #JSON_SCHEMA_CREATE_DOSSIER_OUT,
- #JSON_SCHEMA_GET_DOSSIER_OUT,
- #JSON_SCHEMA_GET_FWD_FILES_OUT,
- #JSON_SCHEMA_GET_FWD_FILES_STATUS_OUT,
- #JSON_SCHEMA_GET_COURRIER_OUT
+ # JSON_SCHEMA_CHECK_STATUS_OUT,
+ # JSON_SCHEMA_CREATE_DOSSIER_OUT,
+ # JSON_SCHEMA_GET_DOSSIER_OUT,
+ # JSON_SCHEMA_GET_FWD_FILES_OUT,
+ # JSON_SCHEMA_GET_FWD_FILES_STATUS_OUT,
+ # JSON_SCHEMA_GET_COURRIER_OUT
)
from .utils import (
@@ -63,7 +63,7 @@ from .utils import (
)
-class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-attributes
+class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-attributes
"""Represent a file uploaded by a user, to be forwarded to openADS.API."""
STATUSES = [
@@ -124,7 +124,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
def __repr__(self):
return (u'ForwardFile(id=%s,connecteur=%s,collectivite=%s'
',demande=%s,dossier=%s,type=%s,filename=%s,status=%s)') % (
- self.id, # pylint: disable=no-member
+ self.id, # pylint: disable=no-member
unicode(self.connecteur) if hasattr(self, 'connecteur') else None,
unicode(self.collectivite) if hasattr(self, 'collectivite') else None,
self.numero_demande, self.numero_dossier,
@@ -141,7 +141,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
def update_content_type(self, only_if_empty=False):
"""Update the content type from the content of the file."""
if not self.content_type or not only_if_empty:
- if self.upload_file and self.upload_file.size: # pylint: disable=no-member
+ if self.upload_file and self.upload_file.size: # pylint: disable=no-member
# pylint: disable=no-member
self.content_type = magic.from_buffer(self.upload_file.read(1024), mime=True)
else:
@@ -150,7 +150,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
def update_file_hash(self, only_if_empty=False):
"""Update the file_hash field from the content of the file."""
if not self.file_hash or not only_if_empty:
- if self.upload_file and self.upload_file.size: # pylint: disable=no-member
+ if self.upload_file and self.upload_file.size: # pylint: disable=no-member
self.file_hash = get_file_digest(self.upload_file)
else:
self.file_hash = ''
@@ -160,7 +160,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
# this will not be triggered when doing bulk actions like with QuerySet.update()
# @see: https://docs.djangoproject.com/en/2.2/topics/db/models/
# The note entitled "Overridden model methods are not called on bulk operations"
- def save(self, *args, **kwargs): # pylint: disable=arguments-differ
+ def save(self, *args, **kwargs): # pylint: disable=arguments-differ
# delete file content (on success)
if self.upload_status == 'success':
# pylint: disable=no-member
@@ -169,7 +169,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
self.upload_file.delete()
# else, update metadata
else:
- self.size = self.upload_file.size if self.upload_file else 0 # pylint: disable=no-member
+ self.size = self.upload_file.size if self.upload_file else 0 # noqa: E501, pylint: disable=no-member
self.update_file_hash()
self.update_content_type(only_if_empty=True)
# validation (calling self.clean())
@@ -179,7 +179,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
# check that one the following fields must not be blank/null:
# 'file_hash', 'orig_filename', 'upload_file'
# because if they are all empty we dont have any usefull information about the upload
- def clean(self, *args, **kwargs): # pylint: disable=arguments-differ
+ def clean(self, *args, **kwargs): # pylint: disable=arguments-differ
ret = super(ForwardFile, self).clean(*args, **kwargs)
if (not self.file_hash
and not self.orig_filename
@@ -188,8 +188,7 @@ class ForwardFile(models.Model, BaseModel): # pylint: disable=too-many-instance-
raise ValidationError(
_("A %(object)s cannot have all the following fields empty: %(fields)s." % {
'object': self.get_verbose_name(),
- 'fields': ['file_hash', 'orig_filename', 'upload_file']}
- )
+ 'fields': ['file_hash', 'orig_filename', 'upload_file']})
)
return ret
@@ -235,7 +234,7 @@ class Collectivite(models.Model, BaseModel):
@force_encoded_string_output
def __repr__(self):
return u'Collectivite(id=%s,name=%s,connecteur=%s,openADS_id=%s,guichet=%s)' % (
- self.id, unicode(self.name), # pylint: disable=no-member
+ self.id, unicode(self.name), # pylint: disable=no-member
unicode(self.connecteur) if hasattr(self, 'connecteur') else None,
self.openADS_id,
# pylint: disable=no-member
@@ -305,7 +304,7 @@ class Guichet(models.Model, BaseModel):
@force_encoded_string_output
def __repr__(self):
return u'Guichet(id=%s,collectivite=%s,%s)' % (
- self.id, # pylint: disable=no-member
+ self.id, # pylint: disable=no-member
unicode(self.collectivite) if hasattr(self, 'collectivite') else None,
unicode(self))
@@ -354,8 +353,7 @@ class Guichet(models.Model, BaseModel):
or (day > self.ouverture_sem_d
and day < self.fermeture_sem_d
and date_t > ouverture_jour_date_t
- and date_t < fermeture_jour_date_t
- )
+ and date_t < fermeture_jour_date_t)
)
return False
@@ -392,10 +390,10 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
@force_encoded_string_output
def __repr__(self):
return u'AtrealOpenads(id=%s,openADS=%s,login=%s,collectivites=%s,default=%s)' % (
- self.id, # pylint: disable=no-member
+ self.id, # pylint: disable=no-member
unicode(self.openADS_API_url),
unicode(self.basic_auth_username),
- self.collectivites.count(), # pylint: disable=no-member
+ self.collectivites.count(), # pylint: disable=no-member
self.default_collectivite_openADS_id)
def __unicode__(self):
@@ -452,7 +450,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# return the files
return files
- def check_file_dict(self, dict_file, title='payload', b64=True): # pylint: disable=no-self-use
+ def check_file_dict(self, dict_file, title='payload', b64=True): # pylint: disable=no-self-use
"""Ensure a file dict has all its required items."""
# key to get the content
@@ -480,7 +478,6 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
u"Expecting '%s' value in JSON %s in file dict to be a %s (not a %s)" %
('file.filename', title, 'string', type(dict_file['filename'])))
-
def get_first_file_from_payload(self,
payload,
title='payload',
@@ -503,14 +500,14 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
@endpoint(
description=_("Test an openADS 'connexion'")
- #~ get={
- #~ 'description': _("Test an openADS 'connexion'"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_CHECK_STATUS_OUT
- #~ }
- #~ }
- #~ }
+ # get={
+ # 'description': _("Test an openADS 'connexion'"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_CHECK_STATUS_OUT
+ # }
+ # }
+ # }
)
# pylint: disable=unused-argument,arguments-differ,keyword-arg-before-vararg
def check_status(self, request=None, *args, **kwargs):
@@ -520,11 +517,10 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
response.raise_for_status()
return {'response': response.status_code}
-
@endpoint(
perm='can_access',
methods=['post'],
- pattern='^(?P\w+)/?$', # pylint: disable=anomalous-backslash-in-string
+ pattern='^(?P\w+)/?$', # noqa: W605,E501, pylint: disable=anomalous-backslash-in-string
example_pattern='{type_dossier}/',
parameters={
'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
@@ -540,13 +536,13 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
'request_body': {
'schema': {
'application/json': JSON_SCHEMA_CREATE_DOSSIER_IN
- } # pylint: disable=too-many-statements,too-many-branches,too-many-locals
+ } # pylint: disable=too-many-statements,too-many-branches,too-many-locals
}
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_CREATE_DOSSIER_OUT
- #~ }
- #~ }
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_CREATE_DOSSIER_OUT
+ # }
+ # }
}
)
# pylint: disable=unused-argument,keyword-arg-before-vararg
@@ -567,7 +563,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
collectivite = self.get_collectivite(collectivite_id)
# no collectivite instance matching that ID
- except Collectivite.DoesNotExist: # pylint: disable=no-member
+ except Collectivite.DoesNotExist: # pylint: disable=no-member
pass
# a collectivite instance was found
@@ -599,9 +595,9 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
payload["terrain"] = {
"numero_voie": normalize(json_data['fields']['terrain_numero_voie']),
- "nom_voie" : normalize(json_data['fields']['terrain_nom_voie']),
+ "nom_voie": normalize(json_data['fields']['terrain_nom_voie']),
"code_postal": normalize(json_data['fields']['terrain_code_postal']),
- "localite" : normalize(json_data['fields']['terrain_localite']),
+ "localite": normalize(json_data['fields']['terrain_localite']),
"references_cadastrales": []
}
if 'terrain_lieu_dit' in json_data['fields'] and json_data['fields']['terrain_lieu_dit']:
@@ -611,14 +607,14 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
payload["terrain"]["references_cadastrales"].append({
"prefixe": normalize(ref[0]),
"section": normalize(ref[1]),
- "numero" : normalize(ref[2])
+ "numero": normalize(ref[2])
})
if json_data['fields']['autres_parcelles']:
for ref in json_data['fields']['references_cadastrales']:
payload["terrain"]["references_cadastrales"].append({
"prefixe": normalize(ref[0]),
"section": normalize(ref[1]),
- "numero" : normalize(ref[2])
+ "numero": normalize(ref[2])
})
# setup demandeur variable prefix
@@ -638,14 +634,14 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# get the demandeur informations
demandeur = {
"type_personne": type_personne,
- "typologie" : 'petitionnaire' if key == 'demandeurs' else 'delegataire',
- "nom" : normalize(json_data['fields']['%snom' % prefix]),
- "prenom" : normalize(json_data['fields']['%sprenom' % prefix]),
+ "typologie": 'petitionnaire' if key == 'demandeurs' else 'delegataire',
+ "nom": normalize(json_data['fields']['%snom' % prefix]),
+ "prenom": normalize(json_data['fields']['%sprenom' % prefix]),
"adresse": {
"numero_voie": normalize(json_data['fields']['%snumero_voie' % prefix]),
- "nom_voie" : normalize(json_data['fields']['%snom_voie' % prefix]),
+ "nom_voie": normalize(json_data['fields']['%snom_voie' % prefix]),
"code_postal": normalize(json_data['fields']['%scode_postal' % prefix]),
- "localite" : normalize(json_data['fields']['%slocalite' % prefix])
+ "localite": normalize(json_data['fields']['%slocalite' % prefix])
},
"coordonnees": {
"email": normalize(json_data['fields']['%semail' % prefix])
@@ -736,11 +732,11 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# append the file to the list
files.append({
- 'type_fichier' : type_fichier,
+ 'type_fichier': type_fichier,
'orig_filename': filename,
- 'content_type' : content_type,
- 'file_hash' : file_hash,
- 'upload_file' : upload_file
+ 'content_type': content_type,
+ 'file_hash': file_hash,
+ 'upload_file': upload_file
})
# log files to be forwarded
@@ -822,11 +818,11 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
forwardfile.save()
self.logger.debug(
u"Created ForwardFile '%s' for file '%s' (%s)",
- forwardfile.id, # pylint: disable=no-member
+ forwardfile.id, # pylint: disable=no-member
forwardfile.orig_filename,
- forwardfile.upload_file.path # pylint: disable=no-member
+ forwardfile.upload_file.path # pylint: disable=no-member
)
- file_ids.append(forwardfile.id) # pylint: disable=no-member
+ file_ids.append(forwardfile.id) # pylint: disable=no-member
job = self.add_job('upload_user_files',
natural_id=numero_dossier,
@@ -835,7 +831,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
numero_dossier=numero_dossier,
file_ids=file_ids)
self.logger.debug(u"Added a job '%s' for dossier '%s' (%s) with file ids '%s'",
- job.id, # pylint: disable=no-member
+ job.id, # pylint: disable=no-member
numero_dossier,
type_dossier,
file_ids)
@@ -843,28 +839,28 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# respond with the 'numero_dossier' and the recepisse file
return {
'numero_dossier': numero_dossier,
- 'recepisse' : recepisse
+ 'recepisse': recepisse
}
@endpoint(
perm='can_access',
description=_("Get informations about an openADS 'dossier'"),
# pylint: disable=anomalous-backslash-in-string
- pattern='^(?P\w+)/(?P\w+)/?$',
+ pattern='^(?P\w+)/(?P\w+)/?$', # noqa: W605
example_pattern='{type_dossier}/{numero_dossier}',
parameters={
- 'type_dossier' : {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
+ 'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
'numero_dossier': {'description': _("Identifier for 'dossier'"),
'example_value': 'DIA0130551900001'}
},
- #~ get={
- #~ 'description': _("Get informations about an openADS 'dossier'"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_GET_DOSSIER_OUT
- #~ }
- #~ }
- #~ }
+ # get={
+ # 'description': _("Get informations about an openADS 'dossier'"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_GET_DOSSIER_OUT
+ # }
+ # }
+ # }
)
# pylint: disable=unused-argument,keyword-arg-before-vararg
def get_dossier(self, request, type_dossier, numero_dossier, *args, **kwargs):
@@ -896,22 +892,22 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
@endpoint(
perm='can_access',
description=_("Get informations about the forwarding of user files to openADS"),
- pattern='^(?P\w+)/?$', # pylint: disable=anomalous-backslash-in-string
+ pattern='^(?P\w+)/?$', # noqa: W605,E501, pylint: disable=anomalous-backslash-in-string
example_pattern='{numero_dossier}/',
parameters={
'numero_dossier': {'description': _("Identifier for 'dossier'"),
'example_value': 'DIA0130551900001'},
- 'fichier_id' : {'description': _("File identifier"),
- 'example_value': '78'}
+ 'fichier_id': {'description': _("File identifier"),
+ 'example_value': '78'}
},
- #~ get={
- #~ 'description': _("Get informations about the forwarding of user files to openADS"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_GET_FWD_FILES_OUT
- #~ }
- #~ }
- #~ }
+ # get={
+ # 'description': _("Get informations about the forwarding of user files to openADS"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_GET_FWD_FILES_OUT
+ # }
+ # }
+ # }
)
# pylint: disable=unused-argument,keyword-arg-before-vararg,no-self-use
def get_fwd_files(self, request, numero_dossier, fichier_id=None, *args, **kwargs):
@@ -931,26 +927,26 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
except ValueError:
raise APIError('fichier_id must be an integer')
try:
- fwd_files = [ForwardFile.objects.get(id=fichier_id)] # pylint: disable=no-member
- except ForwardFile.DoesNotExist: # pylint: disable=no-member
+ fwd_files = [ForwardFile.objects.get(id=fichier_id)] # pylint: disable=no-member
+ except ForwardFile.DoesNotExist: # pylint: disable=no-member
raise Http404(u"No file matches 'numero_dossier=%s' and 'id=%s'." % (
numero_dossier, fichier_id))
# append each file to the response payload
for fwd_file in fwd_files:
payload.append({
- 'id' : fwd_file.id,
+ 'id': fwd_file.id,
'numero_demande': fwd_file.numero_demande,
'numero_dossier': fwd_file.numero_dossier,
- 'type_fichier' : fwd_file.type_fichier,
- 'file_hash' : fwd_file.file_hash,
- 'orig_filename' : fwd_file.orig_filename,
- 'content_type' : fwd_file.content_type,
- 'upload_status' : fwd_file.upload_status,
+ 'type_fichier': fwd_file.type_fichier,
+ 'file_hash': fwd_file.file_hash,
+ 'orig_filename': fwd_file.orig_filename,
+ 'content_type': fwd_file.content_type,
+ 'upload_status': fwd_file.upload_status,
'upload_attempt': fwd_file.upload_attempt,
- 'upload_msg' : fwd_file.upload_msg,
- 'content_size' : fwd_file.upload_file.size if fwd_file.upload_file else 0,
- 'last_update_datetime' : fwd_file.last_update_datetime
+ 'upload_msg': fwd_file.upload_msg,
+ 'content_size': fwd_file.upload_file.size if fwd_file.upload_file else 0,
+ 'last_update_datetime': fwd_file.last_update_datetime
})
# return the payload containing the list of files
@@ -959,22 +955,22 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
@endpoint(
perm='can_access',
description=_("Get informations about the forwarding of a user file to openADS"),
- pattern='^(?P\w+)/?$', # pylint: disable=anomalous-backslash-in-string
+ pattern='^(?P\w+)/?$', # noqa: W605,E501, pylint: disable=anomalous-backslash-in-string
example_pattern='{numero_dossier}/',
parameters={
'numero_dossier': {'description': _("Identifier for 'dossier'"),
'example_value': 'DIA0130551900001'},
- 'fichier_id' : {'description': _("File identifier"),
- 'example_value': '78'}
+ 'fichier_id': {'description': _("File identifier"),
+ 'example_value': '78'}
},
- #~ get={
- #~ 'description': _("Get informations about the forwarding of a user file to openADS"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_GET_FWD_FILES_STATUS_OUT
- #~ }
- #~ }
- #~ }
+ # get={
+ # 'description': _("Get informations about the forwarding of a user file to openADS"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_GET_FWD_FILES_STATUS_OUT
+ # }
+ # }
+ # }
)
# pylint: disable=unused-argument,keyword-arg-before-vararg
def get_fwd_files_status(self, request, numero_dossier, fichier_id=None, *args, **kwargs):
@@ -986,10 +982,10 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# prepare the response payload
payload = {
'all_forwarded': True,
- 'pending' : [],
- 'uploading' : [],
- 'success' : [],
- 'failed' : []
+ 'pending': [],
+ 'uploading': [],
+ 'success': [],
+ 'failed': []
}
# build a summary of all files statuses
@@ -1009,24 +1005,23 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
@endpoint(
perm='can_access',
description=_("Get a 'courrier' from an openADS 'dossier'"),
- # pylint: disable=anomalous-backslash-in-string
- pattern='^(?P\w+)/(?P\w+)/(?P\w+)/?$',
+ pattern='^(?P\w+)/(?P\w+)/(?P\w+)/?$', # noqa: W605,E501, pylint: disable=anomalous-backslash-in-string
example_pattern='{type_dossier}/{numero_dossier}/{lettre_type}',
parameters={
- 'type_dossier' : {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
+ 'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
'numero_dossier': {'description': _("Identifier for 'dossier'"),
'example_value': 'DIA0130551900001'},
- 'lettre_type' : {'description': _("Courrier ID to get"),
- 'example_value': 'dia_renonciation_preempter'}
+ 'lettre_type': {'description': _("Courrier ID to get"),
+ 'example_value': 'dia_renonciation_preempter'}
},
- #~ get={
- #~ 'description': _("Get a 'courrier' from an openADS 'dossier'"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_GET_COURRIER_OUT
- #~ }
- #~ }
- #~ }
+ # get={
+ # 'description': _("Get a 'courrier' from an openADS 'dossier'"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_GET_COURRIER_OUT
+ # }
+ # }
+ # }
)
# pylint: disable=unused-argument,keyword-arg-before-vararg
def get_courrier(self, request, type_dossier, numero_dossier, lettre_type, *args, **kwargs):
@@ -1065,7 +1060,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# return the 'courrier' file
return {'courrier': courrier}
- def get_response_error(self, response): # pylint: disable=no-self-use
+ def get_response_error(self, response): # pylint: disable=no-self-use
"""Return a error string from an HTTP response."""
try:
# load the response as JSON
@@ -1099,24 +1094,24 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
perm='can_access',
description=_("Trigger the uploading of user's files to openADS"),
# pylint: disable=anomalous-backslash-in-string
- pattern='^(?P\w+)/(?P\w+)/?$',
+ pattern='^(?P\w+)/(?P\w+)/?$', # noqa: W605
example_pattern='{type_dossier}/{numero_dossier}',
parameters={
- 'type_dossier' : {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
+ 'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'},
'numero_dossier': {'description': _("Identifier for 'dossier'"),
'example_value': 'DIA0130551900001'},
- 'file_ids' : {'description': _(("List of ForwardFile IDs to upload "
- "(coma separated)")),
- 'example_value': '12,18'}
- }, # pylint: disable=too-many-statements,too-many-branches,too-many-locals
- #~ get={
- #~ 'description': _("Trigger the uploading of user's files to openADS"),
- #~ 'response_body': {
- #~ 'schema': {
- #~ 'application/json': JSON_SCHEMA_UPLOAD_USER_FILES
- #~ }
- #~ }
- #~ }
+ 'file_ids': {'description': _(("List of ForwardFile IDs to upload "
+ "(coma separated)")),
+ 'example_value': '12,18'}
+ }, # pylint: disable=too-many-statements,too-many-branches,too-many-locals
+ # get={
+ # 'description': _("Trigger the uploading of user's files to openADS"),
+ # 'response_body': {
+ # 'schema': {
+ # 'application/json': JSON_SCHEMA_UPLOAD_USER_FILES
+ # }
+ # }
+ # }
)
# @raise ForwareFile.DoesNotExist if not found
# pylint: disable=unused-argument,keyword-arg-before-vararg
@@ -1148,7 +1143,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
fwd_files_ids = set([ff.id for ff in fwd_files])
file_ids_diff = [item for item in file_ids if item not in fwd_files_ids]
if file_ids_diff:
- raise ForwardFile.DoesNotExist( # pylint: disable=no-member
+ raise ForwardFile.DoesNotExist( # pylint: disable=no-member
"The following ForwardFile IDs were not found: %s." % file_ids_diff)
# filter out files not in status 'pending'
@@ -1165,7 +1160,7 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
else:
# process all ForwardFiles of the 'dossier' (in status 'pending')
- fwd_files = ForwardFile.objects.filter( # pylint: disable=no-member
+ fwd_files = ForwardFile.objects.filter( # pylint: disable=no-member
numero_dossier=numero_dossier,
upload_status='pending'
).all()
@@ -1176,12 +1171,12 @@ class AtrealOpenads(BaseResource, HTTPResource, BaseModel):
# add the file content and data to the payload
payload.append({
- 'filename' : '%s%s' % (
+ 'filename': '%s%s' % (
fwd_file.orig_filename,
'.pdf' if fwd_file.orig_filename[-4:] != '.pdf' else ''),
- 'content_type' : fwd_file.content_type,
- 'b64_content' : base64.b64encode(fwd_file.upload_file.read()),
- 'file_type' : fwd_file.type_fichier
+ 'content_type': fwd_file.content_type,
+ 'b64_content': base64.b64encode(fwd_file.upload_file.read()),
+ 'file_type': fwd_file.type_fichier
})
self.logger.debug("upload_user_files() payload added")
diff --git a/atreal_openads/urls.py b/atreal_openads/urls.py
index 4d5232f..97aafe7 100644
--- a/atreal_openads/urls.py
+++ b/atreal_openads/urls.py
@@ -76,7 +76,7 @@ for view in [
regex_base = r'^(?P[\w,-]+)/'
# pylint: disable=anomalous-backslash-in-string
- regex_pkey = '/(?P[\w,-]+)'
+ regex_pkey = '/(?P[\w,-]+)' # noqa: W605
url_name = url_prefix + view.model.get_class_name_dash_case()
regex_url = '%s%s' % (url_prefix if view_action != 'view' else '',
@@ -93,7 +93,7 @@ for view in [
# for 'guichet' prefix the regex by the collectivite
if view.model.get_class_name() == 'Guichet':
- regex_base += 'collectivite/(?P[\w,-]+)/'
+ regex_base += 'collectivite/(?P[\w,-]+)/' # noqa: W605
# build the regex
regex = regex_base + regex_url + regex_pkey + '$'
diff --git a/atreal_openads/utils.py b/atreal_openads/utils.py
index 3cd9707..a13c954 100644
--- a/atreal_openads/utils.py
+++ b/atreal_openads/utils.py
@@ -56,8 +56,10 @@ class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.fed = []
+
def handle_data(self, data):
self.fed.append(data)
+
def get_data(self):
"""Get the stripped data as a string."""
return ''.join(self.fed)
@@ -103,9 +105,11 @@ def get_file_digest(content, chunk_size=100000):
"""Return a hash for the content specified."""
digest = hashlib.sha256()
content.seek(0)
+
def read_chunk():
"""Read 'chunk_size' amount of data from the content."""
return content.read(chunk_size)
+
for chunk in iter(read_chunk, ''):
digest.update(chunk)
return digest.hexdigest()
@@ -145,7 +149,7 @@ def trunc_str_values(value, limit, visited=None, truncate_text=u'…'):
if visited is None:
visited = []
- if not value in visited:
+ if value not in visited:
if isinstance(value, basestring) and len(value) > limit:
value = value[:limit] + truncate_text
elif isinstance(value, (dict, list, tuple)):
diff --git a/atreal_openads/views.py b/atreal_openads/views.py
index 1d5adfc..8cd2f7a 100644
--- a/atreal_openads/views.py
+++ b/atreal_openads/views.py
@@ -23,13 +23,13 @@
from django.urls import reverse_lazy
from django.views.generic.detail import DetailView
-from django.views.generic.list import ListView
-from django.views.generic.edit import CreateView, UpdateView, DeleteView
+from django.views.generic.list import ListView
+from django.views.generic.edit import CreateView, UpdateView, DeleteView
from passerelle.views import GenericConnectorView
from .models import ForwardFile, Collectivite, Guichet, AtrealOpenads
-from .forms import ForwardFileForm, CollectiviteForm, GuichetForm
+from .forms import ForwardFileForm, CollectiviteForm, GuichetForm
def get_connecteur_from_request(view, key='connecteur'):
@@ -93,7 +93,7 @@ class ForwardFileListView(ListView):
if order_by_field in fields_names:
order_by = order_by_param
- return qset.order_by(order_by) if order_by else qset # qset.order_by()
+ return qset.order_by(order_by) if order_by else qset # qset.order_by()
def get_context_data(self, **kwargs):
context = super(ForwardFileListView, self).get_context_data(**kwargs)
@@ -161,7 +161,7 @@ class ForwardFileDeleteView(DeleteView):
})
return reverse_lazy('view-connector', kwargs={
'connector': 'atreal-openads',
- 'slug' : get_connecteur_from_request(self).slug
+ 'slug': get_connecteur_from_request(self).slug
})
@@ -176,10 +176,10 @@ class CollectiviteView(DetailView):
context = super(CollectiviteView, self).get_context_data(**kwargs)
context['connecteur'] = get_connecteur_from_request(self)
context['guichet_add_url'] = reverse_lazy('create-guichet', kwargs={
- 'connecteur' : context['connecteur'].slug,
+ 'connecteur': context['connecteur'].slug,
'collectivite': self.get_object().id})
context['forward_files_list_url'] = reverse_lazy('col-list-forward-files', kwargs={
- 'connecteur' : context['connecteur'].slug,
+ 'connecteur': context['connecteur'].slug,
'collectivite': self.get_object().id})
return context
@@ -205,7 +205,7 @@ class CollectiviteListView(ListView):
if order_by_field in fields_names:
order_by = order_by_param
- return qset.order_by(order_by) if order_by else qset # qset.order_by()
+ return qset.order_by(order_by) if order_by else qset # qset.order_by()
def get_context_data(self, **kwargs):
context = super(CollectiviteListView, self).get_context_data(**kwargs)
@@ -236,11 +236,11 @@ class CollectiviteCreateView(CreateView):
def get_success_url(self):
if self.request.GET.get('back-to') == 'list-collectivites':
return reverse_lazy('list-collectivites', kwargs={
- 'connecteur' : get_connecteur_from_request(self).slug
+ 'connecteur': get_connecteur_from_request(self).slug
})
return reverse_lazy('view-connector', kwargs={
'connector': 'atreal-openads',
- 'slug' : get_connecteur_from_request(self).slug
+ 'slug': get_connecteur_from_request(self).slug
})
@@ -260,7 +260,7 @@ class CollectiviteUpdateView(UpdateView):
def get_success_url(self):
if self.request.GET.get('back-to') == 'list-collectivites':
return reverse_lazy('list-collectivites', kwargs={
- 'connecteur' : get_connecteur_from_request(self).slug
+ 'connecteur': get_connecteur_from_request(self).slug
})
return self.get_object().get_absolute_url()
@@ -281,11 +281,11 @@ class CollectiviteDeleteView(DeleteView):
def get_success_url(self):
if self.request.GET.get('back-to') == 'list-collectivites':
return reverse_lazy('list-collectivites', kwargs={
- 'connecteur' : get_connecteur_from_request(self).slug
+ 'connecteur': get_connecteur_from_request(self).slug
})
return reverse_lazy('view-connector', kwargs={
'connector': 'atreal-openads',
- 'slug' : get_connecteur_from_request(self).slug
+ 'slug': get_connecteur_from_request(self).slug
})
@@ -325,7 +325,7 @@ class GuichetCreateView(CreateView):
def get_success_url(self):
return reverse_lazy('view-collectivite', kwargs={
'connecteur': get_connecteur_from_request(self).slug,
- 'pk' : get_collectivite_from_request(self).id
+ 'pk': get_collectivite_from_request(self).id
})
@@ -361,7 +361,7 @@ class GuichetDeleteView(DeleteView):
def get_success_url(self):
return reverse_lazy('view-collectivite', kwargs={
'connecteur': get_connecteur_from_request(self).slug,
- 'pk' : get_collectivite_from_request(self).id
+ 'pk': get_collectivite_from_request(self).id
})
diff --git a/tests/conftest.py b/tests/conftest.py
index e2aabbc..b67fb60 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -39,8 +39,8 @@ def media(settings, tmpdir):
def app(request):
"""Return a Django WebTest application."""
wtm = django_webtest.WebTestMixin()
- wtm._patch_settings() # pylint: disable=protected-access
- request.addfinalizer(wtm._unpatch_settings) # pylint: disable=protected-access
+ wtm._patch_settings() # pylint: disable=protected-access
+ request.addfinalizer(wtm._unpatch_settings) # pylint: disable=protected-access
cache.clear()
return django_webtest.DjangoTestApp()
@@ -55,7 +55,7 @@ def endpoint_dummy_cache(monkeypatch):
@urlmatch()
-def internal_server_error(url, request): # pylint: disable=unused-argument
+def internal_server_error(url, request): # pylint: disable=unused-argument
"""Return an HTTP 500 error."""
return response(500, 'Internal server error')
diff --git a/tests/settings.py b/tests/settings.py
index 157ecc7..1dcdc55 100644
--- a/tests/settings.py
+++ b/tests/settings.py
@@ -26,7 +26,7 @@ LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
# include app
-INSTALLED_APPS += ( # pylint: disable=undefined-variable
+INSTALLED_APPS += ( # noqa: F821, pylint: disable=undefined-variable
'atreal_openads',
)
diff --git a/tests/test_atreal_openads.py b/tests/test_atreal_openads.py
index c86a081..5fbf5e6 100644
--- a/tests/test_atreal_openads.py
+++ b/tests/test_atreal_openads.py
@@ -31,14 +31,14 @@ import magic
import mock
import pytest
-from requests import Response
+from requests import Response
-from django.http import Http404
-from django.http.request import HttpRequest, QueryDict
+from django.http import Http404
+from django.http.request import HttpRequest, QueryDict
from django.http.response import JsonResponse
-from django.core.files import File
+from django.core.files import File
from django.core.files.base import ContentFile
-#from django.db.models.query import QuerySet
+# from django.db.models.query import QuerySet
from django.core.exceptions import ValidationError
from passerelle.utils.jsonresponse import APIError
@@ -86,26 +86,28 @@ def atreal_openads(db):
basic_auth_password=OPENADS_API_PASSWORD
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1(db, atreal_openads):
"""Return an instance of a 'Collectivite'."""
- return Collectivite.objects.create( # pylint: disable=no-member
+ return Collectivite.objects.create( # pylint: disable=no-member
name=u'Macollectivité',
connecteur=atreal_openads,
openADS_id='3'
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1_guichet(db, atreal_openads, collectivite_1):
"""Return an instance of a 'Guichet'."""
- return Guichet.objects.create( # pylint: disable=no-member
+ return Guichet.objects.create( # pylint: disable=no-member
collectivite=collectivite_1,
ouverture_jour_h=datetime.time(9, 0),
fermeture_jour_h=datetime.time(17, 0),
- ouverture_sem_d=1, # Lundi
- fermeture_sem_d=5, # Vendredi
+ ouverture_sem_d=1, # Lundi
+ fermeture_sem_d=5, # Vendredi
ouverture_sem_h=datetime.time(8, 30),
fermeture_sem_h=datetime.time(12, 15)
)
@@ -152,7 +154,7 @@ def test_forward_file(atreal_openads):
assert repr(forwardfile) == (
u'ForwardFile(id=%s,connecteur=%s,collectivite=%s'
',demande=%s,dossier=%s,type=%s,filename=%s,status=%s)' % (
- forwardfile.id, unicode(forwardfile.connecteur), None, # pylint: disable=no-member
+ forwardfile.id, unicode(forwardfile.connecteur), None, # pylint: disable=no-member
forwardfile.numero_demande, forwardfile.numero_dossier,
forwardfile.type_fichier, forwardfile.orig_filename, forwardfile.upload_status
)
@@ -183,7 +185,7 @@ def test_forward_file(atreal_openads):
assert forwardfile.content_type == 'application/pdf'
with pytest.raises(ValueError) as exception:
- forwardfile.upload_file.size # pylint: disable=pointless-statement
+ forwardfile.upload_file.size # pylint: disable=pointless-statement
assert unicode(exception.value) == "The 'upload_file' attribute has no file associated with it."
assert forwardfile.size > 0
assert forwardfile.file_hash == ('811588016518eedeb4507f3e4c41be95'
@@ -248,7 +250,7 @@ def test_collectivite(collectivite_1, collectivite_1_guichet):
assert instance_fields[2][1] is col.connecteur
assert instance_fields[3][1] == col.openADS_id
assert instance_fields[4][1] is col.guichet
- assert instance_fields[5][1] is None # shouldn't it be QuerySet?
+ assert instance_fields[5][1] is None # shouldn't it be QuerySet?
params = col.get_url_params()
assert params['connecteur'] == col.connecteur.slug
@@ -279,7 +281,7 @@ def test_guichet(collectivite_1_guichet):
# pylint: disable=unused-argument,redefined-outer-name
-def test_guichet_is_open(collectivite_1_guichet): # pylint: disable=too-many-locals
+def test_guichet_is_open(collectivite_1_guichet): # pylint: disable=too-many-locals
"""Test the method Guichet.is_open()."""
guichet = collectivite_1_guichet
@@ -333,7 +335,7 @@ def test_get_files_from_payload(atreal_openads):
title = 'payload'
- assert atreal_openads.get_files_from_payload({'files':[{'a':'file'}]}) == [{'a':'file'}]
+ assert atreal_openads.get_files_from_payload({'files': [{'a': 'file'}]}) == [{'a': 'file'}]
with pytest.raises(APIError) as exception:
atreal_openads.get_files_from_payload({})
@@ -345,7 +347,7 @@ def test_get_files_from_payload(atreal_openads):
'files', title, 'list', type(''))
with pytest.raises(APIError) as exception:
- atreal_openads.get_files_from_payload({'files': {'i':'invalid'}})
+ atreal_openads.get_files_from_payload({'files': {'i': 'invalid'}})
assert unicode(exception.value) == u"Expecting '%s' value in JSON %s to be a %s (not a %s)" % (
'files', title, 'list', type({}))
@@ -403,7 +405,7 @@ def test_check_file_dict(atreal_openads):
# pylint: disable=unused-argument,redefined-outer-name
-def test_get_first_file_from_payload(atreal_openads): # pylint: disable=invalid-name
+def test_get_first_file_from_payload(atreal_openads): # pylint: disable=invalid-name
"""Test the method AtrealOpenads.get_first_file_from_payload()."""
title = 'payload'
@@ -443,88 +445,88 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
"fields": {
# proprietaire
- "proprietaire" : "Non",
+ "proprietaire": "Non",
"proprietaire_raw": "Non",
# mandataire
- "mandataire_prenom" : "John",
- "mandataire_nom" : "Man",
- "mandataire_email" : "mandataire_email@domain.example",
+ "mandataire_prenom": "John",
+ "mandataire_nom": "Man",
+ "mandataire_email": "mandataire_email@domain.example",
- "mandataire_qualite" : "Une personne morale",
- "mandataire_qualite_raw" : "Une personne morale",
+ "mandataire_qualite": "Une personne morale",
+ "mandataire_qualite_raw": "Une personne morale",
- "mandataire_denomination" : "SELARL",
- "mandataire_raison_sociale" : "Super Juriste",
+ "mandataire_denomination": "SELARL",
+ "mandataire_raison_sociale": "Super Juriste",
"mandataire_numero_voie": "808",
- "mandataire_nom_voie" : "Avenue de l'argent",
- "mandataire_lieu_dit" : "geoisbour",
+ "mandataire_nom_voie": "Avenue de l'argent",
+ "mandataire_lieu_dit": "geoisbour",
"mandataire_code_postal": "13004",
- "mandataire_localite" : "Marseille",
+ "mandataire_localite": "Marseille",
# petitionnaire
"prenom": "Toto",
- "nom" : "Loulou",
- "email" : "petitionnaire_email@domain.example",
+ "nom": "Loulou",
+ "email": "petitionnaire_email@domain.example",
- "qualite" : "Un particulier",
+ "qualite": "Un particulier",
"qualite_raw": "Un particulier",
"numero_voie": "52",
- "nom_voie" : "Avenue de la Blaque",
- "lieu_dit" : "tierquar",
+ "nom_voie": "Avenue de la Blaque",
+ "lieu_dit": "tierquar",
"code_postal": "13004",
- "localite" : "Marseille",
+ "localite": "Marseille",
# terrain
"terrain_numero_voie": "23",
- "terrain_nom_voie" : "Boulevard de la République",
- "terrain_lieu_dit" : "Leecorne",
+ "terrain_nom_voie": "Boulevard de la République",
+ "terrain_lieu_dit": "Leecorne",
"terrain_code_postal": "13002",
- "terrain_localite" : "Marseille",
+ "terrain_localite": "Marseille",
# références cadastrales
- "reference_cadastrale" : [["999", "Z", "0010"]],
- "autres_parcelles" : True,
+ "reference_cadastrale": [["999", "Z", "0010"]],
+ "autres_parcelles": True,
"references_cadastrales": [["123", "D", "9874"]],
# user attached files
"cerfa": {
- "content" : get_file_data(TEST_FILE_CERFA_DIA),
+ "content": get_file_data(TEST_FILE_CERFA_DIA),
"content_type": "invalid/content type",
- "field_id" : "50",
- "filename" : os.path.basename(TEST_FILE_CERFA_DIA)
+ "field_id": "50",
+ "filename": os.path.basename(TEST_FILE_CERFA_DIA)
},
"plan_cadastral_1": {
- "content" : get_file_data(TEST_FILE_PLAN_CADASTRAL),
+ "content": get_file_data(TEST_FILE_PLAN_CADASTRAL),
"content_type": "application/pdf",
- "filename" : os.path.basename(TEST_FILE_PLAN_CADASTRAL)
+ "filename": os.path.basename(TEST_FILE_PLAN_CADASTRAL)
},
"plan_cadastral_2": {
- "content" : get_file_data(TEST_FILE_PLAN_CADASTRAL),
+ "content": get_file_data(TEST_FILE_PLAN_CADASTRAL),
"content_type": "application/pdf",
- #"filename" : 'plan_cad'
+ # "filename": 'plan_cad'
},
"pouvoir_mandat": {
- "content" : get_file_data(TEST_FILE_CERFA_DIA),
+ "content": get_file_data(TEST_FILE_CERFA_DIA),
"content_type": "application/pdf",
- "filename" : 'mandat'
+ "filename": 'mandat'
}
}
}
req = HttpRequest()
- req._body = json.dumps(fake_req_json) # pylint: disable=protected-access
+ req._body = json.dumps(fake_req_json) # pylint: disable=protected-access
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.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 # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
fake_resp_bad = Response()
fake_resp_bad.status_code = 502
@@ -537,8 +539,8 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
assert unicode(exception.value) == "invalid literal for int() with base 10: 'not an integer'"
# guichet is open from Monday/8:30 to Friday/12:15, between 9:00 and 17:00
- now_open = datetime.datetime(2019, 8, 7, 14, 0, 0) # wednesday
- now_closed = datetime.datetime(2019, 8, 10, 16, 0, 0) # saturday
+ now_open = datetime.datetime(2019, 8, 7, 14, 0, 0) # wednesday
+ now_closed = datetime.datetime(2019, 8, 10, 16, 0, 0) # saturday
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
@@ -582,11 +584,11 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
"datetime or string formatted to '%s'" % now_str_fmt))
fake_resp_json = {
- 'numero_dossier' : FAKE_NUMERO_DOSSIER,
+ '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,
+ 'b64_content': get_file_data(TEST_FILE_CERFA_DIA),
+ 'content_type': 'text/plain',
+ 'filename': 'recepisse_depot_%s.pdf' % FAKE_NUMERO_DOSSIER,
}]
}
fake_resp = Response()
@@ -594,7 +596,7 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
@@ -604,8 +606,8 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
assert jresp['recepisse']['content_type'] == 'application/pdf'
assert jresp['recepisse']['filename'] == fake_resp_json['files'][0]['filename']
- fake_resp_json['numero_dossier'] = {'a':'invalid type'}
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp_json['numero_dossier'] = {'a': 'invalid type'}
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
@@ -615,7 +617,7 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
'numero_dossier', 'string', type({})))
del fake_resp_json['numero_dossier']
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
@@ -623,14 +625,14 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
assert unicode(exception.value) == u"Expecting 'numero_dossier' key in JSON response"
fake_resp_json['files'][0]['b64_content'] = 'invalid_;{[content}'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(exception.value) == u'Failed to decode recepisse content from base 64'
- fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
+ fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
@@ -638,7 +640,7 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
# pylint: disable=protected-access
assert unicode(exception.value) == u'No JSON content returned: %r' % fake_resp._content
- job = Job.objects.filter(natural_id=FAKE_NUMERO_DOSSIER).last() # pylint: disable=no-member
+ job = Job.objects.filter(natural_id=FAKE_NUMERO_DOSSIER).last() # pylint: disable=no-member
assert job
job_id = job.id
assert job.status == 'registered'
@@ -650,7 +652,7 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
assert len(job.parameters['file_ids']) == 4
file_ids = job.parameters['file_ids']
- forwardfiles = ForwardFile.objects.filter(id__in=file_ids) # pylint: disable=no-member
+ forwardfiles = ForwardFile.objects.filter(id__in=file_ids) # pylint: disable=no-member
for forwardfile in forwardfiles:
assert forwardfile.numero_demande
assert forwardfile.numero_dossier == FAKE_NUMERO_DOSSIER
@@ -668,10 +670,10 @@ def test_create_dossier(atreal_openads, collectivite_1, collectivite_1_guichet):
requests_post.return_value = fake_resp
atreal_openads.jobs()
- job = Job.objects.get(id=job_id) # pylint: disable=no-member
+ job = Job.objects.get(id=job_id) # pylint: disable=no-member
assert job.status == 'completed'
- forwardfiles = ForwardFile.objects.filter(id__in=file_ids) # pylint: disable=no-member
+ forwardfiles = ForwardFile.objects.filter(id__in=file_ids) # pylint: disable=no-member
for forwardfile in forwardfiles:
assert forwardfile.upload_status == 'success'
@@ -691,10 +693,10 @@ def test_get_dossier(atreal_openads):
assert unicode(exception.value) == "HTTP error: 502"
fake_resp_json = {
- 'etat' : u"Non préemption en cours",
- 'date_depot' : "24/04/2019",
- 'date_decision' : "",
- 'decision' : "",
+ 'etat': u"Non préemption en cours",
+ 'date_depot': "24/04/2019",
+ 'date_decision': "",
+ 'decision': "",
'date_limite_instruction': "24/06/2019"
}
fake_resp = Response()
@@ -702,7 +704,7 @@ def test_get_dossier(atreal_openads):
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
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)
@@ -712,7 +714,7 @@ def test_get_dossier(atreal_openads):
assert jresp['decision'] == fake_resp_json['decision']
assert jresp['date_limite_instruction'] == fake_resp_json['date_limite_instruction']
- fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
+ fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
@@ -721,15 +723,15 @@ def test_get_dossier(atreal_openads):
assert unicode(exception.value) == u'No JSON content returned: %r' % fake_resp._content
fake_resp_json = {
- 'errors' : [{
- 'location' : 'path',
- 'name' : 'Invalid Type',
- 'description' : '"invalid_type" is not one of DIA, PC, DP, AT, PD'
+ 'errors': [{
+ 'location': 'path',
+ 'name': 'Invalid Type',
+ 'description': '"invalid_type" is not one of DIA, PC, DP, AT, PD'
}]
}
fake_resp.status_code = 404
fake_resp.reason = 'Resource not found'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
@@ -765,7 +767,7 @@ def test_get_fwd_files(atreal_openads):
jresp = atreal_openads.get_fwd_files(None, FAKE_NUMERO_DOSSIER, fichier_id=None)
assert jresp is not None
assert len(jresp) == 1
- assert jresp[0]['id'] == forwardfile.id # pylint: disable=no-member
+ assert jresp[0]['id'] == forwardfile.id # pylint: disable=no-member
for attr in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type',
'upload_status', 'upload_msg']:
assert jresp[0][attr] == getattr(forwardfile, attr)
@@ -777,7 +779,7 @@ def test_get_fwd_files(atreal_openads):
jresp = atreal_openads.get_fwd_files(None, FAKE_NUMERO_DOSSIER, fichier_id=forwardfile.id)
assert jresp is not None
assert len(jresp) == 1
- assert jresp[0]['id'] == forwardfile.id # pylint: disable=no-member
+ assert jresp[0]['id'] == forwardfile.id # pylint: disable=no-member
for attr in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type',
'upload_status', 'upload_msg']:
assert jresp[0][attr] == getattr(forwardfile, attr)
@@ -846,9 +848,9 @@ def test_get_courrier(atreal_openads):
fake_resp_json = {
'files': [{
- 'filename' : "instruction_4.pdf",
- 'content_type' : "text/plain",
- 'b64_content' : get_file_data(TEST_FILE_CERFA_DIA)
+ 'filename': "instruction_4.pdf",
+ 'content_type': "text/plain",
+ 'b64_content': get_file_data(TEST_FILE_CERFA_DIA)
}]
}
fake_resp = Response()
@@ -856,7 +858,7 @@ def test_get_courrier(atreal_openads):
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
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, lettre_type)
@@ -865,14 +867,14 @@ def test_get_courrier(atreal_openads):
assert jresp['courrier']['b64_content'] == fake_resp_json['files'][0]['b64_content']
fake_resp_json['files'][0]['b64_content'] = 'invalid_;{[content}'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
atreal_openads.get_courrier(None, 'DIA', FAKE_NUMERO_DOSSIER, lettre_type)
assert unicode(exception.value) == u'Failed to decode courrier content from base 64'
- fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
+ fake_resp._content = 'df[{gfd;g#vfd' # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.get') as requests_get:
requests_get.return_value = fake_resp
@@ -888,8 +890,8 @@ def test_get_response_error(atreal_openads):
fake_resp_json = {
'errors': [
{
- 'location' : 'entity.name',
- 'name' : 'constraint',
+ 'location': 'entity.name',
+ 'name': 'constraint',
'description': 'Must start with an uppercase letter'
}
]
@@ -899,7 +901,7 @@ def test_get_response_error(atreal_openads):
fake_resp.headers = {'Content-Type': 'application/json'}
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'Not Found'
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
error_msg = atreal_openads.get_response_error(fake_resp)
expected_msg = u'[%s] (%s) %s' % (
@@ -909,7 +911,7 @@ def test_get_response_error(atreal_openads):
)
assert error_msg == u"HTTP error: %s, %s" % (fake_resp.status_code, ','.join([expected_msg]))
- fake_resp._content = 'invalid_;{[content}' # pylint: disable=protected-access
+ fake_resp._content = 'invalid_;{[content}' # pylint: disable=protected-access
error_msg = atreal_openads.get_response_error(fake_resp)
# pylint: disable=protected-access
assert error_msg == u"HTTP error: %s, %s" % (fake_resp.status_code, fake_resp._content)
@@ -921,19 +923,19 @@ def test_upload_user_files(atreal_openads):
"""Test the method AtrealOpenads.upload_user_files()."""
req = HttpRequest()
- req._body = '' # pylint: disable=protected-access
+ req._body = '' # pylint: disable=protected-access
req.path = '/upload_user_files'
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.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 # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
- with pytest.raises(ForwardFile.DoesNotExist) as exception: # pylint: disable=no-member
+ with pytest.raises(ForwardFile.DoesNotExist) as exception: # pylint: disable=no-member
atreal_openads.upload_user_files(req, 'DIA', FAKE_NUMERO_DOSSIER, file_ids=[999])
assert unicode(exception.value) == u"The following ForwardFile IDs were not found: %s." % [999]
@@ -945,10 +947,10 @@ def test_upload_user_files(atreal_openads):
with pytest.raises(TypeError) as exception:
atreal_openads.upload_user_files(req, 'DIA', FAKE_NUMERO_DOSSIER,
- file_ids={'invalid':'type'})
+ file_ids={'invalid': 'type'})
assert unicode(exception.value) == (
u"Invalid 'file_ids' argument type '%s' (must be string or list)" % (
- type({'invalid':'type'})))
+ type({'invalid': 'type'})))
forwardfile = build_forwardfile_from_path(atreal_openads,
TEST_FILE_CERFA_DIA,
@@ -957,7 +959,7 @@ def test_upload_user_files(atreal_openads):
forwardfile.save()
assert isinstance(forwardfile, ForwardFile)
assert forwardfile.upload_status == 'pending'
- file_id = forwardfile.id # pylint: disable=no-member
+ file_id = forwardfile.id # pylint: disable=no-member
assert file_id
fake_resp_bad = Response()
@@ -971,7 +973,7 @@ def test_upload_user_files(atreal_openads):
file_ids=str(file_id))
assert unicode(exception.value) == u'HTTP error: 502'
- ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
+ ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
assert isinstance(ffup, ForwardFile)
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type']:
assert getattr(ffup, k) == getattr(forwardfile, k)
@@ -988,14 +990,14 @@ def test_upload_user_files(atreal_openads):
fake_resp.encoding = 'utf-8'
fake_resp.reason = 'OK'
- fake_resp._content = 'invalid_;{[content}' # pylint: disable=protected-access
+ fake_resp._content = 'invalid_;{[content}' # pylint: disable=protected-access
with pytest.raises(APIError) as exception:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.upload_user_files(req, 'DIA', FAKE_NUMERO_DOSSIER, file_ids=[file_id])
assert unicode(exception.value) == u'No JSON content returned: %r' % fake_resp.content
- ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
+ ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
assert isinstance(ffup, ForwardFile)
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type']:
assert getattr(ffup, k) == getattr(forwardfile, k)
@@ -1007,18 +1009,18 @@ def test_upload_user_files(atreal_openads):
jresp = atreal_openads.upload_user_files(req, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp == {'message': 'no file to transfer'}
- ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
+ ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
ffup.upload_status = 'pending'
ffup.save()
fake_resp_json = "You want add some files on %s " % FAKE_NUMERO_DOSSIER
- fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
+ fake_resp._content = json.dumps(fake_resp_json) # pylint: disable=protected-access
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
jresp = atreal_openads.upload_user_files(req, 'DIA', FAKE_NUMERO_DOSSIER)
assert jresp == {'message': 'all files transfered successfully'}
- ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
+ ffup = ForwardFile.objects.get(id=file_id) # pylint: disable=no-member
assert isinstance(ffup, ForwardFile)
for k in ['numero_dossier', 'type_fichier', 'file_hash', 'orig_filename', 'content_type']:
assert getattr(ffup, k) == getattr(forwardfile, k)
diff --git a/tests/test_forms.py b/tests/test_forms.py
index 70afbf8..eafff82 100644
--- a/tests/test_forms.py
+++ b/tests/test_forms.py
@@ -70,26 +70,28 @@ def atreal_openads(db):
basic_auth_password=OPENADS_API_PASSWORD
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1(db, atreal_openads):
"""Return an instance of a 'Collectivite'."""
- return Collectivite.objects.create( # pylint: disable=no-member
+ return Collectivite.objects.create( # pylint: disable=no-member
name=u'Macollectivité',
connecteur=atreal_openads,
openADS_id='3'
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1_guichet(db, atreal_openads, collectivite_1):
"""Return an instance of a 'Guichet'."""
- return Guichet.objects.create( # pylint: disable=no-member
+ return Guichet.objects.create( # pylint: disable=no-member
collectivite=collectivite_1,
ouverture_jour_h=datetime.time(9, 0),
fermeture_jour_h=datetime.time(17, 0),
- ouverture_sem_d=1, # Lundi
- fermeture_sem_d=5, # Vendredi
+ ouverture_sem_d=1, # Lundi
+ fermeture_sem_d=5, # Vendredi
ouverture_sem_h=datetime.time(8, 30),
fermeture_sem_h=datetime.time(12, 15)
)
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 4a6508f..8e255d2 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -27,7 +27,7 @@ import datetime
import pytest
-from django.core.files import File
+from django.core.files import File
from django.core.files.base import ContentFile
from atreal_openads.utils import (
@@ -80,26 +80,28 @@ def atreal_openads(db):
basic_auth_password=OPENADS_API_PASSWORD
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1(db, atreal_openads):
"""Return an instance of a 'Collectivite'."""
- return Collectivite.objects.create( # pylint: disable=no-member
+ return Collectivite.objects.create( # pylint: disable=no-member
name=u'Macollectivité',
connecteur=atreal_openads,
openADS_id='3'
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1_guichet(db, atreal_openads, collectivite_1):
"""Return an instance of a 'Guichet'."""
- return Guichet.objects.create( # pylint: disable=no-member
+ return Guichet.objects.create( # pylint: disable=no-member
collectivite=collectivite_1,
ouverture_jour_h=datetime.time(9, 0),
fermeture_jour_h=datetime.time(17, 0),
- ouverture_sem_d=1, # Lundi
- fermeture_sem_d=5, # Vendredi
+ ouverture_sem_d=1, # Lundi
+ fermeture_sem_d=5, # Vendredi
ouverture_sem_h=datetime.time(8, 30),
fermeture_sem_h=datetime.time(12, 15)
)
@@ -114,7 +116,7 @@ def test_to_dash_case():
assert to_dash_case('') == ''
-def test_force_encoded_string_output(): # pylint: disable=invalid-name
+def test_force_encoded_string_output(): # pylint: disable=invalid-name
"""Test for function 'force_encoded_string_output()'."""
def a_str_function():
@@ -242,17 +244,17 @@ def test_trunc_str_values():
dic = {'a': '123456789', 'b123456789': '987654321'}
assert trunc_str_values(dic, 5) == {'a': u'12345…', 'b123456789': u'98765…'}
- dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1':'ABCDEFGHIJK'}}
+ dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1': 'ABCDEFGHIJK'}}
assert trunc_str_values(dic, 5) == {'a': u'12345…', 'b123456789': u'98765…',
'c': {'c1': u'ABCDE…'}}
- dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1':'ABCDEFGHIJK'},
+ dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1': 'ABCDEFGHIJK'},
'd': ['123456789']}
assert trunc_str_values(dic, 5) == {'a': u'12345…', 'b123456789': u'98765…',
'c': {'c1': u'ABCDE…'}, 'd': [u'12345…']}
- dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1':'ABCDEFGHIJK'},
- 'd': ['123456789', {'eeeeeeeeee':'132456789'}]}
+ dic = {'a': '123456789', 'b123456789': '987654321', 'c': {'c1': 'ABCDEFGHIJK'},
+ 'd': ['123456789', {'eeeeeeeeee': '132456789'}]}
assert trunc_str_values(dic, 5) == {'a': u'12345…', 'b123456789': u'98765…',
'c': {'c1': u'ABCDE…'},
'd': [u'12345…', {'eeeeeeeeee': u'13245…'}]}
diff --git a/tests/test_views.py b/tests/test_views.py
index 525d8c6..c206708 100644
--- a/tests/test_views.py
+++ b/tests/test_views.py
@@ -26,9 +26,9 @@ import datetime
import pytest
-from django.http.request import HttpRequest, QueryDict
-from django.urls.base import resolve
-from django.core.files import File
+from django.http.request import HttpRequest, QueryDict
+from django.urls.base import resolve
+from django.core.files import File
from atreal_openads.views import (
get_connecteur_from_request,
@@ -85,35 +85,38 @@ def atreal_openads(db):
basic_auth_password=OPENADS_API_PASSWORD
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1(db, atreal_openads):
"""Return an instance of a 'Collectivite'."""
- return Collectivite.objects.create( # pylint: disable=no-member
+ return Collectivite.objects.create( # pylint: disable=no-member
name=u'Macollectivité',
connecteur=atreal_openads,
openADS_id='3'
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def collectivite_1_guichet(db, atreal_openads, collectivite_1):
"""Return an instance of a 'Guichet'."""
- return Guichet.objects.create( # pylint: disable=no-member
+ return Guichet.objects.create( # pylint: disable=no-member
collectivite=collectivite_1,
ouverture_jour_h=datetime.time(9, 0),
fermeture_jour_h=datetime.time(17, 0),
- ouverture_sem_d=1, # Lundi
- fermeture_sem_d=5, # Vendredi
+ ouverture_sem_d=1, # Lundi
+ fermeture_sem_d=5, # Vendredi
ouverture_sem_h=datetime.time(8, 30),
fermeture_sem_h=datetime.time(12, 15)
)
+
@pytest.fixture
# pylint: disable=unused-argument,redefined-outer-name,invalid-name
def forwardfile_1(db, atreal_openads, collectivite_1):
"""Return an instance of a 'ForwardFile'."""
- return ForwardFile.objects.create( # pylint: disable=no-member
+ return ForwardFile.objects.create( # pylint: disable=no-member
connecteur=atreal_openads,
collectivite=collectivite_1,
numero_demande='45641531',
@@ -128,7 +131,7 @@ def forwardfile_1(db, atreal_openads, collectivite_1):
# pylint: disable=unused-argument,redefined-outer-name
-def test_get_connecteur_from_request(atreal_openads, forwardfile_1): # pylint: disable=invalid-name
+def test_get_connecteur_from_request(atreal_openads, forwardfile_1): # pylint: disable=invalid-name
"""Test for function 'get_connecteur_from_request()'."""
req = HttpRequest()
@@ -136,12 +139,12 @@ def test_get_connecteur_from_request(atreal_openads, forwardfile_1): # pylint: d
atreal_openads.slug, forwardfile_1.id)
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = ForwardFileView()
@@ -153,7 +156,7 @@ def test_get_connecteur_from_request(atreal_openads, forwardfile_1): # pylint: d
# pylint: disable=unused-argument,redefined-outer-name
-def test_get_collectivite_from_request(atreal_openads, collectivite_1): # pylint: disable=invalid-name
+def test_get_collectivite_from_request(atreal_openads, collectivite_1): # noqa: E501, pylint: disable=invalid-name
"""Test for function 'get_collectivite_from_request()'."""
req = HttpRequest()
@@ -161,12 +164,12 @@ def test_get_collectivite_from_request(atreal_openads, collectivite_1): # pylint
atreal_openads.slug, collectivite_1.id)
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = ForwardFileListView()
@@ -186,12 +189,12 @@ def test_forwardfile_view(atreal_openads, collectivite_1, forwardfile_1):
atreal_openads.slug, forwardfile_1.id)
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = ForwardFileView()
@@ -287,12 +290,12 @@ def test_collectivite_view(atreal_openads, collectivite_1, forwardfile_1):
atreal_openads.slug, collectivite_1.id)
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = CollectiviteView()
@@ -384,12 +387,12 @@ def test_guichet_view(atreal_openads, collectivite_1, collectivite_1_guichet):
atreal_openads.slug, collectivite_1.id, collectivite_1_guichet.id)
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = GuichetView()
@@ -443,12 +446,12 @@ def test_connecteur_view(atreal_openads):
req.path = '/atreal-openads/%s/' % atreal_openads.slug
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.GET = QueryDict(mutable=True) # required because of encoding setter
+ req.POST = QueryDict(mutable=True) # required because of encoding setter
req.content_params = None
req.COOKIES = {}
req.META = {}
- req._read_started = False # pylint: disable=protected-access
+ req._read_started = False # pylint: disable=protected-access
req.resolver_match = resolve(req.path)
view = AtrealOpenadsView()