add very basic tests
This commit is contained in:
parent
16bbebecde
commit
2183f49d1d
|
@ -0,0 +1,47 @@
|
|||
import pytest
|
||||
from httmock import urlmatch, HTTMock, response, remember_called
|
||||
|
||||
import django_webtest
|
||||
|
||||
from django.core.files import File
|
||||
from django.core.cache import cache
|
||||
from django.utils import six
|
||||
from io import BytesIO
|
||||
|
||||
from utils import make_resource
|
||||
|
||||
if six.PY2:
|
||||
collect_ignore = ['wcs/']
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def media(settings, tmpdir):
|
||||
settings.MEDIA_ROOT = str(tmpdir.mkdir('media'))
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def app(request):
|
||||
wtm = django_webtest.WebTestMixin()
|
||||
wtm._patch_settings()
|
||||
request.addfinalizer(wtm._unpatch_settings)
|
||||
cache.clear()
|
||||
return django_webtest.DjangoTestApp()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def endpoint_dummy_cache(monkeypatch):
|
||||
from django.core.cache import caches
|
||||
import passerelle.views
|
||||
monkeypatch.setattr(
|
||||
passerelle.views, 'cache', caches['dummy'])
|
||||
|
||||
|
||||
@urlmatch()
|
||||
def internal_server_error(url, request):
|
||||
return response(500, 'Internal server error')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_500():
|
||||
with HTTMock(internal_server_error):
|
||||
yield None
|
|
@ -1,18 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import pytest
|
||||
|
||||
from django.core.cache import cache
|
||||
import django_webtest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def app(request):
|
||||
wtm = django_webtest.WebTestMixin()
|
||||
wtm._patch_settings()
|
||||
cache.clear()
|
||||
yield django_webtest.DjangoTestApp()
|
||||
wtm._unpatch_settings()
|
||||
|
||||
|
||||
def test_dummny(app):
|
||||
assert True
|
|
@ -0,0 +1,8 @@
|
|||
import utils
|
||||
|
||||
from passerelle_minint.minint_maarch.models import MinIntMaarch
|
||||
|
||||
|
||||
def test_creation(app, db):
|
||||
resource = utils.make_resource(MinIntMaarch, wsdl_url='https://example.com/',
|
||||
slug='slug', verify_cert=True)
|
|
@ -0,0 +1,8 @@
|
|||
import utils
|
||||
|
||||
from passerelle_minint.minint_seisin.models import SeisinManagement
|
||||
|
||||
|
||||
def test_creation(app, db):
|
||||
resource = utils.make_resource(SeisinManagement, wsdl_url='https://example.com/',
|
||||
slug='slug', verify_cert=True)
|
|
@ -0,0 +1,65 @@
|
|||
import json
|
||||
|
||||
import mock
|
||||
import httmock
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
|
||||
from passerelle.base.models import ApiUser, AccessRight
|
||||
from passerelle.compat import json_loads
|
||||
|
||||
|
||||
def generic_endpoint_url(connector, endpoint, slug='test'):
|
||||
return reverse('generic-endpoint', kwargs={
|
||||
'connector': connector, 'slug': slug, 'endpoint': endpoint})
|
||||
|
||||
|
||||
def setup_access_rights(obj):
|
||||
api = ApiUser.objects.create(username='all',
|
||||
keytype='', key='')
|
||||
obj_type = ContentType.objects.get_for_model(obj)
|
||||
AccessRight.objects.create(codename='can_access', apiuser=api,
|
||||
resource_type=obj_type, resource_pk=obj.pk)
|
||||
return obj
|
||||
|
||||
|
||||
class FakedResponse(mock.Mock):
|
||||
headers = {}
|
||||
|
||||
def json(self):
|
||||
return json_loads(self.content)
|
||||
|
||||
|
||||
def mock_url(url=None, response='', status_code=200, headers=None):
|
||||
urlmatch_kwargs = {}
|
||||
if url:
|
||||
parsed = urlparse.urlparse(url)
|
||||
if parsed.netloc:
|
||||
urlmatch_kwargs['netloc'] = parsed.netloc
|
||||
if parsed.path:
|
||||
urlmatch_kwargs['path'] = parsed.path
|
||||
|
||||
if not isinstance(response, str):
|
||||
response = json.dumps(response)
|
||||
|
||||
@httmock.urlmatch(**urlmatch_kwargs)
|
||||
def mocked(url, request):
|
||||
return httmock.response(status_code, response, headers, request=request)
|
||||
return httmock.HTTMock(mocked)
|
||||
|
||||
|
||||
def make_resource(model_class, **kwargs):
|
||||
resource = model_class.objects.create(**kwargs)
|
||||
setup_access_rights(resource)
|
||||
return resource
|
||||
|
||||
|
||||
def endpoint_get(expected_url, app, resource, endpoint, **kwargs):
|
||||
url = generic_endpoint_url(
|
||||
connector=resource.__class__.get_connector_slug(),
|
||||
endpoint=endpoint,
|
||||
slug=resource.slug)
|
||||
assert url == expected_url, 'endpoint URL has changed'
|
||||
return app.get(url, **kwargs)
|
Loading…
Reference in New Issue