Skip to main content

Static code checks used at Alphamoon

Project description

pytest-alphamoon

image image

Set of simple static code checks at Alphamoon.


This pytest plugin was generated with Cookiecutter along with @hackebrot's cookiecutter-pytest-plugin template. Source code is based on pytest-isort plugin.

Features

Package contains several plugins, as shown in Table below:

Plugin Description
import-check Checks no imports from scripts/notebooks/user_settings
init-check Checks no __init__.py file in scripts/notebooks
notebook-check Checks notebooks (.ipnyb files) are clean, without outputs
newline-check Checks files (requirements*, .gitignore or custom) for newline at the end of file
testdir-check Checks test files (files matching patterns: test_*.py or *_test.py) are under /tests directory
annotation-check Checks integration tests function/class definition (all class and functions defined under integration_tests prefixed with test*) has decorator @integration_test

Requirements

pytest>=3.5.0

Installation

You can install "pytest-alphamoon" via pip from PyPI:

$ pip install pytest-alphamoon

Usage

You can add arbitrary plugin from this package by specifying its name in pytest.ini addopts section with plugin names as shown in Table above along with any other plugin you are currently using.

[pytest]
addopts = --init-check --import-check --notebook-check  --newline-check --testdir-check
          --annotation-check

import_forbidden_from =
    scripts
    user_settings
    notebooks

notebook_allowed_in =
    notebooks

init_forbidden_in =
    scripts
    notebooks

Parameters, like import_forbidden_from, shown in example configuration above are optional. If custom values are not provided in pytest.ini file, default parameters are used.

After setting up configuration file specified checks are loaded and executed automatically within test session, after invoking command:

$ pytest

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT license, "pytest-alphamoon" is free and open source software

Issues

If you encounter any problems, please email us at dev@alphamoon.ai, along with a detailed description.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-alphamoon-0.2.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

pytest_alphamoon-0.2.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file pytest-alphamoon-0.2.0.tar.gz.

File metadata

  • Download URL: pytest-alphamoon-0.2.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for pytest-alphamoon-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0a576dd352c28f72e072ec0e5a31dc29b50b9d86e366137db1fc706f91fb1309
MD5 49975e1e23a5b01c7b433cbd1c276e75
BLAKE2b-256 48aaac3e976bc34f6a21147b40322ff183503f5095ec6b3b6b8918b68d516622

See more details on using hashes here.

File details

Details for the file pytest_alphamoon-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_alphamoon-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for pytest_alphamoon-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab4490f5eaa7bd74fccb983e2668a83d81715d345cec883352e64c21f0f8a4da
MD5 ad19ecd0eb68aedd73714978215296b2
BLAKE2b-256 8bec041682f8b4cf58134c5c1c2da5fa2fda53cb0935c9097b4a4bdd01ff40b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page