migrate setup py to cfg (#94)

* global: migrate setup.py to setup.cfg

* global: clean up copyright notices and tests

* migrate to use black as opinionated auto formater

* add .git-blame-ignore-revs
This commit is contained in:
Christoph Ladurner
2022-05-12 08:58:50 +02:00
committed by GitHub
parent 9192107e99
commit 5b7a1718fc
20 changed files with 184 additions and 300 deletions

View File

@@ -15,15 +15,6 @@ insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
charset = utf-8 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 files (used by sphinx)
[*.rst] [*.rst]
indent_size = 4 indent_size = 4

1
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1 @@
766b2cafae4dc74393b103389e6978eca5a9cfd2

View File

@@ -15,7 +15,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install setuptools wheel pip install setuptools wheel babel
- name: Build package - name: Build package
run: | run: |
python setup.py compile_catalog sdist bdist_wheel python setup.py compile_catalog sdist bdist_wheel
@@ -23,4 +23,4 @@ jobs:
uses: pypa/gh-action-pypi-publish@v1.3.1 uses: pypa/gh-action-pypi-publish@v1.3.1
with: with:
user: __token__ user: __token__
password: ${{ secrets.pypi_password }} password: ${{ secrets.pypi_password }}

View File

@@ -20,42 +20,21 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
matrix: matrix:
python-version: [3.6, 3.7, 3.8, 3.9] python-version: [3.8, 3.9]
requirements-level: [min, pypi] requirements-level: [pypi]
db-service: [postgresql12] db-service: [postgresql13]
search-service: [elasticsearch7] 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: include:
- db-service: postgresql13
- db-service: postgresql12
DB_EXTRAS: "postgresql" DB_EXTRAS: "postgresql"
- search-service: elasticsearch7 - search-service: elasticsearch7
SEARCH_EXTRAS: "elasticsearch7" SEARCH_EXTRAS: "elasticsearch7"
env: env:
DB: ${{ matrix.db-service }} DB: ${{ matrix.db-service }}
SEARCH: ${{ matrix.search-service }} SEARCH: ${{ matrix.search-service }}
EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }} EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -67,7 +46,7 @@ jobs:
- name: Generate dependencies - name: Generate dependencies
run: | 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 requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
- name: Cache pip - name: Cache pip
uses: actions/cache@v2 uses: actions/cache@v2

View File

@@ -52,3 +52,4 @@ recursive-include invenio_config_tugraz *.csv
# added by check-manifest # added by check-manifest
recursive-include invenio_config_tugraz *.pdf recursive-include invenio_config_tugraz *.pdf
include .git-blame-ignore-revs

View File

@@ -8,7 +8,7 @@
"""Sphinx configuration.""" """Sphinx configuration."""
import os from invenio_config_tugraz import __version__
# import sphinx.environment # import sphinx.environment
@@ -46,9 +46,9 @@ source_suffix = ".rst"
master_doc = "index" master_doc = "index"
# General information about the project. # General information about the project.
project = u"invenio-config-tugraz" project = "invenio-config-tugraz"
copyright = u"2020, Mojib Wali" copyright = "2022, TU Graz"
author = u"Mojib Wali" author = "TU Graz"
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
@@ -56,19 +56,8 @@ author = u"Mojib Wali"
# #
# The short X.Y version. # 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. # The full version, including alpha/beta/rc tags.
release = version release = __version__
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@@ -254,8 +243,8 @@ latex_documents = [
( (
master_doc, master_doc,
"invenio-config-tugraz.tex", "invenio-config-tugraz.tex",
u"invenio-config-tugraz Documentation", "invenio-config-tugraz Documentation",
u"Mojib Wali", "Mojib Wali",
"manual", "manual",
), ),
] ]
@@ -289,7 +278,7 @@ man_pages = [
( (
master_doc, master_doc,
"invenio-config-tugraz", "invenio-config-tugraz",
u"invenio-config-tugraz Documentation", "invenio-config-tugraz Documentation",
[author], [author],
1, 1,
) )
@@ -308,7 +297,7 @@ texinfo_documents = [
( (
master_doc, master_doc,
"invenio-config-tugraz", "invenio-config-tugraz",
u"invenio-config-tugraz Documentation", "invenio-config-tugraz Documentation",
author, author,
"invenio-config-tugraz", "invenio-config-tugraz",
"invenio module that adds tugraz configs.", "invenio module that adds tugraz configs.",
@@ -332,8 +321,8 @@ texinfo_documents = [
# Example configuration for intersphinx: refer to the Python standard library. # Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = { intersphinx_mapping = {
"python": ("https://docs.python.org/", None), "python": ("https://docs.python.org/", None),
'flask': ('https://flask.palletsprojects.com/', None), "flask": ("https://flask.palletsprojects.com/", None),
'werkzeug': ('https://werkzeug.palletsprojects.com/', None), "werkzeug": ("https://werkzeug.palletsprojects.com/", None),
# TODO: Configure external documentation references, eg: # TODO: Configure external documentation references, eg:
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None), # 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
} }

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
@@ -10,6 +10,7 @@
from .ext import InvenioConfigTugraz from .ext import InvenioConfigTugraz
from .generators import RecordIp from .generators import RecordIp
from .version import __version__
__version__ = "0.8.4"
__all__ = ("__version__", "InvenioConfigTugraz", "RecordIp") __all__ = ("__version__", "InvenioConfigTugraz", "RecordIp")

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,8 +8,6 @@
"""invenio module that adds tugraz configs.""" """invenio module that adds tugraz configs."""
from os.path import abspath, dirname, join
from flask_babelex import gettext as _ from flask_babelex import gettext as _
INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False 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). (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. """Behavior for autocomplete names search field for creators/contributors.
Available options: Available options:
@@ -342,7 +340,7 @@ RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute"
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute" RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
"""Increase defaults for guest users.""" """Increase defaults for guest users."""
SESSION_COOKIE_SAMESITE = 'Strict' SESSION_COOKIE_SAMESITE = "Strict"
"""Sets cookie with the samesite flag to 'Strict' by default.""" """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.""" """The prefix that will be applied to the generated OAI-PMH ids."""
OAISERVER_ADMIN_EMAILS = [ OAISERVER_ADMIN_EMAILS = [
'oai@repository.tugraz.at', "oai@repository.tugraz.at",
] ]
"""The e-mail addresses of administrators of the repository. """The e-mail addresses of administrators of the repository.

View File

@@ -1,14 +1,12 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
# details. # details.
"""invenio module that adds tugraz configs.""" """invenio module that adds tugraz configs."""
from flask import Blueprint
from . import config from . import config

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # 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 elasticsearch_dsl.query import Q
from flask import current_app, request 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 from invenio_records_permissions.generators import Generator

View File

@@ -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"

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,10 +8,6 @@
"""invenio module for TUGRAZ config.""" """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 import Blueprint, current_app, redirect, url_for
from flask_babelex import get_locale from flask_babelex import get_locale
@@ -52,22 +48,34 @@ def ui_blueprint(app):
def guide(): def guide():
"""TUGraz_Repository_Guide.""" """TUGraz_Repository_Guide."""
locale = get_locale() locale = get_locale()
return redirect(url_for('static', return redirect(
filename=f'documents/TUGraz_Repository_Guide_02_{locale}.pdf', url_for(
_external=True)) "static",
filename=f"documents/TUGraz_Repository_Guide_02_{locale}.pdf",
_external=True,
)
)
def terms(): def terms():
"""Terms_And_Conditions.""" """Terms_And_Conditions."""
locale = get_locale() locale = get_locale()
return redirect(url_for('static', return redirect(
filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf', url_for(
_external=True)) "static",
filename=f"documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf",
_external=True,
)
)
def gdpr(): def gdpr():
"""General_Data_Protection_Rights.""" """General_Data_Protection_Rights."""
locale = get_locale() locale = get_locale()
return redirect(url_for('static', return redirect(
filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf', url_for(
_external=True)) "static",
filename=f"documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf",
_external=True,
)
)

3
pyproject.toml Normal file
View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools", "wheel", "babel>2.8"]
build-backend = "setuptools.build_meta"

View File

@@ -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

View File

@@ -23,10 +23,9 @@ function cleanup() {
} }
trap cleanup EXIT trap cleanup EXIT
python -m check_manifest --ignore ".*-requirements.txt" python -m check_manifest --ignore ".*-requirements.txt"
python -m sphinx.cmd.build -qnN docs docs/_build/html 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 python -m pytest
tests_exit_code=$? tests_exit_code=$?
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest

View File

@@ -1,11 +1,62 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
# details. # 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] [aliases]
test = pytest test = pytest
@@ -38,19 +89,10 @@ output-dir = invenio_config_tugraz/translations/
input-file = invenio_config_tugraz/translations/messages.pot input-file = invenio_config_tugraz/translations/messages.pot
output-dir = invenio_config_tugraz/translations/ output-dir = invenio_config_tugraz/translations/
[flake8]
max-line-length = 88
extend-ignore = E203
select = C,E,F,W,B,B950
ignore = E501
[isort] [isort]
multi_line_output = 3 profile=black
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 88
[pycodestyle] [tool:pytest]
ignore = E203,E501 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

107
setup.py
View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,107 +8,6 @@
"""invenio module that adds tugraz configs.""" """invenio module that adds tugraz configs."""
import os from setuptools import setup
from setuptools import find_packages, setup 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",
],
)

View File

@@ -73,7 +73,7 @@ def create_app(request):
return app return app
@pytest.fixture(scope='function') @pytest.fixture(scope="function")
def open_record(): def open_record():
"""Open record data as dict coming from the external world.""" """Open record data as dict coming from the external world."""
return { return {
@@ -81,44 +81,44 @@ def open_record():
"metadata": False, "metadata": False,
"files": False, "files": False,
"owned_by": [1], "owned_by": [1],
"access_right": "open" "access_right": "open",
}, },
"metadata": { "metadata": {
"publication_date": "2020-06-01", "publication_date": "2020-06-01",
"resource_type": { "resource_type": {"type": "image", "subtype": "image-photo"},
"type": "image",
"subtype": "image-photo"
},
# Technically not required # Technically not required
"creators": [{ "creators": [
"name": "Troy Brown", {"name": "Troy Brown", "type": "personal"},
"type": "personal" {
}, { "name": "Phillip Lester",
"name": "Phillip Lester", "type": "personal",
"type": "personal", "identifiers": {"orcid": "0000-0002-1825-0097"},
"identifiers": {"orcid": "0000-0002-1825-0097"}, "affiliations": [
"affiliations": [{ {"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
"name": "Carter-Morris", ],
"identifiers": {"ror": "03yrm5c26"} },
}] {
}, { "name": "Steven Williamson",
"name": "Steven Williamson", "type": "personal",
"type": "personal", "identifiers": {"orcid": "0000-0002-1825-0097"},
"identifiers": {"orcid": "0000-0002-1825-0097"}, "affiliations": [
"affiliations": [{ {
"name": "Ritter and Sons", "name": "Ritter and Sons",
"identifiers": {"ror": "03yrm5c26"} "identifiers": {"ror": "03yrm5c26"},
}, { },
"name": "Montgomery, Bush and Madden", {
"identifiers": {"ror": "03yrm5c26"} "name": "Montgomery, Bush and Madden",
}] "identifiers": {"ror": "03yrm5c26"},
}], },
"title": "A Romans story" ],
} },
],
"title": "A Romans story",
},
} }
@pytest.fixture(scope='function') @pytest.fixture(scope="function")
def singleip_record(): def singleip_record():
"""Single Ip record data as dict coming from the external world.""" """Single Ip record data as dict coming from the external world."""
return { return {
@@ -126,38 +126,38 @@ def singleip_record():
"metadata": False, "metadata": False,
"files": False, "files": False,
"owned_by": [1], "owned_by": [1],
"access_right": "singleip" "access_right": "singleip",
}, },
"metadata": { "metadata": {
"publication_date": "2020-06-01", "publication_date": "2020-06-01",
"resource_type": { "resource_type": {"type": "image", "subtype": "image-photo"},
"type": "image",
"subtype": "image-photo"
},
# Technically not required # Technically not required
"creators": [{ "creators": [
"name": "Troy Brown", {"name": "Troy Brown", "type": "personal"},
"type": "personal" {
}, { "name": "Phillip Lester",
"name": "Phillip Lester", "type": "personal",
"type": "personal", "identifiers": {"orcid": "0000-0002-1825-0097"},
"identifiers": {"orcid": "0000-0002-1825-0097"}, "affiliations": [
"affiliations": [{ {"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
"name": "Carter-Morris", ],
"identifiers": {"ror": "03yrm5c26"} },
}] {
}, { "name": "Steven Williamson",
"name": "Steven Williamson", "type": "personal",
"type": "personal", "identifiers": {"orcid": "0000-0002-1825-0097"},
"identifiers": {"orcid": "0000-0002-1825-0097"}, "affiliations": [
"affiliations": [{ {
"name": "Ritter and Sons", "name": "Ritter and Sons",
"identifiers": {"ror": "03yrm5c26"} "identifiers": {"ror": "03yrm5c26"},
}, { },
"name": "Montgomery, Bush and Madden", {
"identifiers": {"ror": "03yrm5c26"} "name": "Montgomery, Bush and Madden",
}] "identifiers": {"ror": "03yrm5c26"},
}], },
"title": "A Romans story" ],
} },
],
"title": "A Romans story",
},
} }

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # 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.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"}}]}
}

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # 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 # modify it under the terms of the MIT License; see LICENSE file for more