Merge branch 'upgrade-dependencies' into teal3
This commit is contained in:
commit
47a167b947
2
.github/workflows/flask.yml
vendored
2
.github/workflows/flask.yml
vendored
|
@ -47,7 +47,7 @@ jobs:
|
||||||
sudo apt-get update -qy
|
sudo apt-get update -qy
|
||||||
sudo apt-get -y install postgresql-client --no-install-recommends
|
sudo apt-get -y install postgresql-client --no-install-recommends
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install flake8 pytest coverage
|
pip install -r requirements-testing.txt
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
- name: Prepare database
|
- name: Prepare database
|
||||||
|
|
3
pytest.ini
Normal file
3
pytest.ini
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[pytest]
|
||||||
|
markers =
|
||||||
|
mvp: mark tests as required by MVP
|
4
requirements-testing.txt
Normal file
4
requirements-testing.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
coverage
|
||||||
|
flake8
|
||||||
|
pytest==7.0.0
|
||||||
|
requests-mock==1.5.2
|
|
@ -12,35 +12,32 @@ Flask-Cors==3.0.10
|
||||||
Flask-Login==0.5.0
|
Flask-Login==0.5.0
|
||||||
Flask-SQLAlchemy==2.3.2
|
Flask-SQLAlchemy==2.3.2
|
||||||
Flask-WTF==1.0.0
|
Flask-WTF==1.0.0
|
||||||
|
flask-WeasyPrint==0.5
|
||||||
hashids==1.2.0
|
hashids==1.2.0
|
||||||
inflection==0.3.1
|
inflection==0.3.1
|
||||||
|
# lock itsdangerous version until upgrade to Flask 2.x
|
||||||
itsdangerous==2.0.1
|
itsdangerous==2.0.1
|
||||||
# lock Jinja2 version because it's the latest compatible with Flask 1.0.X
|
# lock Jinja2 version because it's the latest compatible with Flask 1.0.X
|
||||||
# see related info on https://github.com/pallets/jinja/issues/1628
|
# see related info on https://github.com/pallets/jinja/issues/1628
|
||||||
Jinja2==3.0.3
|
Jinja2==3.0.3
|
||||||
marshmallow==3.0.0b11
|
marshmallow==3.0.0b11
|
||||||
marshmallow-enum==1.4.1
|
marshmallow-enum==1.4.1
|
||||||
|
more-itertools==8.12.0
|
||||||
passlib==1.7.1
|
passlib==1.7.1
|
||||||
phonenumbers==8.9.11
|
phonenumbers==8.9.11
|
||||||
pytest==3.7.2
|
psycopg2-binary==2.8.3
|
||||||
pytest-runner==4.2
|
PyJWT==2.0.0a1
|
||||||
python-dateutil==2.7.3
|
python-dateutil==2.7.3
|
||||||
|
python-decouple==3.3
|
||||||
python-stdnum==1.9
|
python-stdnum==1.9
|
||||||
PyYAML==5.4
|
PyYAML==5.4
|
||||||
requests[security]==2.27.1
|
requests[security]==2.27.1
|
||||||
requests-mock==1.5.2
|
sortedcontainers==2.1.0
|
||||||
SQLAlchemy==1.3.24
|
SQLAlchemy==1.3.24
|
||||||
|
sqlalchemy-citext==1.3.post0
|
||||||
SQLAlchemy-Utils==0.33.11
|
SQLAlchemy-Utils==0.33.11
|
||||||
# teal under development version
|
# teal under development version
|
||||||
-e git+https://github.com/eReuse/teal/@upgrade-dependencies#egg=teal
|
-e git+https://github.com/eReuse/teal/@upgrade-dependencies#egg=teal
|
||||||
|
WeasyPrint==44
|
||||||
webargs==5.5.3
|
webargs==5.5.3
|
||||||
Werkzeug>=2.0
|
Werkzeug>=2.0
|
||||||
sqlalchemy-citext==1.3.post0
|
|
||||||
flask-weasyprint==0.5
|
|
||||||
weasyprint==44
|
|
||||||
psycopg2-binary==2.8.3
|
|
||||||
sortedcontainers==2.1.0
|
|
||||||
tqdm==4.32.2
|
|
||||||
python-decouple==3.3
|
|
||||||
python-dotenv==0.14.0
|
|
||||||
pyjwt==2.0.0a1
|
|
||||||
|
|
13
setup.py
13
setup.py
|
@ -3,11 +3,6 @@ from setuptools import find_packages, setup
|
||||||
from ereuse_devicehub import __version__
|
from ereuse_devicehub import __version__
|
||||||
|
|
||||||
|
|
||||||
test_requires = [
|
|
||||||
'pytest',
|
|
||||||
'requests_mock'
|
|
||||||
]
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='ereuse-devicehub',
|
name='ereuse-devicehub',
|
||||||
version=__version__,
|
version=__version__,
|
||||||
|
@ -52,17 +47,12 @@ setup(
|
||||||
'docs-auto': [
|
'docs-auto': [
|
||||||
'sphinx-autobuild'
|
'sphinx-autobuild'
|
||||||
],
|
],
|
||||||
'test': test_requires
|
|
||||||
},
|
},
|
||||||
tests_require=test_requires,
|
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'dh = ereuse_devicehub.cli:cli'
|
'dh = ereuse_devicehub.cli:cli'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
setup_requires=[
|
|
||||||
'pytest-runner'
|
|
||||||
],
|
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Development Status :: 2 - Pre-Alpha',
|
'Development Status :: 2 - Pre-Alpha',
|
||||||
'Environment :: Web Environment',
|
'Environment :: Web Environment',
|
||||||
|
@ -71,8 +61,7 @@ setup(
|
||||||
'License :: OSI Approved :: GNU Affero General Public License v3',
|
'License :: OSI Approved :: GNU Affero General Public License v3',
|
||||||
'Operating System :: OS Independent',
|
'Operating System :: OS Independent',
|
||||||
'Programming Language :: Python :: 3 :: Only',
|
'Programming Language :: Python :: 3 :: Only',
|
||||||
'Programming Language :: Python :: 3.5',
|
'Programming Language :: Python :: 3.7',
|
||||||
'Programming Language :: Python :: 3.6',
|
|
||||||
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
|
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
|
||||||
'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
|
'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
|
||||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||||
|
|
|
@ -75,14 +75,14 @@ def test_erase_basic():
|
||||||
def test_validate_device_data_storage():
|
def test_validate_device_data_storage():
|
||||||
"""Checks the validation for data-storage-only actions works."""
|
"""Checks the validation for data-storage-only actions works."""
|
||||||
# We can't set a GraphicCard
|
# We can't set a GraphicCard
|
||||||
with pytest.raises(TypeError,
|
with pytest.raises(TypeError):
|
||||||
message='EraseBasic.device must be a DataStorage '
|
|
||||||
'but you passed <GraphicCard None model=\'foo-bar\' S/N=\'foo\'>'):
|
|
||||||
models.EraseBasic(
|
models.EraseBasic(
|
||||||
device=GraphicCard(serial_number='foo', manufacturer='bar', model='foo-bar'),
|
device=GraphicCard(serial_number='foo', manufacturer='bar', model='foo-bar'),
|
||||||
clean_with_zeros=True,
|
clean_with_zeros=True,
|
||||||
**conftest.T
|
**conftest.T
|
||||||
)
|
)
|
||||||
|
pytest.fail('EraseBasic.device must be a DataStorage '
|
||||||
|
'but you passed <GraphicCard None model=\'foo-bar\' S/N=\'foo\'>')
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.mvp
|
@pytest.mark.mvp
|
||||||
|
|
|
@ -24,11 +24,14 @@ def test_authenticate_error(app: Devicehub):
|
||||||
MESSAGE = 'Provide a suitable token.'
|
MESSAGE = 'Provide a suitable token.'
|
||||||
create_user()
|
create_user()
|
||||||
# Token doesn't exist
|
# Token doesn't exist
|
||||||
with pytest.raises(Unauthorized, message=MESSAGE):
|
with pytest.raises(Unauthorized):
|
||||||
app.auth.authenticate(token=str(uuid4()))
|
app.auth.authenticate(token=str(uuid4()))
|
||||||
|
pytest.fail(MESSAGE)
|
||||||
|
|
||||||
# Wrong token format
|
# Wrong token format
|
||||||
with pytest.raises(Unauthorized, message=MESSAGE):
|
with pytest.raises(Unauthorized):
|
||||||
app.auth.authenticate(token='this is a wrong uuid')
|
app.auth.authenticate(token='this is a wrong uuid')
|
||||||
|
pytest.fail(MESSAGE)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.mvp
|
@pytest.mark.mvp
|
||||||
|
|
|
@ -144,5 +144,7 @@ def test_create_existing_inventory(cli, tdb1):
|
||||||
cli.invoke('inv', 'add', '--common')
|
cli.invoke('inv', 'add', '--common')
|
||||||
with tdb1.app_context():
|
with tdb1.app_context():
|
||||||
assert db.has_schema('tdb1')
|
assert db.has_schema('tdb1')
|
||||||
with pytest.raises(AssertionError, message='Schema tdb1 already exists.'):
|
|
||||||
|
with pytest.raises(AssertionError):
|
||||||
cli.invoke('inv', 'add', '--common')
|
cli.invoke('inv', 'add', '--common')
|
||||||
|
pytest.fail('Schema tdb1 already exists.')
|
||||||
|
|
Reference in a new issue