#!/usr/bin/env run.sh """ Test that bild can build Python stuff. Example Python file that also serves as a test case for bild. """ # : out example # : dep cryptography import cryptography.fernet import Omni.App as App import Omni.Log as Log import Omni.Test as Test import sys log = Log.setup() def cryptic_hello(name: str) -> str: """ Encrypt and decrypt `name`. Example taken from `cryptography` docs. Raises: ValueError: if decryption fails """ key = cryptography.fernet.Fernet.generate_key() f = cryptography.fernet.Fernet(key) token = f.encrypt(hello(name).encode("utf-8")) log.info("attempting decryption") ret = f.decrypt(token).decode("utf-8") if ret != hello(name): msg = "en/decryption failed!" raise ValueError(msg) return ret def hello(name: str) -> str: """Say hello.""" return f"Hello {name}" class TestExample(Test.TestCase): """Test the Example module.""" def test_hello(self) -> None: """Test `hello` function.""" self.assertEqual("Hello Ben", hello("Ben")) def main() -> None: """Entrypoint.""" if "test" in sys.argv: Test.run(App.Area.Test, [TestExample]) sys.stdout.write(cryptic_hello("world"))