diff options
author | Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> | 2018-10-10 11:04:44 -0700 |
---|---|---|
committer | Thea Flowers <theaflowers@google.com> | 2018-10-10 11:04:44 -0700 |
commit | 9f45e3c3fe1da16a05dab2181867d20cd7e90f64 (patch) | |
tree | e8a082eb15ab4a92613b86f543504e9dc873a6f2 /noxfile.py | |
parent | 2ab3a09063ae98db7125c841f9407328264b472b (diff) | |
download | python-api-core-9f45e3c3fe1da16a05dab2181867d20cd7e90f64.tar.gz |
Use new Nox (#6175)
Diffstat (limited to 'noxfile.py')
-rw-r--r-- | noxfile.py | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000..77ef2ce --- /dev/null +++ b/noxfile.py @@ -0,0 +1,112 @@ +# Copyright 2016 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +import os + +# https://github.com/google/importlab/issues/25 +import nox # pytype: disable=import-error + + +def default(session): + """Default unit test session. + + This is intended to be run **without** an interpreter set, so + that the current ``python`` (on the ``PATH``) or the version of + Python corresponding to the ``nox`` binary the ``PATH`` can + run the tests. + """ + # Install all test dependencies, then install this package in-place. + session.install( + 'mock', + 'pytest', + 'pytest-cov', + 'grpcio >= 1.0.2', + ) + session.install('-e', '.') + + # Run py.test against the unit tests. + session.run( + 'py.test', + '--quiet', + '--cov=google.api_core', + '--cov=tests.unit', + '--cov-append', + '--cov-config=.coveragerc', + '--cov-report=', + '--cov-fail-under=97', + os.path.join('tests', 'unit'), + *session.posargs + ) + + +@nox.session(python=['2.7', '3.5', '3.6', '3.7']) +def unit(session): + """Run the unit test suite.""" + default(session) + + +@nox.session(python=['2.7', '3.5', '3.6', '3.7']) +def unit_grpc_gcp(session): + """Run the unit test suite with grpcio-gcp installed.""" + + # Install grpcio-gcp + session.install('grpcio-gcp') + + default(session) + + +@nox.session(python='3.6') +def lint(session): + """Run linters. + + Returns a failure if the linters find linting errors or sufficiently + serious code quality issues. + """ + session.install('flake8', 'flake8-import-order') + session.install('.') + session.run('flake8', 'google', 'tests') + + +@nox.session(python='3.6') +def lint_setup_py(session): + """Verify that setup.py is valid (including RST check).""" + + session.install('docutils', 'Pygments') + session.run( + 'python', 'setup.py', 'check', '--restructuredtext', '--strict') + + +# No 2.7 due to https://github.com/google/importlab/issues/26. +# No 3.7 because pytype supports up to 3.6 only. +@nox.session(python='3.6') +def pytype(session): + """Run type-checking.""" + session.install('.', + 'grpcio >= 1.8.2', + 'grpcio-gcp >= 0.2.2', + 'pytype >= 2018.9.26') + session.run('pytype') + + +@nox.session(python='3.6') +def cover(session): + """Run the final coverage report. + + This outputs the coverage report aggregating coverage from the unit + test runs (not system test runs), and then erases coverage data. + """ + session.install('coverage', 'pytest-cov') + session.run('coverage', 'report', '--show-missing', '--fail-under=100') + session.run('coverage', 'erase') |