Add some unit tests : method compute.

This commit is contained in:
Christophe Boulanger 2018-03-07 16:35:48 +01:00
parent 16c3a201fd
commit 3511f0100b
1 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,41 @@
# DJANGO_SETTINGS_MODULE=passerelle.settings PASSERELLE_SETTINGS_FILE=tests/settings.py py.test --pdb
import pytest
import django_webtest
from django.contrib.contenttypes.models import ContentType
from passerelle_imio_extra_fees.models import ExtraFees
from passerelle.base.models import ApiUser, AccessRight
@pytest.fixture
def app(request):
# creation de l'application Django
wtm = django_webtest.WebTestMixin()
wtm._patch_settings()
request.addfinalizer(wtm._unpatch_settings)
return django_webtest.DjangoTestApp()
@pytest.fixture
def connector(db):
# creation du connecteur et ouverture de la permission "can_access" sans authentification.
connector = ExtraFees.objects.create(slug='test')
api = ApiUser.objects.create(username='all', keytype='', key='')
obj_type = ContentType.objects.get_for_model(connector)
AccessRight.objects.create(
codename='can_access', apiuser=api,
resource_type=obj_type, resource_pk=connector.pk)
return connector
def test_zero_fees_compute(app, connector):
dic ={'data':[]}
resp = app.post_json('/extra-fees/test/compute', params=dic)
assert resp.json.get('data')[0].get('amount') == '0.00'
def test_fees_compute(app, connector):
connector.max_doc_in_letter = 5
connector.belgium_postage_fee = '0.5'
connector.save()
nb_document = 18
dic ={'data':[{'request_data':{'nb_documents':nb_document,'postage_fee':connector.belgium_postage_fee}}]}
resp = app.post_json('/extra-fees/test/compute', params=dic)
assert resp.json.get('data')[0].get('amount') == '2.00'