From 1637c2757484c04263d0f668d6b8724b1cdc4313 Mon Sep 17 00:00:00 2001 From: Emmanuel Cazenave Date: Wed, 13 Jan 2021 17:09:48 +0100 Subject: [PATCH] upgrade ci infra (#50115) --- Jenkinsfile | 13 +++++++++++++ tests/settings.py | 14 ++++++++++++++ tests/test_connector.py | 34 ++++++++++++++++++++++++++++++++++ tox.ini | 19 +++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 tests/settings.py create mode 100644 tests/test_connector.py create mode 100644 tox.ini diff --git a/Jenkinsfile b/Jenkinsfile index 72f9435..fe21a16 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,20 @@ pipeline { agent any + options { + disableConcurrentBuilds() + } stages { + stage('Unit Tests') { + steps { + sh 'tox -rv' + } + post { + always { + mergeJunitResults() + } + } + } stage('Packaging') { steps { script { diff --git a/tests/settings.py b/tests/settings.py new file mode 100644 index 0000000..d74954a --- /dev/null +++ b/tests/settings.py @@ -0,0 +1,14 @@ +import os + + +INSTALLED_APPS += ('grandlyon_cartads_cs',) + + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'TEST': { + 'NAME': 'passerelle-grandlyon-cartads-cs-test-%s' % os.environ.get("BRANCH_NAME", "").replace('/', '-')[:40], + } + } +} diff --git a/tests/test_connector.py b/tests/test_connector.py new file mode 100644 index 0000000..3fe92ce --- /dev/null +++ b/tests/test_connector.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + + +from django.contrib.contenttypes.models import ContentType +from django.core.cache import cache +import django_webtest +import pytest + +from grandlyon_cartads_cs.models import GLCartaDSCS +from passerelle.base.models import ApiUser, AccessRight + + +@pytest.fixture +def app(request): + wtm = django_webtest.WebTestMixin() + wtm._patch_settings() + cache.clear() + yield django_webtest.DjangoTestApp() + wtm._unpatch_settings() + + +@pytest.fixture +def connector(db): + connector = GLCartaDSCS.objects.create( + slug='test', token_url='https://whatever') + 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) + + +def test_dummny(app, connector): + assert True diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..73c448c --- /dev/null +++ b/tox.ini @@ -0,0 +1,19 @@ +[tox] +toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/passerelle-grandlyon-cartads-cs/{env:BRANCH_NAME:} +envlist = py3-{django111,django22} + +[testenv] +usedevelop = True +setenv = + DJANGO_SETTINGS_MODULE=passerelle.settings + PASSERELLE_SETTINGS_FILE=tests/settings.py +deps = + django111: django>=1.11,<1.12 + django22: django>=2.2,<2.3 + git+https://git.entrouvert.org/passerelle.git + django-webtest + psycopg2-binary + pytest + pytest-django +commands = + py.test {posargs: --junitxml=junit-{envname}.xml tests/}