[tox]
envlist = py{35,38}-xblock{13,14},flake8

[gh-actions]
python =
    3.5: py35,flake8
    3.8: py38,flake8

[flake8]
ignore = E124,W504
exclude = .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg,src

[coverage:run]
parallel = True
include =
  hastexo/*.py
  tests/*.py

[coverage:report]
precision = 2

[testenv]
deps =
    -rrequirements/setup.txt
    -rrequirements/test.txt
    xblock13: XBlock>=1.3,<1.4
    xblock14: XBlock>=1.4,<1.5
commands =
    python run_tests.py []

[testenv:flake8]
deps =
    -rrequirements/flake8.txt
commands = flake8

[tox]
envlist = py{35,38}-xblock{13,14},flake8

[gh-actions]
python =
    3.5: py35,flake8
    3.8: py38,flake8

[flake8]
ignore = E124,W504
exclude = .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg,src

[coverage:run]
parallel = True
include =
  hastexo/*.py
  tests/*.py

[coverage:report]
precision = 2
exclude_lines =
    pragma: no cover
    raise NotImplementedError

[testenv]
deps =
    -rrequirements/setup.txt
    -rrequirements/test.txt
    xblock13: XBlock>=1.3,<1.4
    xblock14: XBlock>=1.4,<1.5
commands =
    python run_tests.py []

[testenv:flake8]
deps =
    -rrequirements/flake8.txt
commands = flake8

Exclude abstract methods from coverage
Exclude abstract methods from coverage

In abstract base classes, we have methods that do nothing but raise
NotImplementedError, because they are meant to be overridden by
subclasses. Those methods obviously never get any unit test coverage
(nor are they meant to), so use the approach outlined in the Coverage
documentation to exclude such lines from the report.

Reference:
https://coverage.readthedocs.io/en/coverage-5.5/excluding.html
