From ec348747995cf09f6f8875b8645800858567ef00 Mon Sep 17 00:00:00 2001 From: Wim De Clercq Date: Fri, 11 Oct 2024 12:05:16 +0200 Subject: [PATCH] Backend upgrade. Issue #220 --- .coveragerc | 3 - .github/pr-labeler.yml | 3 + .github/workflows/backend.yaml | 42 +++++++ .github/workflows/pr-labeler.yml | 22 ++++ .travis.yml | 12 -- MANIFEST.in | 1 - README.md | 85 +++++++++++++ README.rst | 33 ----- nose_cover.cfg | 6 - nose_development.ini | 5 - nose_travis.ini | 5 - pyproject.toml | 57 +++++++++ requirements-ci.txt | 101 +++++++++++++++ requirements-dev.txt | 119 ++++++++++++++---- requirements.txt | 51 +++++++- setup.cfg | 9 -- setup.py | 52 -------- {crabpy_pyramid/tests => tests}/__init__.py | 0 .../fixtures/adressenregister.py | 0 .../tests => tests}/renderers/__init__.py | 0 .../tests => tests}/renderers/test_capakey.py | 0 .../tests => tests}/test_capakey.py | 0 .../tests => tests}/test_functional.py | 18 +-- {crabpy_pyramid/tests => tests}/test_utils.py | 0 24 files changed, 465 insertions(+), 159 deletions(-) delete mode 100644 .coveragerc create mode 100644 .github/pr-labeler.yml create mode 100644 .github/workflows/backend.yaml create mode 100644 .github/workflows/pr-labeler.yml delete mode 100644 .travis.yml delete mode 100644 MANIFEST.in create mode 100644 README.md delete mode 100644 README.rst delete mode 100644 nose_cover.cfg delete mode 100644 nose_development.ini delete mode 100644 nose_travis.ini create mode 100644 pyproject.toml create mode 100644 requirements-ci.txt delete mode 100644 setup.cfg delete mode 100644 setup.py rename {crabpy_pyramid/tests => tests}/__init__.py (100%) rename {crabpy_pyramid/tests => tests}/fixtures/adressenregister.py (100%) rename {crabpy_pyramid/tests => tests}/renderers/__init__.py (100%) rename {crabpy_pyramid/tests => tests}/renderers/test_capakey.py (100%) rename {crabpy_pyramid/tests => tests}/test_capakey.py (100%) rename {crabpy_pyramid/tests => tests}/test_functional.py (98%) rename {crabpy_pyramid/tests => tests}/test_utils.py (100%) diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index f85c010..0000000 --- a/.coveragerc +++ /dev/null @@ -1,3 +0,0 @@ -[report] -omit = - */site-packages/* diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml new file mode 100644 index 0000000..8888cd4 --- /dev/null +++ b/.github/pr-labeler.yml @@ -0,0 +1,3 @@ +feature: ['feature/*', 'feat/*'] +fix: ['bugfix/*', 'fix/*'] +test: test/* diff --git a/.github/workflows/backend.yaml b/.github/workflows/backend.yaml new file mode 100644 index 0000000..a765946 --- /dev/null +++ b/.github/workflows/backend.yaml @@ -0,0 +1,42 @@ +name: crabpy_pyramid tests + +on: + push: + paths: + - crabpy_pyramid/** + - tests/** + - .github/workflows/backend.yaml + - pyproject.toml + - requirements*.txt + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ "3.10", "3.11", "3.12" ] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Display Python version + run: python -c "import sys; print(sys.version)" + + - name: Install python requirements + run: | + pip install pip-tools + pip-sync requirements-ci.txt + pip install -e . + + - name: Python tests + run: | + flake8 + coverage run --source=crabpy_pyramid -m pytest tests + + - name: Coveralls + uses: coverallsapp/github-action@v2 diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml new file mode 100644 index 0000000..6d41fc2 --- /dev/null +++ b/.github/workflows/pr-labeler.yml @@ -0,0 +1,22 @@ +name: PR Labeler +on: + pull_request: + types: [opened] + branches: + - 'develop' + - 'epic' + +permissions: + contents: read + +jobs: + pr-labeler: + permissions: + contents: read # for TimonVS/pr-labeler-action to read config file + pull-requests: write # for TimonVS/pr-labeler-action to add labels in PR + runs-on: ubuntu-latest + steps: + - uses: TimonVS/pr-labeler-action@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/pr-labeler.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2d3eee8..0000000 --- a/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -dist: focal -sudo: false -language: python -python: - - 3.11 -install: - - pip install -r requirements-dev.txt - - pip install -e . -script: - cd crabpy_pyramid; python -m unittest discover -s tests -after_success: - coveralls diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 15de862..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -include README.rst CHANGES.rst LICENSE diff --git a/README.md b/README.md new file mode 100644 index 0000000..df67388 --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +# crabpy_pyramid + +Bindings for the crabpy library and the pyramid framework + +[![pypi](https://badge.fury.io/py/crabpy_pyramid.png)](http://badge.fury.io/py/crabpy_pyramid) +[![docs](https://readthedocs.org/projects/crabpy-pyramid/badge/?version=latest)](https://readthedocs.org/projects/crabpy-pyramid/?badge=latest) +[![CI](https://github.com/OnroerendErfgoed/crabpy_pyramid/actions/workflows/backend.yaml/badge.svg)](https://github.com/OnroerendErfgoed/crabpy_pyramid/actions/workflows/backend.yaml) +[![coverage](https://coveralls.io/repos/OnroerendErfgoed/crabpy_pyramid/badge.png?branch=master)](https://coveralls.io/r/OnroerendErfgoed/crabpy_pyramid?branch=master) +[![pypi](https://badge.fury.io/py/crabpy_pyramid.png)](http://badge.fury.io/py/crabpy_pyramid) + + +# Development +## Building the docs + +More information about this library can be found in `docs`. The docs can be +built using `Sphinx `_. + +Please make sure you have installed Sphinx in the same environment where +crabpy\_pyramid is present. + +```sh +pip install sphinx sphinxcontrib-httpdomain +pip install -e . +cd docs +make html +``` + +## Build wheel or sdist + +```sh +pip install hatch +hatch build +hatch build -t wheel +hatch build -t sdist +``` + + +## Work with pip-compile / pip-sync + +full docs: https://pip-tools.readthedocs.io/en/latest/ + +To start, first install pip-tools: +```sh +pip install pip-tools +``` + +### uv (optional) + +You can also use `uv` and for the remainder of the readme replace `pip`, `pip-compile` or +`pip-sync` by `uv pip`, `uv pip compile` and `uv pip sync`. + +`uv` is a very fast replacement for pip-toools. It's optional, but can save a lot of time. +```sh +pip install uv +``` + +### Install requirements: pip-sync + +Note, `pip-sync` also uninstalls everything from the virtualenv which does not belong +there according to the requirements file. This includes the project itself. You will +have to install `crabpy_pyramid` again after `pip-sync`. +Since the requirements file of pip-sync is still a normal requirements file you can also +use `pip install -r` to install all libraries defined in it. This will not cleanup your +virtualenv and uninstall other libraries. + +The compiled requirements files are made in a 3.11 environment. +```sh +pip-sync requirements-dev.txt +pip install -e . +``` +`requirements-dev.txt` contains all libraries uncluding those for testing and development. + +`requirements.txt` contains only the necessary libraries for running the library. + +### Update requirements: pip-compile + +```sh +echo -e "\nStarting" +PIP_COMPILE_ARGS="-q --strip-extras --no-header --resolver=backtracking --no-emit-options pyproject.toml" +pip-compile $PIP_COMPILE_ARGS -o requirements.txt; +echo "requirements.txt done" +pip-compile $PIP_COMPILE_ARGS --extra dev -o requirements-dev.txt; +echo "requirements-dev.txt done" +echo "Finished" +``` diff --git a/README.rst b/README.rst deleted file mode 100644 index c00c1b2..0000000 --- a/README.rst +++ /dev/null @@ -1,33 +0,0 @@ -crabpy_pyramid -============== - -Bindings for the crabpy library and the pyramid framework - -.. image:: https://badge.fury.io/py/crabpy_pyramid.png - :target: http://badge.fury.io/py/crabpy_pyramid -.. image:: https://readthedocs.org/projects/crabpy-pyramid/badge/?version=latest - :target: https://readthedocs.org/projects/crabpy-pyramid/?badge=latest - -.. image:: https://travis-ci.org/OnroerendErfgoed/crabpy_pyramid.png?branch=master - :target: https://travis-ci.org/OnroerendErfgoed/crabpy_pyramid -.. image:: https://coveralls.io/repos/OnroerendErfgoed/crabpy_pyramid/badge.png?branch=master - :target: https://coveralls.io/r/OnroerendErfgoed/crabpy_pyramid?branch=master -.. image:: https://scrutinizer-ci.com/g/OnroerendErfgoed/crabpy_pyramid/badges/quality-score.png?b=master - :target: https://scrutinizer-ci.com/g/OnroerendErfgoed/crabpy_pyramid/?branch=master - -Building the docs ------------------ - -More information about this library can be found in `docs`. The docs can be -built using `Sphinx `_. - -Please make sure you have installed Sphinx in the same environment where -crabpy\_pyramid is present. - -.. code-block:: bash - - # activate your virtual env - $ pip install sphinx sphinxcontrib-httpdomain - $ python setup.py develop - $ cd docs - $ make html diff --git a/nose_cover.cfg b/nose_cover.cfg deleted file mode 100644 index 213a5ab..0000000 --- a/nose_cover.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package=crabpy_pyramid -with-coverage=1 -cover-erase=1 diff --git a/nose_development.ini b/nose_development.ini deleted file mode 100644 index 69044b1..0000000 --- a/nose_development.ini +++ /dev/null @@ -1,5 +0,0 @@ -[crab] -run_integration_tests = True - -[capakey] -run_integration_tests = True diff --git a/nose_travis.ini b/nose_travis.ini deleted file mode 100644 index 52ff32c..0000000 --- a/nose_travis.ini +++ /dev/null @@ -1,5 +0,0 @@ -[crab] -run_integration_tests = 1 - -[capakey] -run_integration_tests = 1 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0a9a393 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,57 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +version = "2.1.1" +name = "crabpy_pyramid" +readme = "README.md" +authors = [ + { name = "Flanders Heritage Agency", email = "ict@onroerenderfgoed.be" }, +] +license = {file = "LICENSE"} +description = "Bindings for the CRABpy webservices and the Pyramid framework." +requires-python = ">=3.10,<3.13" +keywords = ["web", "pyramid", "wsgi", "CRAB", "CAPAKEY", "AGIV"] +classifiers = [ + 'Development Status :: 5 - Production/Stable', + "Programming Language :: Python", + 'Programming Language :: Python :: 3.10', + "Framework :: Pyramid", + "Topic :: Internet :: WWW/HTTP", + "Intended Audience :: Developers", + 'License :: OSI Approved :: MIT License', + 'Operating System :: OS Independent', +] +dependencies = [ + "pyramid>=2.0.0", + "crabpy>=1.3.2", + "pycountry>=23.12.11", +] + +[project.optional-dependencies] +dev = [ + "waitress==3.0.0", + "pytest==8.3.3", + "WebTest==3.0.1", + "responses==0.25.3", + "flake8==7.1.1", + "black==24.10.0", + "uv==0.4.20", + "coveralls==4.0.1" +] + +[project.urls] +Repository = "https://github.com/OnroerendErfgoed/crabpy_pyramid.git" +Issues = "https://github.com/OnroerendErfgoed/crabpy_pyramid/issues" +Changelog = "https://github.com/OnroerendErfgoed/crabpy_pyramid/blob/master/CHANGES.rst" + +[project.entry-points."paste.app_factory"] +main = "crabpy_pyramid:main" + +[tool.hatch.build.targets.wheel] +# In the wheel we want to have crabpy_pyramid in the root as +# python modules. +packages = [ + "/crabpy_pyramid", +] diff --git a/requirements-ci.txt b/requirements-ci.txt new file mode 100644 index 0000000..6cb2700 --- /dev/null +++ b/requirements-ci.txt @@ -0,0 +1,101 @@ +beautifulsoup4==4.12.3 + # via webtest +black==24.10.0 + # via crabpy-pyramid (pyproject.toml) +certifi==2024.8.30 + # via requests +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via black +crabpy==1.3.2 + # via crabpy-pyramid (pyproject.toml) +decorator==5.1.1 + # via dogpile-cache +dogpile-cache==1.3.3 + # via crabpy +flake8==7.1.1 + # via crabpy-pyramid (pyproject.toml) +hupper==1.12.1 + # via pyramid +idna==3.10 + # via requests +iniconfig==2.0.0 + # via pytest +mccabe==0.7.0 + # via flake8 +mypy-extensions==1.0.0 + # via black +packaging==24.1 + # via + # black + # pytest +pastedeploy==3.1.0 + # via plaster-pastedeploy +pathspec==0.12.1 + # via black +pbr==6.1.0 + # via stevedore +plaster==1.1.2 + # via + # plaster-pastedeploy + # pyramid +plaster-pastedeploy==1.0.1 + # via pyramid +platformdirs==4.3.6 + # via black +pluggy==1.5.0 + # via pytest +pycodestyle==2.12.1 + # via flake8 +pycountry==24.6.1 + # via crabpy-pyramid (pyproject.toml) +pyflakes==3.2.0 + # via flake8 +pyramid==2.0.2 + # via crabpy-pyramid (pyproject.toml) +pytest==8.3.3 + # via crabpy-pyramid (pyproject.toml) +pyyaml==6.0.2 + # via responses +requests==2.32.3 + # via + # crabpy + # responses +responses==0.25.3 + # via crabpy-pyramid (pyproject.toml) +setuptools==75.1.0 + # via + # pyramid + # zope-deprecation + # zope-interface +soupsieve==2.6 + # via beautifulsoup4 +stevedore==5.3.0 + # via dogpile-cache +suds-py3==1.4.5.0 + # via crabpy +translationstring==1.4 + # via pyramid +urllib3==2.2.3 + # via + # requests + # responses +uv==0.4.20 + # via crabpy-pyramid (pyproject.toml) +venusian==3.1.0 + # via pyramid +waitress==3.0.0 + # via + # crabpy-pyramid (pyproject.toml) + # webtest +webob==1.8.8 + # via + # pyramid + # webtest +webtest==3.0.1 + # via crabpy-pyramid (pyproject.toml) +zope-deprecation==5.0 + # via pyramid +zope-interface==7.1.0 + # via pyramid diff --git a/requirements-dev.txt b/requirements-dev.txt index 16a5684..7f1de2c 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,22 +1,99 @@ ---requirement requirements.txt +beautifulsoup4==4.12.3 + # via webtest +black==24.10.0 + # via crabpy_pyramid (pyproject.toml) +certifi==2024.8.30 + # via requests +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via black +crabpy==1.3.2 + # via crabpy_pyramid (pyproject.toml) +decorator==5.1.1 + # via dogpile-cache +dogpile-cache==1.3.3 + # via crabpy +flake8==7.1.1 + # via crabpy_pyramid (pyproject.toml) +hupper==1.12.1 + # via pyramid +idna==3.10 + # via requests +iniconfig==2.0.0 + # via pytest +mccabe==0.7.0 + # via flake8 +mypy-extensions==1.0.0 + # via black +packaging==24.1 + # via + # black + # pytest +pastedeploy==3.1.0 + # via plaster-pastedeploy +pathspec==0.12.1 + # via black +pbr==6.1.0 + # via stevedore +plaster==1.1.2 + # via + # plaster-pastedeploy + # pyramid +plaster-pastedeploy==1.0.1 + # via pyramid +platformdirs==4.3.6 + # via black +pluggy==1.5.0 + # via pytest +pycodestyle==2.12.1 + # via flake8 +pycountry==23.12.11 + # via crabpy_pyramid (pyproject.toml) +pyflakes==3.2.0 + # via flake8 +pyramid==2.0 + # via crabpy_pyramid (pyproject.toml) +pytest==8.3.3 + # via crabpy_pyramid (pyproject.toml) +pyyaml==6.0.2 + # via responses +requests==2.32.3 + # via + # crabpy + # responses +responses==0.25.3 + # via crabpy_pyramid (pyproject.toml) +soupsieve==2.6 + # via beautifulsoup4 +stevedore==5.3.0 + # via dogpile-cache +suds-py3==1.4.5.0 + # via crabpy +translationstring==1.4 + # via pyramid +urllib3==2.2.3 + # via + # requests + # responses +uv==0.4.20 + # via crabpy_pyramid (pyproject.toml) +venusian==3.1.0 + # via pyramid +waitress==3.0.0 + # via + # crabpy_pyramid (pyproject.toml) + # webtest +webob==1.8.8 + # via + # pyramid + # webtest +webtest==3.0.1 + # via crabpy_pyramid (pyproject.toml) +zope-deprecation==5.0 + # via pyramid +zope-interface==7.1.0 + # via pyramid -# Development -pyramid-debugtoolbar==4.6.1 -waitress==1.4.2 - -# Testing -nose==1.3.7 -nose-testconfig==0.10 -coverage==5.3 -WebTest==2.0.35 -responses==0.23.1 -requests==2.29.0 -urllib3==1.26.15 - -# Linting -flake8==3.8.3 - -# Documentation -Sphinx==1.8.5 ; python_version < '3.5' -Sphinx==3.2.1 ; python_version >= '3.5' -sphinxcontrib-httpdomain==1.7.0 +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements.txt b/requirements.txt index 4047196..ce5a925 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,49 @@ -# Tested and approved with these versions -pyramid==2.0.0 +certifi==2024.8.30 + # via requests +charset-normalizer==3.4.0 + # via requests crabpy==1.3.2 -pycountry==23.12.11 ; python_version >= '3.4' + # via crabpy_pyramid (pyproject.toml) +decorator==5.1.1 + # via dogpile-cache +dogpile-cache==1.3.3 + # via crabpy +hupper==1.12.1 + # via pyramid +idna==3.10 + # via requests +pastedeploy==3.1.0 + # via plaster-pastedeploy +pbr==6.1.0 + # via stevedore +plaster==1.1.2 + # via + # plaster-pastedeploy + # pyramid +plaster-pastedeploy==1.0.1 + # via pyramid +pycountry==23.12.11 + # via crabpy_pyramid (pyproject.toml) +pyramid==2.0 + # via crabpy_pyramid (pyproject.toml) +requests==2.32.3 + # via crabpy +stevedore==5.3.0 + # via dogpile-cache +suds-py3==1.4.5.0 + # via crabpy +translationstring==1.4 + # via pyramid +urllib3==2.2.3 + # via requests +venusian==3.1.0 + # via pyramid +webob==1.8.8 + # via pyramid +zope-deprecation==5.0 + # via pyramid +zope-interface==7.1.0 + # via pyramid + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 2bf013b..0000000 --- a/setup.cfg +++ /dev/null @@ -1,9 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package=crabpy_pyramid -with-coverage=1 -cover-erase=1 - -[bdist_wheel] -universal=1 diff --git a/setup.py b/setup.py deleted file mode 100644 index fbfc808..0000000 --- a/setup.py +++ /dev/null @@ -1,52 +0,0 @@ -import os - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.rst')).read() -CHANGES = open(os.path.join(here, 'CHANGES.rst')).read() - -requires = [ - 'pyramid', - 'crabpy>=1.3.2', - 'pycountry>=23.12.11' -] - -tests_requires = [ - 'nose', - 'coverage', - 'webtest' -] - -testing_extras = tests_requires + [] - -setup(name='crabpy_pyramid', - version='2.1.1', - description='Bindings for the CRABpy webservices and the Pyramid framework.', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - 'Development Status :: 5 - Production/Stable', - "Programming Language :: Python", - 'Programming Language :: Python :: 3.8', - "Framework :: Pyramid", - "Topic :: Internet :: WWW/HTTP", - "Intended Audience :: Developers", - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - ], - author='Onroerend Erfgoed', - author_email='ict@onroerenderfgoed.be', - url='http://github.com/OnroerendErfgoed/crabpy_pyramid', - keywords='web wsgi pyramid CRAB CAPAKEY AGIV', - license='MIT', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - test_suite='crabpy_pyramid', - install_requires=requires, - tests_require=tests_requires, - entry_points="""\ - [paste.app_factory] - main = crabpy_pyramid:main - """, - ) diff --git a/crabpy_pyramid/tests/__init__.py b/tests/__init__.py similarity index 100% rename from crabpy_pyramid/tests/__init__.py rename to tests/__init__.py diff --git a/crabpy_pyramid/tests/fixtures/adressenregister.py b/tests/fixtures/adressenregister.py similarity index 100% rename from crabpy_pyramid/tests/fixtures/adressenregister.py rename to tests/fixtures/adressenregister.py diff --git a/crabpy_pyramid/tests/renderers/__init__.py b/tests/renderers/__init__.py similarity index 100% rename from crabpy_pyramid/tests/renderers/__init__.py rename to tests/renderers/__init__.py diff --git a/crabpy_pyramid/tests/renderers/test_capakey.py b/tests/renderers/test_capakey.py similarity index 100% rename from crabpy_pyramid/tests/renderers/test_capakey.py rename to tests/renderers/test_capakey.py diff --git a/crabpy_pyramid/tests/test_capakey.py b/tests/test_capakey.py similarity index 100% rename from crabpy_pyramid/tests/test_capakey.py rename to tests/test_capakey.py diff --git a/crabpy_pyramid/tests/test_functional.py b/tests/test_functional.py similarity index 98% rename from crabpy_pyramid/tests/test_functional.py rename to tests/test_functional.py index 1b0fec4..d66cd60 100644 --- a/crabpy_pyramid/tests/test_functional.py +++ b/tests/test_functional.py @@ -14,15 +14,15 @@ from webtest import TestApp from crabpy_pyramid import main -from crabpy_pyramid.tests.fixtures.adressenregister import adres -from crabpy_pyramid.tests.fixtures.adressenregister import adressen -from crabpy_pyramid.tests.fixtures.adressenregister import perceel -from crabpy_pyramid.tests.fixtures.adressenregister import percelen -from crabpy_pyramid.tests.fixtures.adressenregister import postinfo_1000 -from crabpy_pyramid.tests.fixtures.adressenregister import postinfo_1020 -from crabpy_pyramid.tests.fixtures.adressenregister import postinfos -from crabpy_pyramid.tests.fixtures.adressenregister import straat -from crabpy_pyramid.tests.fixtures.adressenregister import straten +from tests.fixtures.adressenregister import adres +from tests.fixtures.adressenregister import adressen +from tests.fixtures.adressenregister import perceel +from tests.fixtures.adressenregister import percelen +from tests.fixtures.adressenregister import postinfo_1000 +from tests.fixtures.adressenregister import postinfo_1020 +from tests.fixtures.adressenregister import postinfos +from tests.fixtures.adressenregister import straat +from tests.fixtures.adressenregister import straten def as_bool(value): diff --git a/crabpy_pyramid/tests/test_utils.py b/tests/test_utils.py similarity index 100% rename from crabpy_pyramid/tests/test_utils.py rename to tests/test_utils.py