diff --git a/TestModels/Aggregate/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Aggregate/runtimes/python/test/extern/test_dafny_wrapper.py index 4f3aae941..7ab7880ef 100644 --- a/TestModels/Aggregate/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Aggregate/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Constraints/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Constraints/runtimes/python/test/extern/test_dafny_wrapper.py index 448983161..618ae7c15 100644 --- a/TestModels/Constraints/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Constraints/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Constructor/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Constructor/runtimes/python/test/extern/test_dafny_wrapper.py index 3ded364f4..eea9a6d33 100644 --- a/TestModels/Constructor/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Constructor/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Errors/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Errors/runtimes/python/test/extern/test_dafny_wrapper.py index 0ee58bac2..46c9a9fd2 100644 --- a/TestModels/Errors/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Errors/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/native_resource.py b/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/native_resource.py new file mode 100644 index 000000000..a147f07ab --- /dev/null +++ b/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/native_resource.py @@ -0,0 +1,52 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +from simple_extendable_resources_internaldafny_types import ( + IExtendableResource as DafnyIExtendableResource +) +import ExtendableResource +from simple_extendable_resources.smithygenerated.models import IExtendableResource +import simple_extendable_resources_internaldafny_nativeresourcefactory + +class NativeResource(IExtendableResource): + _impl: DafnyIExtendableResource + + def __init__(self, _impl): + self._impl = _impl + + def GetExtendableResourceData(self, nativeInput): + print("nativeInput") + print(nativeInput) + a = self._impl.GetExtendableResourceData(nativeInput) + print("a") + print(a) + return a + + def AlwaysModeledError(self, nativeInput): + print("AlwaysModeledError") + print(nativeInput) + return self._impl.AlwaysModeledError(nativeInput) + + def AlwaysMultipleErrors(self, nativeInput): + return self._impl.AlwaysMultipleErrors(nativeInput) + + def AlwaysOpaqueError(self, nativeInput): + if nativeInput.value == None: + raise Exception("Python Hard Coded Exception") + return self._impl.AlwaysOpaqueError(nativeInput) + +class NativeResourceFactory: + + @staticmethod + def DafnyFactory(): + dafny_resource = ExtendableResource.ExtendableResource() + dafny_resource.ctor__() + native_resource = NativeResource(dafny_resource) + + # to_dafny + return native_resource + + +simple_extendable_resources_internaldafny_nativeresourcefactory.default__ = NativeResourceFactory + +DafnyFactory = NativeResourceFactory \ No newline at end of file diff --git a/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/wrapped_simple_extendable_resources.py b/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/wrapped_simple_extendable_resources.py index 98313b26a..63307ffd0 100644 --- a/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/wrapped_simple_extendable_resources.py +++ b/TestModels/Extendable/runtimes/python/src/simple_extendable_resources/extern/wrapped_simple_extendable_resources.py @@ -4,11 +4,12 @@ import simple_extendable_resources_internaldafny_wrapped from simple_extendable_resources.smithygenerated.client import SimpleExtendableResources from simple_extendable_resources.smithygenerated.shim import SimpleExtendableResourcesShim +from simple_extendable_resources.smithygenerated.config import dafny_config_to_smithy_config import Wrappers @staticmethod def WrappedSimpleExtendableResources(config): - wrapped_config = config + wrapped_config = dafny_config_to_smithy_config(config) impl = SimpleExtendableResources(wrapped_config) wrapped_client = SimpleExtendableResourcesShim(impl) return Wrappers.Result_Success(wrapped_client) diff --git a/TestModels/Extendable/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Extendable/runtimes/python/test/extern/test_dafny_wrapper.py index e29cd142c..16e619b2a 100644 --- a/TestModels/Extendable/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Extendable/runtimes/python/test/extern/test_dafny_wrapper.py @@ -14,11 +14,12 @@ # This is not generated; these must be manually added. from simple_extendable_resources.extern import wrapped_simple_extendable_resources +from simple_extendable_resources.extern import native_resource # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Refinement/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Refinement/runtimes/python/test/extern/test_dafny_wrapper.py index cf9b4ad1d..2d5b37dd1 100644 --- a/TestModels/Refinement/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Refinement/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Resource/runtimes/python/src/simple_resources/extern/wrapped_simple_resources.py b/TestModels/Resource/runtimes/python/src/simple_resources/extern/wrapped_simple_resources.py index 9164e209a..532e8fce8 100644 --- a/TestModels/Resource/runtimes/python/src/simple_resources/extern/wrapped_simple_resources.py +++ b/TestModels/Resource/runtimes/python/src/simple_resources/extern/wrapped_simple_resources.py @@ -4,11 +4,12 @@ import simple_resources_internaldafny_wrapped from simple_resources.smithygenerated.client import SimpleResources from simple_resources.smithygenerated.shim import SimpleResourcesShim +from simple_resources.smithygenerated.config import dafny_config_to_smithy_config import Wrappers @staticmethod def WrappedSimpleResources(config): - wrapped_config = config + wrapped_config = dafny_config_to_smithy_config(config) impl = SimpleResources(wrapped_config) wrapped_client = SimpleResourcesShim(impl) return Wrappers.Result_Success(wrapped_client) diff --git a/TestModels/Resource/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/Resource/runtimes/python/test/extern/test_dafny_wrapper.py index 26fa4daf8..2f05e67cf 100644 --- a/TestModels/Resource/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/Resource/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/Resource/runtimes/python/tox.ini b/TestModels/Resource/runtimes/python/tox.ini index 98a844a16..6fde4a5cb 100644 --- a/TestModels/Resource/runtimes/python/tox.ini +++ b/TestModels/Resource/runtimes/python/tox.ini @@ -10,4 +10,4 @@ commands_pre = poetry lock poetry install commands = - poetry run pytest test/ --import-mode importlib \ No newline at end of file + poetry run pytest test/ -s -v --import-mode importlib \ No newline at end of file diff --git a/TestModels/SharedMakefile.mk b/TestModels/SharedMakefile.mk index f5c5e0a6c..25a12c512 100644 --- a/TestModels/SharedMakefile.mk +++ b/TestModels/SharedMakefile.mk @@ -428,12 +428,13 @@ _comment_out_import_module_python: # For a Dafny-generated module X, comment out `import module_` # This import results in circular dependencies find runtimes/python/src/$(PYTHON_MODULE_NAME)/dafnygenerated -type f -exec sed -i $(SED_PARAMETER) '/import module\_/s/^/# /g' {} \; - find runtimes/python/test/dafnygenerated -type f -exec sed -i $(SED_PARAMETER) '/import module\_/s/^/# /g' {} \; + rm runtimes/python/src/$(PYTHON_MODULE_NAME)/dafnygenerated/module_.py +# find runtimes/python/test/dafnygenerated -type f -exec sed -i $(SED_PARAMETER) '/import module\_/s/^/# /g' {} \; transpile_dependencies_python: LANG=python transpile_dependencies_python: transpile_dependencies test_python: - tox -c runtimes/python + tox -c runtimes/python --verbose clean: _clean diff --git a/TestModels/SimpleTypes/SimpleBlob/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleBlob/runtimes/python/test/extern/test_dafny_wrapper.py index 1264c1e6a..c56c3da7a 100644 --- a/TestModels/SimpleTypes/SimpleBlob/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleBlob/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleBoolean/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleBoolean/runtimes/python/test/extern/test_dafny_wrapper.py index ce65c0aa3..1d892f278 100644 --- a/TestModels/SimpleTypes/SimpleBoolean/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleBoolean/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleDouble/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleDouble/runtimes/python/test/extern/test_dafny_wrapper.py index d71715fe6..6d5a98717 100644 --- a/TestModels/SimpleTypes/SimpleDouble/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleDouble/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleEnum/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleEnum/runtimes/python/test/extern/test_dafny_wrapper.py index 3aa707cad..835114dbc 100644 --- a/TestModels/SimpleTypes/SimpleEnum/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleEnum/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleInteger/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleInteger/runtimes/python/test/extern/test_dafny_wrapper.py index 6b1300b27..9ae07507f 100644 --- a/TestModels/SimpleTypes/SimpleInteger/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleInteger/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleLong/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleLong/runtimes/python/test/extern/test_dafny_wrapper.py index fd9dec97b..41044c204 100644 --- a/TestModels/SimpleTypes/SimpleLong/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleLong/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/SimpleTypes/SimpleString/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/SimpleTypes/SimpleString/runtimes/python/test/extern/test_dafny_wrapper.py index 3d4a40df6..0639b02c4 100644 --- a/TestModels/SimpleTypes/SimpleString/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/SimpleTypes/SimpleString/runtimes/python/test/extern/test_dafny_wrapper.py @@ -18,7 +18,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/TestModels/dafny-dependencies/StandardLibrary/runtimes/python/test/extern/test_dafny_wrapper.py b/TestModels/dafny-dependencies/StandardLibrary/runtimes/python/test/extern/test_dafny_wrapper.py index 2d5360457..e17522203 100644 --- a/TestModels/dafny-dependencies/StandardLibrary/runtimes/python/test/extern/test_dafny_wrapper.py +++ b/TestModels/dafny-dependencies/StandardLibrary/runtimes/python/test/extern/test_dafny_wrapper.py @@ -16,7 +16,7 @@ # End import modules required for Dafny-generated tests def test_dafny(): - dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafny/**/", "*.py"), recursive=True) + dafny_modules = glob.glob(join("/".join(__file__.split("/")[:-2]) + "/dafnygenerated/", "*.py"), recursive=True) for f in dafny_modules: if isfile(f) and f.endswith('test.py'): fname = str(f).split("/")[-1].split(".")[0] diff --git a/submodules/smithy-python b/submodules/smithy-python index e187b00e4..490bd0426 160000 --- a/submodules/smithy-python +++ b/submodules/smithy-python @@ -1 +1 @@ -Subproject commit e187b00e4b817aff1611d2aee33bbdf6d90e956f +Subproject commit 490bd04261cb6932b4748580aa5409044a77a62a