aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJisi Liu <liujisi@google.com>2015-10-22 14:00:02 -0700
committerJisi Liu <liujisi@google.com>2015-10-22 14:00:02 -0700
commit1abf297fb9762df6d52735026d2dd670f540a947 (patch)
tree80ac85ceef45f2016f3d1c0a6b1112f1d9abe5cc
parentb152d7feb9c0a739d7f227eb840858133a4111ef (diff)
parente1f60f50430466003ede6cbd27ea133422958b8f (diff)
downloadprotobuf-1abf297fb9762df6d52735026d2dd670f540a947.tar.gz
protobuf-1abf297fb9762df6d52735026d2dd670f540a947.tar.bz2
protobuf-1abf297fb9762df6d52735026d2dd670f540a947.zip
Merge pull request #903 from pherl/bazel_test
Enable python bazel tests and explicit list python dependencies.
-rw-r--r--BUILD22
-rw-r--r--WORKSPACE12
-rw-r--r--six.BUILD12
3 files changed, 39 insertions, 7 deletions
diff --git a/BUILD b/BUILD
index a0f291f7..4f2bc287 100644
--- a/BUILD
+++ b/BUILD
@@ -472,8 +472,6 @@ java_library(
# Python support
################################################################################
-# Requires: six for python 2/3 compatibility. `pip install six`
-
# Hack:
# protoc generated files contain imports like:
# "from google.protobuf.xxx import yyy"
@@ -485,10 +483,13 @@ java_library(
# that depend on the target.
#
# If you use python protobuf as a third_party library in your bazel managed
-# project, please import the whole package to //google/protobuf in your
+# project:
+# 1) Please import the whole package to //google/protobuf in your
# project. Otherwise, bazel disallows generated files out of the current
# package, thus we won't be able to copy protobuf runtime files into
# //google/protobuf/.
+# 2) The runtime also requires "six" for Python2/3 compatibility, please see the
+# WORKSPACE file and bind "six" to your workspace as well.
internal_copied_filegroup(
name = "python_srcs",
srcs = glob(
@@ -510,6 +511,7 @@ py_proto_library(
include = "src",
protoc = ":protoc",
py_extra_srcs = [":python_srcs"],
+ py_libs = ["//external:six"],
visibility = ["//visibility:public"],
)
@@ -534,7 +536,10 @@ py_proto_library(
py_proto_library(
name = "python_specific_test_protos",
- srcs = glob(["python/google/protobuf/internal/*.proto"]),
+ srcs = glob([
+ "python/google/protobuf/internal/*.proto",
+ "python/google/protobuf/internal/import_test_package/*.proto",
+ ]),
include = "python",
protoc = ":protoc",
deps = [":python_common_test_protos"],
@@ -552,6 +557,9 @@ py_library(
internal_protobuf_py_tests(
name = "python_tests_batch",
+ data = glob([
+ "src/google/protobuf/**/*",
+ ]),
modules = [
"descriptor_database_test",
"descriptor_pool_test",
@@ -559,13 +567,13 @@ internal_protobuf_py_tests(
"generator_test",
"json_format_test",
"message_factory_test",
- # "message_test", # failed due to testdata path
+ "message_test",
"proto_builder_test",
- # "reflection_test", # failed due to testdata path
+ "reflection_test",
"service_reflection_test",
"symbol_database_test",
"text_encoding_test",
- # "text_format_test", # failed due to testdata path
+ "text_format_test",
"unknown_fields_test",
"wire_format_test",
],
diff --git a/WORKSPACE b/WORKSPACE
index f72f239a..c3f18cc7 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -5,6 +5,13 @@ new_http_archive(
build_file = "gmock.BUILD",
)
+new_http_archive(
+ name = "six_archive",
+ url = "https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55",
+ sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
+ build_file = "six.BUILD",
+)
+
bind(
name = "gtest",
actual = "@gmock_archive//:gtest",
@@ -14,3 +21,8 @@ bind(
name = "gtest_main",
actual = "@gmock_archive//:gtest_main",
)
+
+bind(
+ name = "six",
+ actual = "@six_archive//:six",
+)
diff --git a/six.BUILD b/six.BUILD
new file mode 100644
index 00000000..55c53a42
--- /dev/null
+++ b/six.BUILD
@@ -0,0 +1,12 @@
+genrule(
+ name = "copy_six",
+ srcs = ["six-1.10.0/six.py"],
+ outs = ["six.py"],
+ cmd = "cp $< $(@)",
+)
+
+py_library(
+ name = "six",
+ srcs = ["six.py"],
+ visibility = ["//visibility:public"],
+)