passerelle/tests/test_fake_family.py

87 lines
3.2 KiB
Python

import pytest
from django.urls import reverse
from passerelle.contrib.fake_family.models import FakeFamily
pytestmark = pytest.mark.django_db
def test_init_fake_family():
fake = FakeFamily.objects.create()
jsondb = fake.jsondatabase
assert len(jsondb['adults']) == 22
assert len(jsondb['children']) == 50
family_id = fake.get_familyid_by_nameid('fake_nameid')
assert family_id == '1'
family = jsondb['families'][family_id]
assert len(fake.get_list_of('adults', family_id)) == len(family['adults'])
assert len(fake.get_list_of('children', family_id)) == len(family['children'])
@pytest.fixture
def fakefam(db):
return FakeFamily.objects.create(title='fakefam', slug='fakefam')
def test_fake_family_dump(app, fakefam):
resp = app.get(reverse('fake-family-dump', kwargs={'slug': fakefam.slug}))
assert resp.json == fakefam.jsondatabase
def test_fake_family_urls(app, fakefam):
name_id = '__test_name_id__'
family = fakefam.jsondatabase['families']['1']
adult_id = family['adults'][0]
adult = fakefam.jsondatabase['adults'][adult_id]
login = adult['login']
password = adult['password']
resp = app.get(
reverse('fake-family-link', kwargs={'slug': fakefam.slug})
+ '?NameID=%s&login=%s&password=%s' % (name_id, login, password)
)
assert resp.json['err'] == 0
assert resp.json['data'] == adult
resp = app.get(reverse('fake-family-info', kwargs={'slug': fakefam.slug}) + '?NameID=%s' % name_id)
assert resp.json['err'] == 0
assert resp.json['data']['adults'][0]['address'] == adult['address']
resp = app.get(
reverse('fake-family-key', kwargs={'slug': fakefam.slug, 'key': 'adults'}) + '?NameID=%s' % name_id
)
assert resp.json['err'] == 0
assert resp.json['data'][0]['address'] == adult['address']
resp = app.get(
reverse('fake-family-key', kwargs={'slug': fakefam.slug, 'key': 'children'}) + '?NameID=%s' % name_id
)
assert resp.json['err'] == 0
assert len(resp.json['data']) == 2
resp = app.get(reverse('fake-family-unlink', kwargs={'slug': fakefam.slug}) + '?NameID=%s' % name_id)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
resp = app.get(reverse('fake-family-unlink', kwargs={'slug': fakefam.slug}) + '?NameID=%s' % name_id)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok (but there was no links)'
def test_fake_family_bad_login(app, fakefam):
name_id = '__test_name_id__'
family = fakefam.jsondatabase['families']['1']
adult_id = family['adults'][0]
adult = fakefam.jsondatabase['adults'][adult_id]
login = adult['login']
password = 'bad' + adult['password']
resp = app.get(
reverse('fake-family-link', kwargs={'slug': fakefam.slug})
+ '?NameID=%s&login=%s&password=%s' % (name_id, login, password),
status=403,
)
assert resp.json['err'] == 100
assert resp.json['err_desc'] == 'bad password'
login = 'bad@login'
resp = app.get(
reverse('fake-family-link', kwargs={'slug': fakefam.slug})
+ '?NameID=%s&login=%s&password=%s' % (name_id, login, password),
status=403,
)
assert resp.json['err'] == 100
assert resp.json['err_desc'] == 'unknown login'