34 lines
1 KiB
Python
34 lines
1 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import inspect
|
|
import os
|
|
|
|
|
|
def expect(path, actual):
|
|
"""
|
|
Assert that the content of the file at `path` contains `actual`.
|
|
|
|
If the environment variable `UPDATE_EXPECT` is set, the path content is updated to `actual`.
|
|
This allows to update the file contents easily.
|
|
"""
|
|
|
|
callerframerecord = inspect.stack()[1]
|
|
frame = callerframerecord[0]
|
|
info = inspect.getframeinfo(frame)
|
|
msg = f"""
|
|
Unexpected content in {path} (at {info.filename}:{info.lineno})
|
|
|
|
If the code generation was changed,
|
|
run the test suite again with `UPDATE_EXPECT=1` set to update the test files.
|
|
""".strip()
|
|
|
|
if "UPDATE_EXPECT" in os.environ:
|
|
with open(path, "w") as file:
|
|
file.write(actual)
|
|
|
|
expected = None
|
|
with open(path) as file:
|
|
expected = file.read()
|
|
assert actual == expected, msg
|