style = etree.SubElement(attributes, CAS + 'attraStyle')
style.text = 'Jasig'
for name, value in sorted(attrs.items()):
- if isinstance(value, collections.Iterable) and not isinstance(value, basestring):
+ if isinstance(value, collections.abc.Iterable) and not isinstance(value, basestring):
for e in value:
element = etree.SubElement(attributes, CAS + name)
element.text = e
style = etree.SubElement(auth_success, CAS + 'attraStyle')
style.text = 'RubyCAS'
for name, value in sorted(attrs.items()):
- if isinstance(value, collections.Iterable) and not isinstance(value, basestring):
+ if isinstance(value, collections.abc.Iterable) and not isinstance(value, basestring):
for e in value:
element = etree.SubElement(auth_success, CAS + name)
element.text = e
def name_value(auth_success, attrs):
etree.SubElement(auth_success, CAS + 'attribute', name='attraStyle', value='Name-Value')
for name, value in sorted(attrs.items()):
- if isinstance(value, collections.Iterable) and not isinstance(value, basestring):
+ if isinstance(value, collections.abc.Iterable) and not isinstance(value, basestring):
for e in value:
etree.SubElement(auth_success, CAS + 'attribute', name=name, value=e)
else:
setup(
name='django-cas-provider',
- version='0.3.2',
+ version='22.4',
description='A "provider" for the Central Authentication Service (http://jasig.org/cas)',
author='(Chris Williams), Sebastian Annies',
author_email='(chris@nitron.org), sebastian.annies@googlemail.com',
long_description=read('README.rst'),
zip_safe=False,
install_requires=[
- 'Django>=1.10,<4.0',
+ 'Django>=1.11,<4.1',
'lxml',
],
classifiers = [
[tox]
envlist=clear,
- d110-py{35},
- d111-py{35,36,37},
- d20-py{35,36,37},
- d21-py{35,36,37},
- d22-py{35,36,37,38,39}
- d{30,31,32}-py{36,37,38,39}
+ d111-py{37},
+ d20-py{37},
+ d21-py{37},
+ d22-py{37,38,39},
+ d{30,31}-py{37,38,39},
+ d32-py{37,38,39,310},
+ d40-py{38,39,310},
stats
[testenv]
commands=coverage run --source=cas_provider --append --branch cas_provider_examples/manage.py test simple
deps=
- d19: Django>=1.9,<1.10
- d110: Django>=1.10,<1.11
d111: Django>=1.11,<2.0
d20: Django>=2.0,<2.1
d21: Django>=2.1,<2.2
d30: Django>=3.0,<3.1
d31: Django>=3.1,<3.2
d32: Django>=3.2,<4.0
+ d40: Django>=4.0,<4.1
coverage
usedevelop=True