Merge branch 'kerl/ci' into 'master'

Intégration continue

See merge request klub-dev-ens/authens!17
This commit is contained in:
Ludovic Stephan 2020-07-27 23:41:51 +02:00
commit b93e56db4d
14 changed files with 84 additions and 15 deletions

3
.gitignore vendored
View file

@ -11,3 +11,6 @@ __pycache__
# Vim # Vim
*.swp *.swp
*.swo *.swo
# Tests
.tox

54
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,54 @@
image: python
stages:
- linters
- tests
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/vendor/pip"
cache:
paths:
- vendor
linters:
stage: linters
before_script:
- mkdir -p vendor/pip
- pip install --upgrade black isort flake8
script:
- black --check .
- isort --check --diff .
- flake8 --exit-zero authens
before_script:
- mkdir -p vendor/{apt,pip}
- apt-get update -q && apt-get -o dir::cache::archives="vendor/apt" install -yqq python3-dev libldap2-dev libsasl2-dev
- pip install tox
python35:
image: python:3.5
stage: tests
script:
- tox -e py35-django22
python36:
image: python:3.6
stage: tests
script:
- tox -e py36-django22
- tox -e py36-django30
python37:
image: python:3.7
stage: tests
script:
- tox -e py37-django22
- tox -e py37-django30
python38:
image: python:3.8
stage: tests
script:
- tox -e py38-django22
- tox -e py38-django30

View file

@ -1,7 +1,7 @@
from django import forms from django import forms
from django.contrib.auth import forms as auth_forms, authenticate from django.contrib.auth import authenticate, forms as auth_forms
from django.utils.translation import gettext_lazy as _
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _
def promo_choices(): def promo_choices():

View file

@ -1,8 +1,7 @@
# Generated by Django 3.0.6 on 2020-05-17 11:58 # Generated by Django 3.0.6 on 2020-05-17 11:58
import django.db.models.deletion
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration): class Migration(migrations.Migration):

View file

@ -1,8 +1,7 @@
# Generated by Django 3.0.6 on 2020-06-12 17:26 # Generated by Django 3.0.6 on 2020-06-12 17:26
import django.db.models.deletion
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration): class Migration(migrations.Migration):

View file

@ -2,7 +2,6 @@
# TODO: make the python-ldap dependency optional # TODO: make the python-ldap dependency optional
import ldap import ldap
from django.conf import settings from django.conf import settings
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model

View file

@ -1,7 +1,7 @@
"""Internal utility functions used by authens.""" """Internal utility functions used by authens."""
from urllib.parse import urlunparse
from cas import CASClient from cas import CASClient
from urllib.parse import urlunparse
def get_cas_client(request): def get_cas_client(request):

View file

@ -6,9 +6,9 @@ from django.contrib.auth import views as auth_views
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.shortcuts import redirect from django.shortcuts import redirect
from django.urls import reverse_lazy
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.urls import reverse_lazy
from django.views.generic import TemplateView, View from django.views.generic import TemplateView, View
from authens.forms import OldCASAuthForm from authens.forms import OldCASAuthForm

View file

@ -15,7 +15,6 @@ Including another URLconf
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import include, path from django.urls import include, path
from example import views from example import views
urlpatterns = [ urlpatterns = [

View file

@ -1 +1,2 @@
python-cas==1.5.* python-cas==1.5.*
python-ldap

View file

@ -8,8 +8,8 @@ import django
from django.conf import settings from django.conf import settings
from django.test.utils import get_runner from django.test.utils import get_runner
if __name__ == '__main__': if __name__ == "__main__":
os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.settings' os.environ["DJANGO_SETTINGS_MODULE"] = "tests.settings"
django.setup() django.setup()
TestRunner = get_runner(settings) TestRunner = get_runner(settings)
test_runner = TestRunner() test_runner = TestRunner()

View file

@ -19,5 +19,4 @@ known_django = django
known_first_party = authens,tests known_first_party = authens,tests
line_length = 88 line_length = 88
multi_line_output = 3 multi_line_output = 3
not_skip = __init__.py
sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER

View file

@ -2,11 +2,11 @@ from django.contrib.auth.decorators import login_required
from django.http import HttpResponse from django.http import HttpResponse
from django.urls import include, path from django.urls import include, path
# --- # ---
# Two tiny views to easily test user authentication. # Two tiny views to easily test user authentication.
# --- # ---
def public_view(request): def public_view(request):
return HttpResponse("OK") return HttpResponse("OK")

16
tox.ini Normal file
View file

@ -0,0 +1,16 @@
[tox]
# Temporaire en attendant de créer setup.py
skipsdist = True
envlist =
py{35,36,37,38}-django22,
py{36,37,38}-django30
[testenv]
deps =
django22: Django==2.2.*
django30: Django==3.0.*
python-cas
python-ldap
commands =
python --version
python runtests.py