plone.api/master: introduce new tox.ini and pin code conventions in setup.cfg

Alexander Loechel <jenkins-z4DKO/[email protected]>
Newsgroups gmane.comp.web.zope.plone.cvs
Message-ID <[email protected]>
Repository: plone.api
Branch: refs/heads/master
Date: 2017-07-20T11:05:07+02:00
Author: Alexander Loechel (loechel) <[email protected]>
Commit: https://github.com/plone/plone.api/commit/0679e57cc1184a13d3025be8c434046ed01acaf9

introduce new tox.ini and pin code conventions in setup.cfg

Files changed:
A plone-5.1.x.cfg
A tox.ini
M .gitignore
M buildout.cfg
M plone-4.3.x.cfg
M plone-5.0.x.cfg
M setup.cfg

diff --git a/.gitignore b/.gitignore
index 0a7685c..fbf9d8e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
 *.mo
-*.pyc
+*.py[cod]
 *~
 /.Python
 /.coverage
@@ -21,3 +21,7 @@
 /share/
 /src/plone.api.egg-info/
 /var/
+/reports/
+/pip-selfcheck.json
+/_build/
+/.tox/
diff --git a/buildout.cfg b/buildout.cfg
index 02bdfa7..d59dad3 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -1,10 +1,11 @@
 [buildout]
-extends =
-    https://raw.github.com/collective/buildout.plonetest/master/test-4.3.x.cfg
-    plone-4.3.x.cfg
+
 package-name = plone.api
-package-extras = [test]
-test-eggs = Pillow
+package-extras = [develop, test]
+test-eggs =
+    Pillow
+    plone.app.contenttypes
+
 parts +=
     omelette
     code-analysis
@@ -34,6 +35,7 @@ debug-statements = True
 return-status-codes = True
 
 [versions]
+plone.api =
 flake8 = 2.6.2
 mccabe = 0.5.2
 plone.recipe.codeanalysis = 1.0b5
diff --git a/plone-4.3.x.cfg b/plone-4.3.x.cfg
index e69de29..98c10c3 100644
--- a/plone-4.3.x.cfg
+++ b/plone-4.3.x.cfg
@@ -0,0 +1,10 @@
+[buildout]
+extends =
+    https://raw.github.com/collective/buildout.plonetest/master/test-4.3.x.cfg
+    buildout.cfg
+
+test-eggs +=
+    plone.app.contenttypes
+
+[versions]
+plone.api =
diff --git a/plone-5.0.x.cfg b/plone-5.0.x.cfg
index d32ca7a..54c048e 100644
--- a/plone-5.0.x.cfg
+++ b/plone-5.0.x.cfg
@@ -1,4 +1,8 @@
 [buildout]
+extends =
+    https://raw.github.com/collective/buildout.plonetest/master/test-5.0.x.cfg
+    buildout.cfg
+
 test-eggs +=
     plone.app.contenttypes
 
diff --git a/plone-5.1.x.cfg b/plone-5.1.x.cfg
new file mode 100644
index 0000000..4ad852b
--- /dev/null
+++ b/plone-5.1.x.cfg
@@ -0,0 +1,10 @@
+[buildout]
+extends =
+    https://raw.github.com/collective/buildout.plonetest/master/test-5.1.x.cfg
+    buildout.cfg
+
+test-eggs +=
+    plone.app.contenttypes
+
+[versions]
+plone.api =
diff --git a/setup.cfg b/setup.cfg
index 927666e..9a377df 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,3 +2,21 @@
 ignore =
     *.cfg
     .travis.yml
+
+[isort]
+force_alphabetical_sort=True
+force_single_line=True
+lines_after_imports=2
+line_length=200
+not_skip=__init__.py
+
+[coverage:run]
+branch = True
+source = src
+omit =
+
+[coverage:report]
+precision = 2
+
+[coverage:html]
+directory = reports/coverage
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..ef559bb
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,123 @@
+[tox]
+envlist =
+    py27-Plone-{4.3,5.0,5.1},
+    isort,
+    flake8,
+    docs,
+    coverage-report,
+
+skip_missing_interpreters = false
+
+[testenv]
+skip_install = True
+
+basepython:
+    py27: python2.7
+
+extras =
+    test
+
+Plone-4.3:
+    commands =
+        mkdir -p {toxinidir}/reports/coverage
+        {envbindir}/buildout -c {toxinidir}/plone-4.3.x.cfg buildout:directory={envdir} buildout:develop={toxinidir} bootstrap
+        {envbindir}/buildout -c {toxinidir}/plone-4.3.x.cfg buildout:directory={envdir} buildout:develop={toxinidir}
+        coverage run {envbindir}/test -v1 --auto-color {posargs}
+Plone-5.0:
+    commands =
+        mkdir -p {toxinidir}/reports/coverage
+        {envbindir}/buildout -c {toxinidir}/plone-5.0.x.cfg buildout:directory={envdir} buildout:develop={toxinidir} bootstrap
+        {envbindir}/buildout -c {toxinidir}/plone-5.0.x.cfg buildout:directory={envdir} buildout:develop={toxinidir}
+        coverage run {envbindir}/test -v1 --auto-color {posargs}
+Plone-5.1:
+    commands =
+        mkdir -p {toxinidir}/reports/coverage
+        {envbindir}/buildout -c {toxinidir}/plone-5.1.x.cfg buildout:directory={envdir} buildout:develop={toxinidir} bootstrap
+        {envbindir}/buildout -c {toxinidir}/plone-5.1.x.cfg buildout:directory={envdir} buildout:develop={toxinidir}
+        coverage run {envbindir}/test -v1 --auto-color {posargs}
+
+setenv =
+    COVERAGE_FILE=.coverage.{envname}
+
+deps =
+    pdbpp
+    setuptools==33.1.1
+    zc.buildout==2.8.0
+    coverage
+
+whitelist_externals =
+    mkdir
+
+[testenv:coverage-report]
+basepython = python2.7
+deps = coverage
+
+setenv =
+    COVERAGE_FILE=.coverage
+
+skip_install = true
+
+commands =
+    coverage erase
+    coverage combine
+    coverage report
+    coverage html
+    coverage xml
+
+[testenv:flake8]
+basepython = python2.7
+skip_install = true
+
+deps =
+    flake8
+    flake8-html
+    flake8-coding
+    flake8-debugger
+    flake8-deprecated
+    flake8-isort
+    flake8-pep3101
+    flake8-plone-hasattr
+    flake8-polyfill
+    flake8-print
+    flake8-quotes
+    flake8-string-format
+    flake8-todo
+
+commands =
+    mkdir -p {toxinidir}/reports/flake8
+    - flake8 --format=html --htmldir={toxinidir}/reports/flake8 src setup.py
+    flake8 src setup.py
+
+whitelist_externals =
+    mkdir
+
+[testenv:isort]
+basepython = python2.7
+skip_install = true
+
+deps =
+    isort
+
+commands =
+    isort --check-only --recursive {toxinidir}/src
+
+[testenv:isort-apply]
+basepython = python2.7
+skip_install = true
+
+deps =
+    isort
+
+commands =
+    isort --apply --recursive {toxinidir}/src
+
+
+[testenv:docs]
+basepython = python2.7
+skip_install = false
+
+deps =
+    Sphinx
+
+commands =
+    sphinx-build -b html -d _build/docs/doctrees docs _build/docs/html



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.