149 lines
4.5 KiB
Python
149 lines
4.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""Testing forms."""
|
|
|
|
import os
|
|
import base64
|
|
import datetime
|
|
|
|
import pytest
|
|
|
|
from django.core.files import File
|
|
|
|
from atreal_openads.forms import (
|
|
ForwardFileForm,
|
|
CollectiviteForm,
|
|
GuichetForm
|
|
)
|
|
|
|
from atreal_openads.models import (
|
|
ForwardFile,
|
|
Guichet,
|
|
Collectivite,
|
|
AtrealOpenads
|
|
)
|
|
|
|
|
|
CONNECTOR_NAME = 'atreal-openads'
|
|
CONNECTOR_SLUG = 'atreal'
|
|
COLLECTIVITE = 79
|
|
OPENADS_API_LOGIN = 'publik-passerelle'
|
|
OPENADS_API_PASSWORD = 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))
|
|
|
|
TESTS_DIR = os.path.dirname(__file__)
|
|
RESOURCES_DIR = os.path.join(TESTS_DIR, 'resources')
|
|
TEST_FILE_CERFA_DIA = os.path.join(RESOURCES_DIR, 'cerfa_10072-02.pdf')
|
|
TEST_FILE_PLAN_CADASTRAL = os.path.join(RESOURCES_DIR, 'plancadastral.pdf')
|
|
|
|
|
|
@pytest.fixture
|
|
# pylint: disable=unused-argument,invalid-name
|
|
def atreal_openads(db):
|
|
"""Return an instance of a connector AtrealOpenads."""
|
|
return AtrealOpenads.objects.create(
|
|
slug=CONNECTOR_SLUG,
|
|
default_collectivite_openADS_id=COLLECTIVITE,
|
|
openADS_API_url=OPENADS_API_URL,
|
|
basic_auth_username=OPENADS_API_LOGIN,
|
|
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
|
|
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
|
|
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_h=datetime.time(8, 30),
|
|
fermeture_sem_h=datetime.time(12, 15)
|
|
)
|
|
|
|
|
|
# pylint: disable=unused-argument,redefined-outer-name
|
|
def test_forwardfile_form(atreal_openads, collectivite_1):
|
|
"""Test for ForwardFileForm."""
|
|
|
|
form = ForwardFileForm()
|
|
assert form.instance is not None
|
|
|
|
forwardfile = ForwardFile(
|
|
connecteur=None,
|
|
collectivite=None,
|
|
numero_demande='45641531',
|
|
numero_dossier=FAKE_NUMERO_DOSSIER,
|
|
type_fichier='CERFA',
|
|
orig_filename=os.path.basename(TEST_FILE_CERFA_DIA),
|
|
content_type='application/pdf',
|
|
file_hash='ffdf456fdsvgb4bgfb6g4f5b',
|
|
upload_file=File(open(TEST_FILE_CERFA_DIA, 'r')),
|
|
upload_status='pending'
|
|
)
|
|
|
|
form_with_instance = ForwardFileForm(instance=forwardfile, collectivite=collectivite_1)
|
|
assert form_with_instance.instance is forwardfile
|
|
assert form_with_instance.instance.collectivite is collectivite_1
|
|
|
|
form_with_instance = ForwardFileForm(instance=forwardfile, connecteur=atreal_openads)
|
|
assert form_with_instance.instance is forwardfile
|
|
assert form_with_instance.instance.connecteur is atreal_openads
|
|
|
|
# TODO check the queryset of the collectivite
|
|
|
|
|
|
# pylint: disable=unused-argument,redefined-outer-name
|
|
def test_collectivite_form(atreal_openads):
|
|
"""Test for CollectiviteForm."""
|
|
|
|
form = CollectiviteForm()
|
|
assert form.instance is not None
|
|
|
|
col = Collectivite(
|
|
connecteur=None,
|
|
name=u'Ma collectivité',
|
|
openADS_id=3
|
|
)
|
|
|
|
form_with_instance = CollectiviteForm(instance=col, connecteur=atreal_openads)
|
|
assert form_with_instance.instance is col
|
|
assert form_with_instance.instance.connecteur is atreal_openads
|
|
|
|
|
|
# pylint: disable=unused-argument,redefined-outer-name
|
|
def test_guichet_form(atreal_openads, collectivite_1):
|
|
"""Test for GuichetForm."""
|
|
|
|
form = GuichetForm()
|
|
assert form.instance is not None
|
|
|
|
gui = Guichet(
|
|
collectivite=None,
|
|
ouverture_jour_h=datetime.time(9, 0, 0),
|
|
fermeture_jour_h=datetime.time(18, 0, 0),
|
|
ouverture_sem_d=1,
|
|
fermeture_sem_d=5,
|
|
ouverture_sem_h=datetime.time(10, 30, 0),
|
|
fermeture_sem_h=datetime.time(12, 15, 0)
|
|
)
|
|
|
|
form_with_instance = GuichetForm(instance=gui, collectivite=collectivite_1)
|
|
assert form_with_instance.instance is gui
|
|
assert form_with_instance.instance.collectivite is collectivite_1
|