chore: add constraints file (#122)
Add constraints file to test lower bounds.
diff --git a/noxfile.py b/noxfile.py
index 86758e1..650cef2 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -14,13 +14,15 @@
from __future__ import absolute_import
import os
+import pathlib
import shutil
# https://github.com/google/importlab/issues/25
import nox # pytype: disable=import-error
-_MINIMAL_ASYNCIO_SUPPORT_PYTHON_VERSION = [3, 6]
+CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
+_MINIMAL_ASYNCIO_SUPPORT_PYTHON_VERSION = [3, 6]
def _greater_or_equal_than_36(version_string):
tokens = version_string.split(".")
@@ -40,9 +42,13 @@
Python corresponding to the ``nox`` binary the ``PATH`` can
run the tests.
"""
+ constraints_path = str(
+ CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
+ )
+
# Install all test dependencies, then install this package in-place.
session.install("mock", "pytest", "pytest-cov", "grpcio >= 1.0.2")
- session.install("-e", ".")
+ session.install("-e", ".", "-c", constraints_path)
pytest_args = [
"python",
@@ -80,9 +86,11 @@
@nox.session(python=["2.7", "3.6", "3.7", "3.8", "3.9"])
def unit_grpc_gcp(session):
"""Run the unit test suite with grpcio-gcp installed."""
-
+ constraints_path = str(
+ CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
+ )
# Install grpcio-gcp
- session.install("grpcio-gcp")
+ session.install("grpcio-gcp", "-c", constraints_path)
default(session)
diff --git a/setup.py b/setup.py
index 576363a..30adb95 100644
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,7 @@
"protobuf >= 3.12.0",
"google-auth >= 1.21.1, < 2.0dev",
"requests >= 2.18.0, < 3.0.0dev",
- "setuptools >= 34.0.0",
+ "setuptools >= 40.3.0",
"six >= 1.13.0",
"pytz",
'futures >= 3.2.0; python_version < "3.2"',
diff --git a/testing/constraints-2.7.txt b/testing/constraints-2.7.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-2.7.txt
diff --git a/testing/constraints-3.10.txt b/testing/constraints-3.10.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-3.10.txt
diff --git a/testing/constraints-3.11.txt b/testing/constraints-3.11.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-3.11.txt
diff --git a/testing/constraints-3.6.txt b/testing/constraints-3.6.txt
new file mode 100644
index 0000000..2d49817
--- /dev/null
+++ b/testing/constraints-3.6.txt
@@ -0,0 +1,16 @@
+# This constraints file is used to check that lower bounds
+# are correct in setup.py
+# List *all* library dependencies and extras in this file.
+# Pin the version to the lower bound.
+#
+# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev",
+# Then this file should have foo==1.14.0
+googleapis-common-protos==1.6.0
+protobuf==3.12.0
+google-auth==1.21.1
+requests==2.18.0
+setuptools==40.3.0
+six==1.13.0
+grpcio==1.29.0
+grpcio-gcp==0.2.2
+grpcio-gcp==0.2.2
diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-3.7.txt
diff --git a/testing/constraints-3.8.txt b/testing/constraints-3.8.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-3.8.txt
diff --git a/testing/constraints-3.9.txt b/testing/constraints-3.9.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testing/constraints-3.9.txt