Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: [WIP] The first stage of nox implementation #468

Merged
merged 5 commits into from Aug 26, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 12 additions & 4 deletions .gitignore
@@ -1,8 +1,16 @@
*.egg-info
*.py[co]
build/
*.sw[op]
.tox/

# Packages
*.egg-info
build
MANIFEST
dist/
dist
django_tests

# Unit test / coverage reports
.coverage
.tox

# JetBrains
.idea
152 changes: 152 additions & 0 deletions noxfile.py
@@ -0,0 +1,152 @@
# -*- coding: utf-8 -*-
#
# Copyright 2020 Google LLC
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd


from __future__ import absolute_import

import nox
import os
# import shutil
c24t marked this conversation as resolved.
Show resolved Hide resolved


BLACK_VERSION = "black==19.3b0"
BLACK_PATHS = ["docs", "google", "tests", "noxfile.py", "setup.py"]
c24t marked this conversation as resolved.
Show resolved Hide resolved

if os.path.exists("samples"):
BLACK_PATHS.append("samples")
c24t marked this conversation as resolved.
Show resolved Hide resolved


# @nox.session(python="3.7")
# def lint(session):
# """Run linters.
#
# Returns a failure if the linters find linting errors or sufficiently
# serious code quality issues.
# """
# session.install("flake8", BLACK_VERSION)
# session.run("black", "--check", *BLACK_PATHS)
# session.run("flake8", "google", "tests")


# @nox.session(python="3.6")
# def blacken(session):
# """Run black.
#
# Format code to uniform standard.
#
# This currently uses Python 3.6 due to the automated Kokoro run of synthtool.
# That run uses an image that doesn't have 3.6 installed. Before updating this
# check the state of the `gcp_ubuntu_config` we use for that Kokoro run.
# """
# session.install(BLACK_VERSION)
# session.run("black", *BLACK_PATHS)


# @nox.session(python="3.7")
# 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")


def default(session):
# Install all test dependencies, then install this package in-place.
session.install("mock", "pytest", "pytest-cov")
session.install("-e", ".")

# Run py.test against the unit tests.
session.run(
"py.test",
# "--quiet",
# "--cov=google.cloud",
# "--cov=tests.unit",
# "--cov-append",
# "--cov-config=.coveragerc",
# "--cov-report=",
# "--cov-fail-under=0",
# os.path.join("tests", "unit"),
os.path.join("tests", "spanner_dbapi"),
*session.posargs,
)


@nox.session(python=["2.7", "3.5", "3.6", "3.7", "3.8"])
c24t marked this conversation as resolved.
Show resolved Hide resolved
def unit(session):
"""Run the unit test suite."""
default(session)


# @nox.session(python=["2.7", "3.7"])
# def system(session):
# """Run the system test suite."""
# system_test_path = os.path.join("tests", "system.py")
# system_test_folder_path = os.path.join("tests", "system")
# # Sanity check: Only run tests if either credentials or emulator host is set.
# if not os.environ.get("GOOGLE_APPLICATION_CREDENTIALS", "") and not os.environ.get(
# "SPANNER_EMULATOR_HOST", ""
# ):
# session.skip(
# "Credentials or emulator host must be set via environment variable"
# )
#
# system_test_exists = os.path.exists(system_test_path)
# system_test_folder_exists = os.path.exists(system_test_folder_path)
# # Sanity check: only run tests if found.
# if not system_test_exists and not system_test_folder_exists:
# session.skip("System tests were not found")
#
# # Use pre-release gRPC for system tests.
# session.install("--pre", "grpcio")
#
# # Install all test dependencies, then install this package into the
# # virtualenv's dist-packages.
# session.install("mock", "pytest")
#
# session.install("-e", ".")
# session.install("-e", "test_utils/")
#
# # Run py.test against the system tests.
# if system_test_exists:
# session.run("py.test", "--quiet", system_test_path, *session.posargs)
# if system_test_folder_exists:
# session.run("py.test", "--quiet", system_test_folder_path, *session.posargs)


# @nox.session(python="3.7")
# 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=99")
#
# session.run("coverage", "erase")


# @nox.session(python="3.7")
# def docs(session):
# """Build the docs for this library."""
#
# session.install("-e", ".")
# session.install("sphinx", "alabaster", "recommonmark")
#
# shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True)
# session.run(
# "sphinx-build",
# "-W", # warnings as errors
# "-T", # show full traceback on exception
# "-N", # no colors
# "-b",
# "html",
# "-d",
# os.path.join("docs", "_build", "doctrees", ""),
# os.path.join("docs", ""),
# os.path.join("docs", "_build", "html", ""),
# )