From db7298726bd0d553069f05d5f94decebe65f6e66 Mon Sep 17 00:00:00 2001 From: Pratiksha Kap Date: Thu, 15 Dec 2022 09:57:38 -0800 Subject: [PATCH 1/3] add conformance test for typed decorator --- .github/workflows/conformance.yml | 9 +++++++++ tests/conformance/main.py | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index 9ae8a51e..03f27450 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -76,3 +76,12 @@ jobs: useBuildpacks: false validateConcurrency: true cmd: "'functions-framework --source tests/conformance/main.py --target write_http_declarative_concurrent'" + + - name: Run Typed tests declarative + uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.6.0 + with: + version: 'v1.6.0' + functionType: 'http' + useBuildpacks: false + validateMapping: false + cmd: "'functions-framework --source tests/conformance/main.py --target write_typed_event_declarative'" diff --git a/tests/conformance/main.py b/tests/conformance/main.py index 67926ff6..e7780c42 100644 --- a/tests/conformance/main.py +++ b/tests/conformance/main.py @@ -7,6 +7,11 @@ filename = "function_output.json" +class ConformanceType: + @staticmethod + def from_dict(obj: dict) -> "ConformanceType": + return ConformanceType() + def _write_output(content): with open(filename, "w") as f: @@ -53,3 +58,7 @@ def write_cloud_event_declarative(cloud_event): def write_http_declarative_concurrent(request): time.sleep(1) return "OK", 200 + +@functions_framework.typed(ConformanceType) +def write_typed_event_declarative(x): + return "OK" \ No newline at end of file From 922d9730e82c365e2457b4f080b64a3f7a56b2e0 Mon Sep 17 00:00:00 2001 From: Pratiksha Kap Date: Thu, 15 Dec 2022 10:50:33 -0800 Subject: [PATCH 2/3] afix conformance test --- tests/conformance/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/conformance/main.py b/tests/conformance/main.py index e7780c42..8c68fcd7 100644 --- a/tests/conformance/main.py +++ b/tests/conformance/main.py @@ -8,9 +8,14 @@ filename = "function_output.json" class ConformanceType: + json_request :str + + def __init__(self, json_request: str) -> None: + self.json_request = json_request + @staticmethod def from_dict(obj: dict) -> "ConformanceType": - return ConformanceType() + return ConformanceType(json.dumps(obj)) def _write_output(content): @@ -61,4 +66,5 @@ def write_http_declarative_concurrent(request): @functions_framework.typed(ConformanceType) def write_typed_event_declarative(x): + _write_output(x.json_request) return "OK" \ No newline at end of file From c3ab4f68f21a0b945050e5e297747935c56dff6c Mon Sep 17 00:00:00 2001 From: Pratiksha Kap Date: Thu, 15 Dec 2022 10:53:13 -0800 Subject: [PATCH 3/3] lint fix --- tests/conformance/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/conformance/main.py b/tests/conformance/main.py index 8c68fcd7..057edaa7 100644 --- a/tests/conformance/main.py +++ b/tests/conformance/main.py @@ -7,8 +7,9 @@ filename = "function_output.json" + class ConformanceType: - json_request :str + json_request: str def __init__(self, json_request: str) -> None: self.json_request = json_request @@ -64,7 +65,8 @@ def write_http_declarative_concurrent(request): time.sleep(1) return "OK", 200 + @functions_framework.typed(ConformanceType) def write_typed_event_declarative(x): _write_output(x.json_request) - return "OK" \ No newline at end of file + return "OK"