diff --git a/tests/modules/cloud_function/fixture/main.tf b/tests/modules/cloud_function/fixture/main.tf index a6fc7278ef..0096159fbc 100644 --- a/tests/modules/cloud_function/fixture/main.tf +++ b/tests/modules/cloud_function/fixture/main.tf @@ -19,6 +19,7 @@ module "test" { project_id = "my-project" name = "test" bucket_name = var.bucket_name + v2 = var.v2 bundle_config = { source_dir = "bundle" output_path = "bundle.zip" diff --git a/tests/modules/cloud_function/fixture/variables.tf b/tests/modules/cloud_function/fixture/variables.tf index 600840858c..1923862768 100644 --- a/tests/modules/cloud_function/fixture/variables.tf +++ b/tests/modules/cloud_function/fixture/variables.tf @@ -15,6 +15,11 @@ */ variable "bucket_name" { - type = string + type = any default = "test" } + +variable "v2" { + type = any + default = false +} diff --git a/tests/modules/cloud_function/test_plan.py b/tests/modules/cloud_function/test_plan.py index de5a06a9d5..019d69ceb8 100644 --- a/tests/modules/cloud_function/test_plan.py +++ b/tests/modules/cloud_function/test_plan.py @@ -16,19 +16,29 @@ @pytest.fixture -def resources(plan_runner): - _, resources = plan_runner() +def resources(plan_runner, version): + # convert `version` to a boolean suitable for the `v2` variable + v2 = {'v1': 'false', 'v2': 'true'}[version] + _, resources = plan_runner(v2=v2) return resources +@pytest.mark.parametrize('version', ['v1', 'v2']) def test_resource_count(resources): "Test number of resources created." assert len(resources) == 3 -def test_iam(resources): +@pytest.mark.parametrize('version', ['v1', 'v2']) +def test_iam(resources, version): "Test IAM binding resources." - bindings = [r['values'] for r in resources if r['type'] - == 'google_cloudfunctions_function_iam_binding'] + + types = { + 'v1': 'google_cloudfunctions_function_iam_binding', + 'v2': 'google_cloudfunctions2_function_iam_binding' + } + + bindings = [r['values'] for r in resources if r['type'] == types[version]] assert len(bindings) == 1 assert bindings[0]['role'] == 'roles/cloudfunctions.invoker' + assert bindings[0]['members'] == ['allUsers'] diff --git a/tests/modules/cloud_function_v2/__init__.py b/tests/modules/cloud_function_v2/__init__.py deleted file mode 100644 index 6d6d1266c3..0000000000 --- a/tests/modules/cloud_function_v2/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/tests/modules/cloud_function_v2/fixture/bundle/main.py b/tests/modules/cloud_function_v2/fixture/bundle/main.py deleted file mode 100644 index 6d6d1266c3..0000000000 --- a/tests/modules/cloud_function_v2/fixture/bundle/main.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/tests/modules/cloud_function_v2/fixture/main.tf b/tests/modules/cloud_function_v2/fixture/main.tf deleted file mode 100644 index db99d523b2..0000000000 --- a/tests/modules/cloud_function_v2/fixture/main.tf +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -module "test" { - source = "../../../../modules/cloud-function" - project_id = "my-project" - name = "test" - bucket_name = var.bucket_name - v2 = true - bundle_config = { - source_dir = "bundle" - output_path = "bundle.zip" - excludes = null - } - iam = { - "roles/cloudfunctions.invoker" = ["allUsers"] - } -} diff --git a/tests/modules/cloud_function_v2/fixture/variables.tf b/tests/modules/cloud_function_v2/fixture/variables.tf deleted file mode 100644 index 600840858c..0000000000 --- a/tests/modules/cloud_function_v2/fixture/variables.tf +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -variable "bucket_name" { - type = string - default = "test" -} diff --git a/tests/modules/cloud_function_v2/test_plan.py b/tests/modules/cloud_function_v2/test_plan.py deleted file mode 100644 index 44b7c27fd2..0000000000 --- a/tests/modules/cloud_function_v2/test_plan.py +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import pytest - - -@pytest.fixture -def resources(plan_runner): - _, resources = plan_runner() - return resources - - -def test_resource_count(resources): - "Test number of resources created." - assert len(resources) == 3 - - -def test_iam(resources): - "Test IAM binding resources." - bindings = [r['values'] for r in resources if r['type'] - == 'google_cloudfunctions2_function_iam_binding'] - assert len(bindings) == 1 - assert bindings[0]['role'] == 'roles/cloudfunctions.invoker'