Skip to content

Commit

Permalink
all python files are now formated with black
Browse files Browse the repository at this point in the history
NOTE:
some configurations where necessary. flake8 line-length has to be set to 88
which is the default for black. but this was not enough some lines of black
where formated longer then 88 characters. found flake8-bugbear with B950.

with that and in combination with ignore=E501 it is possible to ignore long
lines, but if there are lines to long it will still point it out.

further also for isort some configuration was necessary

REFERENCES:
https://github.com/psf/black/blob/master/docs/compatible_configs.md#isort
https://github.com/psf/black/blob/master/docs/compatible_configs.md#flake8
https://github.com/PyCQA/flake8-bugbear#opinionated-warnings
  • Loading branch information
utnapischtim committed Oct 12, 2020
1 parent 0a37a80 commit d24d4ce
Show file tree
Hide file tree
Showing 12 changed files with 235 additions and 192 deletions.
214 changes: 115 additions & 99 deletions docs/conf.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion invenio_config_tugraz/__init__.py
Expand Up @@ -12,4 +12,4 @@
from .generators import RecordIp
from .version import __version__

__all__ = ('__version__', 'InvenioConfigTugraz', 'RecordIp')
__all__ = ("__version__", "InvenioConfigTugraz", "RecordIp")
63 changes: 32 additions & 31 deletions invenio_config_tugraz/config.py
Expand Up @@ -31,46 +31,47 @@
# ===========
# See https://invenio-app.readthedocs.io/en/latest/configuration.html

APP_ALLOWED_HOSTS = ['0.0.0.0',
'localhost',
'127.0.0.1',
'invenio-dev01.tugraz.at',
'invenio-test.tugraz.at'
]
APP_ALLOWED_HOSTS = [
"0.0.0.0",
"localhost",
"127.0.0.1",
"invenio-dev01.tugraz.at",
"invenio-test.tugraz.at",
]
"""Allowed Hosts"""

APP_DEFAULT_SECURE_HEADERS = {
'content_security_policy': {
'default-src': [
"content_security_policy": {
"default-src": [
"'self'",
'fonts.googleapis.com',
'*.gstatic.com',
'data:',
"fonts.googleapis.com",
"*.gstatic.com",
"data:",
"'unsafe-inline'",
"'unsafe-eval'",
"blob:",
],
},
'content_security_policy_report_only': False,
'content_security_policy_report_uri': None,
'force_file_save': False,
'force_https': True,
'force_https_permanent': False,
'frame_options': 'sameorigin',
'frame_options_allow_from': None,
'session_cookie_http_only': True,
'session_cookie_secure': True,
'strict_transport_security': True,
'strict_transport_security_include_subdomains': True,
'strict_transport_security_max_age': 31556926, # One year in seconds
'strict_transport_security_preload': False,
"content_security_policy_report_only": False,
"content_security_policy_report_uri": None,
"force_file_save": False,
"force_https": True,
"force_https_permanent": False,
"frame_options": "sameorigin",
"frame_options_allow_from": None,
"session_cookie_http_only": True,
"session_cookie_secure": True,
"strict_transport_security": True,
"strict_transport_security_include_subdomains": True,
"strict_transport_security_max_age": 31556926, # One year in seconds
"strict_transport_security_preload": False,
}

# Invenio-Mail
# ===========
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html

MAIL_SERVER = 'localhost'
MAIL_SERVER = "localhost"
"""Domain ip where mail server is running."""

SECURITY_EMAIL_SENDER = "info@invenio-test.tugraz.at"
Expand Down Expand Up @@ -117,23 +118,23 @@
SSO_SAML_IDPS = {}
"""Configuration of IDPS. Actual values can be find in to invenio.cfg file"""

SSO_SAML_DEFAULT_BLUEPRINT_PREFIX = '/shibboleth'
SSO_SAML_DEFAULT_BLUEPRINT_PREFIX = "/shibboleth"
"""Base URL for the extensions endpoint."""

SSO_SAML_DEFAULT_METADATA_ROUTE = '/metadata/<idp>'
SSO_SAML_DEFAULT_METADATA_ROUTE = "/metadata/<idp>"
"""URL route for the metadata request."""
"""This is also SP entityID https://domain/shibboleth/metadata/<idp>"""

SSO_SAML_DEFAULT_SSO_ROUTE = '/login/<idp>'
SSO_SAML_DEFAULT_SSO_ROUTE = "/login/<idp>"
"""URL route for the SP login."""

SSO_SAML_DEFAULT_ACS_ROUTE = '/authorized/<idp>'
SSO_SAML_DEFAULT_ACS_ROUTE = "/authorized/<idp>"
"""URL route to handle the IdP login request."""

SSO_SAML_DEFAULT_SLO_ROUTE = '/slo/<idp>'
SSO_SAML_DEFAULT_SLO_ROUTE = "/slo/<idp>"
"""URL route for the SP logout."""

SSO_SAML_DEFAULT_SLS_ROUTE = '/sls/<idp>'
SSO_SAML_DEFAULT_SLS_ROUTE = "/sls/<idp>"
"""URL route to handle the IdP logout request."""

# Invenio-accounts
Expand Down
6 changes: 3 additions & 3 deletions invenio_config_tugraz/ext.py
Expand Up @@ -8,7 +8,7 @@

"""invenio module that adds tugraz configs."""

from flask_babelex import gettext as _
# from flask_babelex import gettext as _

from . import config

Expand All @@ -24,10 +24,10 @@ def __init__(self, app=None):
def init_app(self, app):
"""Flask application initialization."""
self.init_config(app)
app.extensions['invenio-config-tugraz'] = self
app.extensions["invenio-config-tugraz"] = self

def init_config(self, app):
"""Initialize configuration."""
for k in dir(config):
if k.startswith('INVENIO_CONFIG_TUGRAZ_'):
if k.startswith("INVENIO_CONFIG_TUGRAZ_"):
app.config.setdefault(k, getattr(config, k))
8 changes: 4 additions & 4 deletions invenio_config_tugraz/generators.py
Expand Up @@ -202,13 +202,13 @@ def query_filter(self, **kwargs):
These filters consist of additive queries mapping to what the current
user should be able to retrieve via search.
"""
return Q('match_all')
return Q("match_all")

def check_permission(self):
"""Check for User IP address in config variable."""
# Get user IP
user_ip = request.remote_addr # pragma: no cover
# Checks if the user IP is among single IPs
if user_ip in current_app.config['INVENIO_CONFIG_TUGRAZ_SINGLE_IP']:
return True # pragma: no cover
return False # pragma: no cover
if user_ip in current_app.config["INVENIO_CONFIG_TUGRAZ_SINGLE_IP"]:
return True # pragma: no cover
return False # pragma: no cover
8 changes: 6 additions & 2 deletions invenio_config_tugraz/permissions.py
Expand Up @@ -49,8 +49,12 @@ class TUGRAZPermissionPolicy(RDMRecordPermissionPolicy):
Permissions for Invenio (RDM) Records.
"""

from invenio_records_permissions.generators import Admin, AnyUser, \
AnyUserIfPublic, Disable, RecordOwners
from invenio_records_permissions.generators import (
Admin,
AnyUser,
AnyUserIfPublic,
RecordOwners,
)
from invenio_records_permissions.policies.base import BasePermissionPolicy

from .generators import RecordIp
Expand Down
2 changes: 1 addition & 1 deletion invenio_config_tugraz/version.py
Expand Up @@ -12,4 +12,4 @@
and parsed by ``setup.py``.
"""

__version__ = '0.2.1'
__version__ = "0.2.1"
17 changes: 17 additions & 0 deletions setup.cfg
Expand Up @@ -37,3 +37,20 @@ output-dir = invenio_config_tugraz/translations/
[update_catalog]
input-file = invenio_config_tugraz/translations/messages.pot
output-dir = invenio_config_tugraz/translations/

[flake8]
max-line-length = 88
extend-ignore = E203
select = C,E,F,W,B,B950
ignore = E501

[isort]
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 88

[pycodestyle]
ignore = E203,E501
85 changes: 42 additions & 43 deletions setup.py
Expand Up @@ -12,87 +12,86 @@

from setuptools import find_packages, setup

readme = open('README.rst').read()
history = open('CHANGES.rst').read()
readme = open("README.rst").read()
history = open("CHANGES.rst").read()

tests_require = [
'pytest-invenio>=1.4.0',
"pytest-invenio>=1.4.0",
]

extras_require = {
'docs': [
'Sphinx>=1.5.1',
"docs": [
"Sphinx>=1.5.1",
],
'tests': tests_require,
"tests": tests_require,
}

extras_require['all'] = []
extras_require["all"] = []
for reqs in extras_require.values():
extras_require['all'].extend(reqs)
extras_require["all"].extend(reqs)

setup_requires = [
'Babel>=1.3',
'pytest-runner>=3.0.0,<5',
"Babel>=1.3",
"pytest-runner>=3.0.0,<5",
]

install_requires = [
'Flask-BabelEx>=0.9.4',
'elasticsearch_dsl>=7.2.1',
'invenio-rdm-records~=0.18.3',
'invenio_search>=1.3.1',

"Flask-BabelEx>=0.9.4",
"elasticsearch_dsl>=7.2.1",
"invenio-rdm-records~=0.18.3",
"invenio_search>=1.3.1",
]

packages = find_packages()


# Get the version string. Cannot be done with import!
g = {}
with open(os.path.join('invenio_config_tugraz', 'version.py'), 'rt') as fp:
with open(os.path.join("invenio_config_tugraz", "version.py"), "rt") as fp:
exec(fp.read(), g)
version = g['__version__']
version = g["__version__"]

setup(
name='invenio-config-tugraz',
name="invenio-config-tugraz",
version=version,
description=__doc__,
long_description=readme + '\n\n' + history,
keywords='invenio, config, Tu Graz',
license='MIT',
author='Mojib Wali',
author_email='mojib.wali@tugraz.at',
url='https://github.com/mb-wali/invenio-config-tugraz',
long_description=readme + "\n\n" + history,
keywords="invenio, config, Tu Graz",
license="MIT",
author="Mojib Wali",
author_email="mojib.wali@tugraz.at",
url="https://github.com/mb-wali/invenio-config-tugraz",
packages=packages,
zip_safe=False,
include_package_data=True,
platforms='any',
platforms="any",
entry_points={
'invenio_base.apps': [
'invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz',
"invenio_base.apps": [
"invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz",
],
'invenio_i18n.translations': [
'messages = invenio_config_tugraz',
"invenio_i18n.translations": [
"messages = invenio_config_tugraz",
],
'invenio_config.module': [
'invenio_config_tugraz = invenio_config_tugraz.config',
"invenio_config.module": [
"invenio_config_tugraz = invenio_config_tugraz.config",
],
},
extras_require=extras_require,
install_requires=install_requires,
setup_requires=setup_requires,
tests_require=tests_require,
classifiers=[
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
'Topic :: Software Development :: Libraries :: Python Modules',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Development Status :: 3 - Alpha',
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Development Status :: 3 - Alpha",
],
)
6 changes: 4 additions & 2 deletions tests/conftest.py
Expand Up @@ -24,7 +24,7 @@
from invenio_config_tugraz import InvenioConfigTugraz


@pytest.fixture(scope='module')
@pytest.fixture(scope="module")
def celery_config():
"""Override pytest-invenio fixture.
Expand All @@ -42,7 +42,9 @@ def create_app(request):
app.config.update(
INVENIO_CONFIG_TUGRAZ_SINGLE_IP=["127.0.0.1", "127.0.0.2"],
INVENIO_CONFIG_TUGRAZ_IP_RANGES=[
["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]],
["127.0.0.2", "127.0.0.99"],
["127.0.1.3", "127.0.1.5"],
],
SQLALCHEMY_DATABASE_URI=DB,
SQLALCHEMY_TRACK_MODIFICATIONS=False,
)
Expand Down
5 changes: 4 additions & 1 deletion tests/test_generators.py
Expand Up @@ -6,12 +6,15 @@
# modify it under the terms of the MIT License; see LICENSE file for more
# details.

"""Test Generators."""

from invenio_config_tugraz.generators import RecordIp


def test_recordip():
"""Test Generator RecordIp."""
generator = RecordIp()

assert generator.needs() == []
assert generator.excludes() == []
assert generator.query_filter().to_dict() == {'match_all': {}}
assert generator.query_filter().to_dict() == {"match_all": {}}
11 changes: 6 additions & 5 deletions tests/test_invenio_config_tugraz.py
Expand Up @@ -16,17 +16,18 @@
def test_version():
"""Test version import."""
from invenio_config_tugraz import __version__

assert __version__


def test_init():
"""Test extension initialization."""
app = Flask('testapp')
app = Flask("testapp")
ext = InvenioConfigTugraz(app)
assert 'invenio-config-tugraz' in app.extensions
assert "invenio-config-tugraz" in app.extensions

app = Flask('testapp')
app = Flask("testapp")
ext = InvenioConfigTugraz()
assert 'invenio-config-tugraz' not in app.extensions
assert "invenio-config-tugraz" not in app.extensions
ext.init_app(app)
assert 'invenio-config-tugraz' in app.extensions
assert "invenio-config-tugraz" in app.extensions

0 comments on commit d24d4ce

Please sign in to comment.