diff --git a/.editorconfig b/.editorconfig index eb62f29..a35c89d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,15 +15,6 @@ insert_final_newline = true trim_trailing_whitespace = true charset = utf-8 -# Python files -[*.py] -indent_size = 4 -# isort plugin configuration -known_first_party = invenio_config_tugraz -multi_line_output = 2 -default_section = THIRDPARTY -skip = .eggs - # RST files (used by sphinx) [*.rst] indent_size = 4 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..1127adc --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1 @@ +766b2cafae4dc74393b103389e6978eca5a9cfd2 diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 266a98b..683b4be 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -15,7 +15,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install setuptools wheel + pip install setuptools wheel babel - name: Build package run: | python setup.py compile_catalog sdist bdist_wheel @@ -23,4 +23,4 @@ jobs: uses: pypa/gh-action-pypi-publish@v1.3.1 with: user: __token__ - password: ${{ secrets.pypi_password }} \ No newline at end of file + password: ${{ secrets.pypi_password }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 16586e9..caa741c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,42 +20,21 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python-version: [3.6, 3.7, 3.8, 3.9] - requirements-level: [min, pypi] - db-service: [postgresql12] + python-version: [3.8, 3.9] + requirements-level: [pypi] + db-service: [postgresql13] search-service: [elasticsearch7] - exclude: - - python-version: 3.6 - requirements-level: pypi - - - python-version: 3.7 - requirements-level: min - - - python-version: 3.8 - requirements-level: min - - - python-version: 3.9 - requirements-level: min - - - db-service: postgresql12 - requirements-level: min - - - search-service: elasticsearch7 - requirements-level: min - include: - - - db-service: postgresql12 + - db-service: postgresql13 DB_EXTRAS: "postgresql" - - search-service: elasticsearch7 SEARCH_EXTRAS: "elasticsearch7" env: DB: ${{ matrix.db-service }} SEARCH: ${{ matrix.search-service }} - EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }} + EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }} steps: - name: Checkout uses: actions/checkout@v2 @@ -67,7 +46,7 @@ jobs: - name: Generate dependencies run: | - python -m pip install --upgrade pip setuptools py wheel requirements-builder + pip install wheel requirements-builder requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt - name: Cache pip uses: actions/cache@v2 diff --git a/MANIFEST.in b/MANIFEST.in index 7a3ea63..62b9f26 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -52,3 +52,4 @@ recursive-include invenio_config_tugraz *.csv # added by check-manifest recursive-include invenio_config_tugraz *.pdf +include .git-blame-ignore-revs diff --git a/docs/conf.py b/docs/conf.py index b85120e..d42896c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,7 +8,7 @@ """Sphinx configuration.""" -import os +from invenio_config_tugraz import __version__ # import sphinx.environment @@ -46,9 +46,9 @@ source_suffix = ".rst" master_doc = "index" # General information about the project. -project = u"invenio-config-tugraz" -copyright = u"2020, Mojib Wali" -author = u"Mojib Wali" +project = "invenio-config-tugraz" +copyright = "2022, TU Graz" +author = "TU Graz" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -56,19 +56,8 @@ author = u"Mojib Wali" # # The short X.Y version. -# Get the version string. Cannot be done with import! -g = {} -with open( - os.path.join( - os.path.dirname(__file__), "..", "invenio_config_tugraz", "version.py" - ), - "rt", -) as fp: - exec(fp.read(), g) - version = g["__version__"] - # The full version, including alpha/beta/rc tags. -release = version +release = __version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -254,8 +243,8 @@ latex_documents = [ ( master_doc, "invenio-config-tugraz.tex", - u"invenio-config-tugraz Documentation", - u"Mojib Wali", + "invenio-config-tugraz Documentation", + "Mojib Wali", "manual", ), ] @@ -289,7 +278,7 @@ man_pages = [ ( master_doc, "invenio-config-tugraz", - u"invenio-config-tugraz Documentation", + "invenio-config-tugraz Documentation", [author], 1, ) @@ -308,7 +297,7 @@ texinfo_documents = [ ( master_doc, "invenio-config-tugraz", - u"invenio-config-tugraz Documentation", + "invenio-config-tugraz Documentation", author, "invenio-config-tugraz", "invenio module that adds tugraz configs.", @@ -332,8 +321,8 @@ texinfo_documents = [ # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { "python": ("https://docs.python.org/", None), - 'flask': ('https://flask.palletsprojects.com/', None), - 'werkzeug': ('https://werkzeug.palletsprojects.com/', None), + "flask": ("https://flask.palletsprojects.com/", None), + "werkzeug": ("https://werkzeug.palletsprojects.com/", None), # TODO: Configure external documentation references, eg: # 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None), } diff --git a/invenio_config_tugraz/__init__.py b/invenio_config_tugraz/__init__.py index f995a17..171a9cc 100644 --- a/invenio_config_tugraz/__init__.py +++ b/invenio_config_tugraz/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020 Mojib Wali. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -10,6 +10,7 @@ from .ext import InvenioConfigTugraz from .generators import RecordIp -from .version import __version__ + +__version__ = "0.8.4" __all__ = ("__version__", "InvenioConfigTugraz", "RecordIp") diff --git a/invenio_config_tugraz/config.py b/invenio_config_tugraz/config.py index 64c9129..ec36fbe 100644 --- a/invenio_config_tugraz/config.py +++ b/invenio_config_tugraz/config.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020-2021 Graz University of Technology. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -8,8 +8,6 @@ """invenio module that adds tugraz configs.""" -from os.path import abspath, dirname, join - from flask_babelex import gettext as _ INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False @@ -260,7 +258,7 @@ If the value is callable, its return value will be used for the field (e.g. lambda/function for dynamic calculation of values). """ -APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = 'off' +APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = "off" """Behavior for autocomplete names search field for creators/contributors. Available options: @@ -342,7 +340,7 @@ RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute" RATELIMIT_GUEST_USER = "5000 per hour;500 per minute" """Increase defaults for guest users.""" -SESSION_COOKIE_SAMESITE = 'Strict' +SESSION_COOKIE_SAMESITE = "Strict" """Sets cookie with the samesite flag to 'Strict' by default.""" @@ -354,7 +352,7 @@ OAISERVER_ID_PREFIX = "repository.tugraz.at" """The prefix that will be applied to the generated OAI-PMH ids.""" OAISERVER_ADMIN_EMAILS = [ - 'oai@repository.tugraz.at', + "oai@repository.tugraz.at", ] """The e-mail addresses of administrators of the repository. diff --git a/invenio_config_tugraz/ext.py b/invenio_config_tugraz/ext.py index 0451d7f..2253192 100644 --- a/invenio_config_tugraz/ext.py +++ b/invenio_config_tugraz/ext.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020 Mojib Wali. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more # details. """invenio module that adds tugraz configs.""" -from flask import Blueprint - from . import config diff --git a/invenio_config_tugraz/generators.py b/invenio_config_tugraz/generators.py index 2faec0b..62e9fe1 100644 --- a/invenio_config_tugraz/generators.py +++ b/invenio_config_tugraz/generators.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020-2021 Graz University of Technology. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -153,7 +153,7 @@ The succinct encoding of the permissions for your instance gives you from elasticsearch_dsl.query import Q from flask import current_app, request -from invenio_access.permissions import any_user, superuser_access +from invenio_access.permissions import any_user from invenio_records_permissions.generators import Generator diff --git a/invenio_config_tugraz/version.py b/invenio_config_tugraz/version.py deleted file mode 100644 index e482e57..0000000 --- a/invenio_config_tugraz/version.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2020-2022 Graz University of Technology. -# -# invenio-config-tugraz is free software; you can redistribute it and/or -# modify it under the terms of the MIT License; see LICENSE file for more -# details. - -"""Version information for invenio-config-tugraz. - -This file is imported by ``invenio_config_tugraz.__init__``, -and parsed by ``setup.py``. -""" - -__version__ = "0.8.4" diff --git a/invenio_config_tugraz/views.py b/invenio_config_tugraz/views.py index 2502e39..492fd7b 100644 --- a/invenio_config_tugraz/views.py +++ b/invenio_config_tugraz/views.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020-2021 Graz University of Technology. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -8,10 +8,6 @@ """invenio module for TUGRAZ config.""" -from os import environ -from typing import Dict - -from elasticsearch_dsl.utils import AttrDict from flask import Blueprint, current_app, redirect, url_for from flask_babelex import get_locale @@ -52,22 +48,34 @@ def ui_blueprint(app): def guide(): """TUGraz_Repository_Guide.""" locale = get_locale() - return redirect(url_for('static', - filename=f'documents/TUGraz_Repository_Guide_02_{locale}.pdf', - _external=True)) + return redirect( + url_for( + "static", + filename=f"documents/TUGraz_Repository_Guide_02_{locale}.pdf", + _external=True, + ) + ) def terms(): """Terms_And_Conditions.""" locale = get_locale() - return redirect(url_for('static', - filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf', - _external=True)) + return redirect( + url_for( + "static", + filename=f"documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf", + _external=True, + ) + ) def gdpr(): """General_Data_Protection_Rights.""" locale = get_locale() - return redirect(url_for('static', - filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf', - _external=True)) + return redirect( + url_for( + "static", + filename=f"documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf", + _external=True, + ) + ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..ec4e1ea --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel", "babel>2.8"] +build-backend = "setuptools.build_meta" diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index ba9347e..0000000 --- a/pytest.ini +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2020 Mojib Wali. -# -# invenio-config-tugraz is free software; you can redistribute it and/or -# modify it under the terms of the MIT License; see LICENSE file for more -# details. - -[pytest] -addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz -testpaths = tests invenio_config_tugraz -live_server_scope = module \ No newline at end of file diff --git a/run-tests.sh b/run-tests.sh index 9fa4da0..635e3f8 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -23,10 +23,9 @@ function cleanup() { } trap cleanup EXIT - python -m check_manifest --ignore ".*-requirements.txt" python -m sphinx.cmd.build -qnN docs docs/_build/html -eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)" +eval "$(docker-services-cli up --search ${SEARCH:-elasticsearch} --env)" python -m pytest tests_exit_code=$? python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest diff --git a/setup.cfg b/setup.cfg index 1b7575c..cf48527 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,11 +1,62 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020 Mojib Wali. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more # details. +[metadata] +name = invenio-config-tugraz +version = attr: invenio_config_tugraz.__version__ +description = "Invenio module that adds tugraz configs." +long_description = file: README.rst, CHANGES.rst +keywords = invenio config TU-Graz +license = MIT +author = "Graz University of Technology" +author_email = info@tugraz.at +platforms = any +url = https://github.com/tu-graz-library/invenio-config-tugraz +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.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Development Status :: 3 - Alpha + +[options] +include_package_data = True +packages = find: +python_requires = >=3.8 +zip_safe = False +install_requires = + invenio-rdm-records>=0.34.5,<0.35.0 + invenio-cache>=1.1.0 + +[options.extras_require] +tests = + pytest-black>=0.3.0,<0.3.10 + sphinx>=4.2.0,<5 + pytest-invenio>=1.4.7 +elasticsearch7 = + invenio-search[elasticsearch7]>=1.4.2,<2.0 + +[options.entry_points] +invenio_base.apps = + invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz +invenio_base.blueprints = + invenio_config_tugraz = invenio_config_tugraz.views:ui_blueprint +invenio_i18n.translations = + messages = invenio_config_tugraz +invenio_config.module = + invenio_config_tugraz = invenio_config_tugraz.config + [aliases] test = pytest @@ -38,19 +89,10 @@ output-dir = invenio_config_tugraz/translations/ 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 +profile=black -[pycodestyle] -ignore = E203,E501 +[tool:pytest] +addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz +testpaths = tests invenio_config_tugraz +live_server_scope = module diff --git a/setup.py b/setup.py index f7a2cf1..353223b 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020-2021 Graz University of Technology. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -8,107 +8,6 @@ """invenio module that adds tugraz configs.""" -import os +from setuptools import setup -from setuptools import find_packages, setup - -readme = open("README.rst").read() -history = open("CHANGES.rst").read() - -tests_require = [ - "pytest-invenio>=1.4.1", -] - -# Should follow invenio-app-rdm -invenio_search_version = ">=1.4.2,<1.5.0" -invenio_db_version = ">=1.0.11,<1.1.0" - -extras_require = { - "elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"], - "mysql": [f"invenio-db[mysql,versioning]{invenio_db_version}"], - "postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"], - "sqlite": [f"invenio-db[versioning]{invenio_db_version}"], - "docs": [ - "Sphinx==4.2.0", - ], - "tests": tests_require, -} - -extras_require["all"] = [] -for name, reqs in extras_require.items(): - if name[0] == ":" or name in ( - "elasticsearch7", - "mysql", - "postgresql", - "sqlite", - ): - continue - extras_require["all"].extend(reqs) - -setup_requires = [ - "Babel>=2.8,<3", -] - -install_requires = [ - # keep this in sync with invenioRDM release - "invenio-rdm-records>=0.34.5,<0.35.0", - "invenio-cache>=1.1.0" -] - -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: - exec(fp.read(), g) - version = g["__version__"] - -setup( - 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="mb_wali@hotmail.com", - url="https://github.com/tu-graz-library/invenio-config-tugraz", - packages=packages, - zip_safe=False, - include_package_data=True, - platforms="any", - entry_points={ - "invenio_base.apps": [ - "invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz", - ], - "invenio_base.blueprints": [ - "invenio_config_tugraz = invenio_config_tugraz.views:ui_blueprint", - ], - "invenio_i18n.translations": [ - "messages = invenio_config_tugraz", - ], - "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", - "Programming Language :: Python :: 3.9", - "Development Status :: 5 - Production/Stable", - ], -) +setup() diff --git a/tests/conftest.py b/tests/conftest.py index 31e8ca4..51cb1eb 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -73,7 +73,7 @@ def create_app(request): return app -@pytest.fixture(scope='function') +@pytest.fixture(scope="function") def open_record(): """Open record data as dict coming from the external world.""" return { @@ -81,44 +81,44 @@ def open_record(): "metadata": False, "files": False, "owned_by": [1], - "access_right": "open" + "access_right": "open", }, "metadata": { "publication_date": "2020-06-01", - "resource_type": { - "type": "image", - "subtype": "image-photo" - }, + "resource_type": {"type": "image", "subtype": "image-photo"}, # Technically not required - "creators": [{ - "name": "Troy Brown", - "type": "personal" - }, { - "name": "Phillip Lester", - "type": "personal", - "identifiers": {"orcid": "0000-0002-1825-0097"}, - "affiliations": [{ - "name": "Carter-Morris", - "identifiers": {"ror": "03yrm5c26"} - }] - }, { - "name": "Steven Williamson", - "type": "personal", - "identifiers": {"orcid": "0000-0002-1825-0097"}, - "affiliations": [{ - "name": "Ritter and Sons", - "identifiers": {"ror": "03yrm5c26"} - }, { - "name": "Montgomery, Bush and Madden", - "identifiers": {"ror": "03yrm5c26"} - }] - }], - "title": "A Romans story" - } + "creators": [ + {"name": "Troy Brown", "type": "personal"}, + { + "name": "Phillip Lester", + "type": "personal", + "identifiers": {"orcid": "0000-0002-1825-0097"}, + "affiliations": [ + {"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}} + ], + }, + { + "name": "Steven Williamson", + "type": "personal", + "identifiers": {"orcid": "0000-0002-1825-0097"}, + "affiliations": [ + { + "name": "Ritter and Sons", + "identifiers": {"ror": "03yrm5c26"}, + }, + { + "name": "Montgomery, Bush and Madden", + "identifiers": {"ror": "03yrm5c26"}, + }, + ], + }, + ], + "title": "A Romans story", + }, } -@pytest.fixture(scope='function') +@pytest.fixture(scope="function") def singleip_record(): """Single Ip record data as dict coming from the external world.""" return { @@ -126,38 +126,38 @@ def singleip_record(): "metadata": False, "files": False, "owned_by": [1], - "access_right": "singleip" + "access_right": "singleip", }, "metadata": { "publication_date": "2020-06-01", - "resource_type": { - "type": "image", - "subtype": "image-photo" - }, + "resource_type": {"type": "image", "subtype": "image-photo"}, # Technically not required - "creators": [{ - "name": "Troy Brown", - "type": "personal" - }, { - "name": "Phillip Lester", - "type": "personal", - "identifiers": {"orcid": "0000-0002-1825-0097"}, - "affiliations": [{ - "name": "Carter-Morris", - "identifiers": {"ror": "03yrm5c26"} - }] - }, { - "name": "Steven Williamson", - "type": "personal", - "identifiers": {"orcid": "0000-0002-1825-0097"}, - "affiliations": [{ - "name": "Ritter and Sons", - "identifiers": {"ror": "03yrm5c26"} - }, { - "name": "Montgomery, Bush and Madden", - "identifiers": {"ror": "03yrm5c26"} - }] - }], - "title": "A Romans story" - } + "creators": [ + {"name": "Troy Brown", "type": "personal"}, + { + "name": "Phillip Lester", + "type": "personal", + "identifiers": {"orcid": "0000-0002-1825-0097"}, + "affiliations": [ + {"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}} + ], + }, + { + "name": "Steven Williamson", + "type": "personal", + "identifiers": {"orcid": "0000-0002-1825-0097"}, + "affiliations": [ + { + "name": "Ritter and Sons", + "identifiers": {"ror": "03yrm5c26"}, + }, + { + "name": "Montgomery, Bush and Madden", + "identifiers": {"ror": "03yrm5c26"}, + }, + ], + }, + ], + "title": "A Romans story", + }, } diff --git a/tests/test_generators.py b/tests/test_generators.py index 6060075..da8ee28 100644 --- a/tests/test_generators.py +++ b/tests/test_generators.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020 Mojib Wali. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more @@ -26,4 +26,6 @@ def test_recordip(create_app, open_record, singleip_record): assert generator.excludes(record=open_record) == [] assert generator.excludes(record=open_record) == [] - assert generator.query_filter().to_dict() == {'bool': {'must_not': [{'match': {'access.access_right': 'singleip'}}]}} + assert generator.query_filter().to_dict() == { + "bool": {"must_not": [{"match": {"access.access_right": "singleip"}}]} + } diff --git a/tests/test_invenio_config_tugraz.py b/tests/test_invenio_config_tugraz.py index db3bacf..c923b21 100644 --- a/tests/test_invenio_config_tugraz.py +++ b/tests/test_invenio_config_tugraz.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2020 Mojib Wali. +# Copyright (C) 2020-2022 Graz University of Technology. # # invenio-config-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more