PiperOrigin-RevId: 446322046pull/13171/head
parent
c7620a4690
commit
2eb973f53a
27 changed files with 191 additions and 85 deletions
@ -0,0 +1,55 @@ |
||||
--- BUILD
|
||||
+++ BUILD
|
||||
@@ -896,6 +896,10 @@ py_library(
|
||||
[
|
||||
"python/google/protobuf/**/*.py",
|
||||
],
|
||||
+ exclude = [
|
||||
+ "python/google/protobuf/internal/*_test.py",
|
||||
+ "python/google/protobuf/internal/test_util.py",
|
||||
+ ]
|
||||
),
|
||||
imports = ["python"],
|
||||
srcs_version = "PY2AND3",
|
||||
|
||||
--- python/google/protobuf/internal/test_util.py
|
||||
+++ python/google/protobuf/internal/test_util.py
|
||||
@@ -39,6 +39,7 @@ __author__ = 'robinson@google.com (Will Robinson)'
|
||||
import numbers
|
||||
import operator
|
||||
import os.path
|
||||
+import pathlib
|
||||
|
||||
from google.protobuf import unittest_import_pb2
|
||||
from google.protobuf import unittest_pb2
|
||||
@@ -617,17 +618,22 @@ def ExpectAllFieldsSet(test_case, message):
|
||||
message.default_import_enum)
|
||||
|
||||
|
||||
+def _SearchUp(path, filename):
|
||||
+ path = pathlib.Path(path).resolve()
|
||||
+ for parent in [path] + list(path.parents):
|
||||
+ file_path = parent / ('src/google/protobuf/testdata/' + filename)
|
||||
+ if file_path.exists():
|
||||
+ # Found it. Load the golden file from the testdata directory.
|
||||
+ return file_path.open('rb')
|
||||
+ return None
|
||||
+
|
||||
def GoldenFile(filename):
|
||||
"""Finds the given golden file and returns a file object representing it."""
|
||||
|
||||
# Search up the directory tree looking for the C++ protobuf source code.
|
||||
- path = '.'
|
||||
- while os.path.exists(path):
|
||||
- if os.path.exists(os.path.join(path, 'src/google/protobuf')):
|
||||
- # Found it. Load the golden file from the testdata directory.
|
||||
- full_path = os.path.join(path, 'src/google/protobuf/testdata', filename)
|
||||
- return open(full_path, 'rb')
|
||||
- path = os.path.join(path, '..')
|
||||
+ f = _SearchUp('.', filename) or _SearchUp(__file__, filename)
|
||||
+ if f:
|
||||
+ return f
|
||||
|
||||
# Search internally.
|
||||
path = '.'
|
||||
|
Loading…
Reference in new issue