Skip to content

Commit a4d2d39

Browse files
kalzooGobot1234
andauthored
Fix Python 3.9 Tests (#284)
Co-authored-by: James Hilton-Balfe <[email protected]>
1 parent c424b6f commit a4d2d39

File tree

5 files changed

+95
-28
lines changed

5 files changed

+95
-28
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
strategy:
1616
matrix:
1717
os: [Ubuntu, MacOS, Windows]
18-
python-version: [3.6, 3.7, 3.8, 3.9]
18+
python-version: ['3.6.7', 3.7, 3.8, 3.9]
1919
exclude:
2020
- os: Windows
2121
python-version: 3.6

poetry.lock

+62-17
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ packages = [
1212
]
1313

1414
[tool.poetry.dependencies]
15-
python = "^3.6"
15+
python = ">=3.6.2,<4.0"
1616
black = { version = ">=19.3b0", optional = true }
1717
dataclasses = { version = "^0.7", python = ">=3.6, <3.7" }
1818
grpclib = "^0.4.1"
@@ -21,7 +21,7 @@ python-dateutil = "^2.8"
2121

2222
[tool.poetry.dev-dependencies]
2323
asv = "^0.4.2"
24-
black = "^20.8b1"
24+
black = "^21.11b0"
2525
bpython = "^0.19"
2626
grpcio-tools = "^1.30.0"
2727
jinja2 = "^2.11.2"

src/betterproto/plugin/compiler.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,5 @@ def outputfile_compiler(output_file: OutputTemplate) -> str:
3333

3434
return black.format_str(
3535
template.render(output_file=output_file),
36-
mode=black.FileMode(target_versions={black.TargetVersion.PY37}),
36+
mode=black.Mode(),
3737
)

tests/generate.py

+29-7
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,15 @@ async def generate(whitelist: Set[str], verbose: bool):
6060
if result != 0:
6161
failed_test_cases.append(test_case_name)
6262

63-
if failed_test_cases:
63+
if len(failed_test_cases) > 0:
6464
sys.stderr.write(
6565
"\n\033[31;1;4mFailed to generate the following test cases:\033[0m\n"
6666
)
6767
for failed_test_case in failed_test_cases:
6868
sys.stderr.write(f"- {failed_test_case}\n")
6969

70+
sys.exit(1)
71+
7072

7173
async def generate_test_case_output(
7274
test_case_input_path: Path, test_case_name: str, verbose: bool
@@ -92,21 +94,41 @@ async def generate_test_case_output(
9294
protoc(test_case_input_path, test_case_output_path_betterproto, False),
9395
)
9496

95-
message = f"Generated output for {test_case_name!r}"
97+
if ref_code == 0:
98+
print(f"\033[31;1;4mGenerated reference output for {test_case_name!r}\033[0m")
99+
else:
100+
print(
101+
f"\033[31;1;4mFailed to generate reference output for {test_case_name!r}\033[0m"
102+
)
103+
96104
if verbose:
97-
print(f"\033[31;1;4m{message}\033[0m")
98105
if ref_out:
106+
print("Reference stdout:")
99107
sys.stdout.buffer.write(ref_out)
108+
sys.stdout.buffer.flush()
109+
100110
if ref_err:
111+
print("Reference stderr:")
101112
sys.stderr.buffer.write(ref_err)
113+
sys.stderr.buffer.flush()
114+
115+
if plg_code == 0:
116+
print(f"\033[31;1;4mGenerated plugin output for {test_case_name!r}\033[0m")
117+
else:
118+
print(
119+
f"\033[31;1;4mFailed to generate plugin output for {test_case_name!r}\033[0m"
120+
)
121+
122+
if verbose:
102123
if plg_out:
124+
print("Plugin stdout:")
103125
sys.stdout.buffer.write(plg_out)
126+
sys.stdout.buffer.flush()
127+
104128
if plg_err:
129+
print("Plugin stderr:")
105130
sys.stderr.buffer.write(plg_err)
106-
sys.stdout.buffer.flush()
107-
sys.stderr.buffer.flush()
108-
else:
109-
print(message)
131+
sys.stderr.buffer.flush()
110132

111133
return max(ref_code, plg_code)
112134

0 commit comments

Comments
 (0)