pulumi/pkg/codegen/testing/test/testdata
Kyle Dixler 13e584ba91
[sdkgen/python] revert changes introducing `_configure` (#14427)
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/14418
Reopens https://github.com/pulumi/pulumi/issues/12546

This removes the `_configure()` ResourceArgs helper method as it has
caused a number of issues (linked below).

`_configure()` was added in order to support initializing default values
sdk side for python. This has led to the following PRs being merged to
address unexpected bugs.

## Overview of fixes:

It will be quite hard to demonstrate without examples, so I will give an
example of the code and describe its short comings:

---
- https://github.com/pulumi/pulumi/issues/14418

```python
args = MyArgs() # fails as required argument foo not provided
args.foo = "Hello, World!"
```

---
- https://github.com/pulumi/pulumi/pull/14235
Supporting `imageName` and `image_name`
```python
def _configure(...
        image_name, # required
        ...):
    ...

# This should not error, but errors.
_configure(imageName="debian")
```

---
- https://github.com/pulumi/pulumi/pull/14281

```python
def _configure(...
        image_name, # required
        ...
        **kwargs):
    ...

# This should not fail, but fails as `image_name` is not provided
_configure(imageName="debian")
```

---
- https://github.com/pulumi/pulumi/pull/14014

```python
class Thing:
    def __init__(self,
                ...
                # Optional
                certmanager=None,
                ...):
        ...
        Thing._configure(
                ...
                certmanager=None,
                ...)
        ...
    def _configure(...):
        ...
            # This block runs when certmanager = None, but should not.
            if not isinstance(certmanager, ProviderCertmanagerArgs):
                certmanager = certmanager or {}
                def _setter(key, value):
                    certmanager[key] = value
                ProviderCertmanagerArgs._configure(_setter, **certmanager)
        ...
Provider()
```

---
- https://github.com/pulumi/pulumi/pull/14321

```python
registry_info=accessToken.apply(get_registry_info)

# Build and publish the image.
image = Image(
    'my-image',
    build=DockerBuildArgs(
        context='app',
    ),
    image_name=image_name,
    # Note that this is an Output.
    registry=registry_info,
)

            # registry is not None and it is not an instance of RegistryArgs, so we fall into the if, thinking it is a dict, but it is an Output.

            if registry is not None and not isinstance(registry, RegistryArgs):
                registry = registry or {}
                def _setter(key, value):
                    registry[key] = value
                RegistryArgs._configure(_setter, **registry)
            __props__.__dict__["registry"] = registry
```

---
- https://github.com/pulumi/pulumi/pull/14318

```python
            # foo.core.v1.PodArgs may be an external type and may not be upgraded to have _configure() and will fail, but should not.
            if pod is not None and not isinstance(pod, foo.core.v1.PodArgs):
                pod = pod or {}
                def _setter(key, value):
                    pod[key] = value
                pulumi_kubernetes.core.v1.PodArgs._configure(_setter, **pod)
```

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2023-10-27 22:28:41 +00:00
..
assets-archives-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-eks-pp Regen TypeScript examples 2023-06-07 10:54:25 +02:00
aws-fargate-output-versioned-pp Prefer output-versioned invokes in generated programs for nodejs and python 2023-06-23 02:42:18 +02:00
aws-fargate-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-iam-policy-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-lambda-pp Update test results 2022-09-27 17:15:10 -07:00
aws-optionals-pp Fix incorrect pointers for array of objects [go/codegen] 2022-12-19 12:45:27 -08:00
aws-resource-options-4.26-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-resource-options-5.16.2-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-s3-folder-pp Fix capitalization for generated `fs.readdirSync` 2022-11-28 11:26:32 -08:00
aws-s3-logging-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-secret-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
aws-webserver-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
azure-native-nested-types [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
azure-native-pp codegen/go: output correct array type (#14299) 2023-10-20 16:12:25 +00:00
azure-sa-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
components-pp Add install command (#13081) 2023-10-25 16:03:02 +00:00
csharp-plain-lists-pp Fixes list initializer for plain lists in resource properties 2023-08-07 18:43:37 +02:00
csharp-typed-for-expressions-pp Fixes code generation of ForExpressions 2023-07-28 20:30:00 +02:00
cyclic-types [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
dash-named-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
dashed-import-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
different-enum [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
different-package-name-conflict Remove dotnet 2022-12-13 16:13:53 +00:00
discriminated-union-pp Examples of iterating lists and maps of objects in components 2023-03-24 10:40:18 +01:00
docs-collision [docsgen] Fix rendering of deprecated messages and text in description lists (#13773) 2023-08-26 17:36:28 +00:00
dynamic-entries-pp Allow iterating dynamic entries in TypeScript 2023-05-16 20:11:57 +02:00
embedded-crd-types [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
empty-list-property-pp [programgen/csharp] Fixes compiling an empty list of expressions from object properties (#14027) 2023-09-28 12:43:35 +00:00
entries-function-pp Fixes code generation of ForExpressions 2023-07-28 20:30:00 +02:00
enum-reference [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
enum-reference-python [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
external-enum [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
external-go-import-aliases codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
external-node-compatibility Remove NodeJS and Python install scripts (#13800) 2023-08-30 08:05:34 +00:00
external-python-same-module-name [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
external-resource-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
functions-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
functions-secrets [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
go-nested-collections codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
go-overridden-internal-module-name codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
go-plain-ref-repro codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
hyphen-url [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
hyphenated-symbols [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
internal-dependencies-go codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
interpolated-string-keys-pp regen example 2023-07-18 09:25:19 +02:00
invalid-go-sprintf-pp testdata: Update generated code 2023-03-02 09:32:52 -08:00
invoke-inside-conditional-range-pp Fix typing for optional and complex config variables in main program 2023-07-26 13:37:53 +02:00
iterating-optional-range-expressions-pp Support range expressions that are of type output 2023-05-02 16:07:58 +02:00
kubernetes-operator-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
kubernetes-pod-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
kubernetes-template-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
logical-name-pp Regen TypeScript examples 2023-06-07 10:54:25 +02:00
modpath-pp programgen(go): Handle conflicting names in imported packages 2023-07-25 12:49:37 -07:00
multiline-string-pp fix(codegen/go): Use raw string literals for multiline-strings 2023-06-22 10:55:45 -07:00
naming-collisions [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
nested-module [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
nested-module-thirdparty [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
optional-complex-config-pp Fix typing for optional and complex config variables in main program 2023-07-26 13:37:53 +02:00
other-owned [docsgen] Fix rendering of deprecated messages and text in description lists (#13773) 2023-08-26 17:36:28 +00:00
output-funcs [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
output-funcs-aws-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
output-funcs-edgeorder [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
output-funcs-tfbridge20 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
output-literals-pp Test for literals in output places 2023-05-12 16:00:25 +01:00
output-name-conflict-pp Allow output variables to have the same identifier as other program nodes 2023-06-07 02:37:40 +02:00
plain-and-default [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
plain-object-defaults [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
plain-object-disable-defaults [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
plain-schema-gh6957 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
provider-config-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
provider-type-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
pulumi-stack-reference-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
python-regress-10914-pp recursively annotate expressions under invoke calls with their associated schema types 2022-10-07 14:02:12 +02:00
python-regress-14037-pp [python/program-gen] Fix panic in python program-gen when rewriting index expressions (#14099) 2023-10-06 22:26:04 +00:00
python-reserved-pp Escape import names for python 2023-03-16 14:44:13 +00:00
python-resource-names-pp [import/python] use init param name for programgen (#9359) 2022-04-07 12:00:19 +02:00
random-pet-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
read-file-func-pp all: Drop ioutil 2023-01-06 16:35:14 -08:00
regress-8403 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
regress-11176-pp programgen(go): Handle conflicting names in imported packages 2023-07-25 12:49:37 -07:00
regress-go-8664 codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
regress-go-10527 codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
regress-go-12971 codegen/go: Implement pux.Input[T] for generated types (#13510) 2023-08-28 16:42:37 +00:00
regress-node-8110 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
regress-node-12507-pp Fixes parseProxyApply to handle nested outputs within index expressions 2023-08-07 21:08:54 +02:00
regress-py-12546 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
regress-py-14012 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
regress-py-tfbridge-611 [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
replace-on-change [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
resource-args-python [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
resource-args-python-case-insensitive [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
resource-property-overlap [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
retain-on-delete-pp Examples of iterating lists and maps of objects in components 2023-03-24 10:40:18 +01:00
schema Add tests for resources called "provider" 2023-01-29 20:04:07 +00:00
secrets [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-enum-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-methods-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-methods-schema-single-value-returns [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-plain-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-plain-schema-with-root-package [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-range-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
simple-resource-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-resource-schema-custom-pypackage-name [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-schema-pyproject [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simple-splat-pp Fix panic in go program-gen when encountering splat expressions 2023-06-07 13:22:41 +02:00
simple-yaml-schema [sdkgen/python] revert changes introducing `_configure` (#14427) 2023-10-27 22:28:41 +00:00
simplified-invokes Remove NodeJS and Python install scripts (#13800) 2023-08-30 08:05:34 +00:00
simplified-invokes-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
single-or-none-pp [programgen/dotnet,go] Implement singleOrNone intrinsic 2023-06-11 16:23:33 -07:00
snowflake-python-12998-pp Fixes python panic when emiting code for index expressions that aren't typechecked 2023-06-09 01:44:09 +02:00
synthetic-resource-properties-pp programgen(go): Handle conflicting names in imported packages 2023-07-25 12:49:37 -07:00
third-party-package-pp programgen(go): Handle conflicting names in imported packages 2023-07-25 12:49:37 -07:00
throw-not-implemented-pp Examples of iterating lists and maps of objects in components 2023-03-24 10:40:18 +01:00
transpiled_examples Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
traverse-union-repro-pp Examples of iterating lists and maps of objects in components 2023-03-24 10:40:18 +01:00
typed-enum-pp Add generated System.Linq usings 2023-03-24 12:43:46 +01:00
unknown-invoke-pp Allow generating code for unknown invokes in non-strict mode 2023-07-10 15:05:18 +02:00
unknown-resource-pp Extend SkipResourceTypechecking to allow generating unknown resources 2023-06-14 19:02:56 +02:00
using-dashes-pp Fix aliasing package names using dashes when schema doesn't include go package info override 2023-06-20 18:11:47 +02:00
.gitignore [codegen/python] fix invalid codegen on empty outputs functions (#9649) 2022-05-23 14:43:38 -07:00
auto-deploy-0.0.1.json Fix panic in GenerateProject when version is not set in schema 2023-07-14 01:23:27 +02:00
aws-4.15.0.json Standardize pkg loading for TestReferenceRenderer 2022-11-03 16:46:41 -07:00
aws-4.26.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
aws-4.36.0.json Add missing schemas 2022-10-24 16:47:54 -07:00
aws-4.37.1.json Add missing schemas 2022-10-24 16:47:54 -07:00
aws-5.4.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
aws-5.16.2.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
aws-native-0.13.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
awsx-1.0.0-beta.5.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
azure-4.18.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
azure-native-1.28.0.json Add missing schemas 2022-10-24 16:47:54 -07:00
azure-native-1.29.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
azure-native-1.56.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
docker-3.1.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
docker-4.0.0-alpha.0.json testdata: add missing docker-4.0.0-alpha.0 schema 2023-03-03 08:20:22 -08:00
eks-0.37.1.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
eks-0.40.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
enum-1.0.0.json Correctly roundtrip enums in schema marshalling (#13932) 2023-09-12 18:34:40 +00:00
google-native-0.18.2.json Add missing schemas 2022-10-24 16:47:54 -07:00
google-native-0.27.0.json Add test covering codegen expectations in #12009 2023-08-01 10:47:17 -07:00
kubernetes-3.0.0.json Test YAML PCL examples 2022-10-24 10:33:48 -07:00
kubernetes-3.7.0.json Add missing schemas 2022-10-24 16:47:54 -07:00
kubernetes-3.7.2.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
lambda-0.1.0.json Escape import names for python 2023-03-16 14:44:13 +00:00
localref-1.0.0.json Correctly roundtip overlay type tokens in schema marshalling 2023-08-08 19:28:51 +01:00
other-0.1.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
random-4.2.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
random-4.3.1.json Add missing schemas 2022-10-24 16:47:54 -07:00
random-4.11.2.json testdata/schema: Add random 4.11.2 2023-03-03 09:13:55 -08:00
range-1.0.0.json Support range expressions that are of type output 2023-04-26 20:00:32 +02:00
remoteref-1.0.0.json Fix version number in typerefs when marshalling schemas 2023-05-24 08:16:20 +01:00
snowflake-0.66.1.json Fixes python panic when emiting code for index expressions that aren't typechecked 2023-06-09 01:44:09 +02:00
splat-1.0.0.json Fix panic in go program-gen when encountering splat expressions 2023-06-07 13:22:41 +02:00
std-1.0.0.json Only await promise-returning invokes in typescript program-gen 2023-06-02 18:33:18 +02:00
synthetic-1.0.0.json feat(ci): Enable fully offline codegen tests with versioned plugins cont'deleted 2022-10-11 05:16:46 -07:00
types.json modify codegen/python to generate valid python code for non-string secrets 2022-12-07 11:36:15 -08:00
using-dashes-1.0.0.json Fix aliasing package names using dashes when schema doesn't include go package info override 2023-06-20 18:11:47 +02:00