diff options
Diffstat (limited to 'toolkit/components/glean/tests/pytest/expect_helper.py')
-rw-r--r-- | toolkit/components/glean/tests/pytest/expect_helper.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/toolkit/components/glean/tests/pytest/expect_helper.py b/toolkit/components/glean/tests/pytest/expect_helper.py new file mode 100644 index 0000000000..543ef04026 --- /dev/null +++ b/toolkit/components/glean/tests/pytest/expect_helper.py @@ -0,0 +1,34 @@ +# 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, "r") as file: + expected = file.read() + assert actual == expected, msg |