Skip to content

Commit 89c6aa1

Browse files
authored
python: Port all Python tests to sqlc-gen-python (#1907)
* python: Port all Python tests to sqlc-gen-python * wasm: Return error message from codegen output
1 parent f83ea82 commit 89c6aa1

File tree

11 files changed

+162
-59
lines changed

11 files changed

+162
-59
lines changed

examples/python/sqlc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "py",
66
"wasm": {
77
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8-
"sha256": "428476c7408fd4c032da4ec74e8a7344f4fa75e0f98a5a3302f238283b9b95f2"
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
99
}
1010
}
1111
],
Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "postgresql/schema.sql",
615
"queries": "postgresql/query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "postgresql",
11-
"package": "postgresql",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true,
14-
"emit_pydantic_models": true
21+
"options": {
22+
"package": "postgresql",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true,
25+
"emit_pydantic_models": true
26+
}
1527
}
16-
}
28+
]
1729
}
1830
]
1931
}
Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true
25+
}
1426
}
15-
}
27+
]
1628
}
1729
]
1830
}
Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true
25+
}
1426
}
15-
}
27+
]
1628
}
1729
]
1830
}
Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,34 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true,
14-
"inflection_exclude_table_names": [
15-
"my_data",
16-
"exclusions"
17-
]
18-
}
19-
}
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true,
25+
"inflection_exclude_table_names": [
26+
"my_data",
27+
"exclusions"
28+
]
29+
}
30+
}
31+
]
2032
}
2133
]
2234
}
Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true,
14-
"query_parameter_limit": -1
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true,
25+
"query_parameter_limit": -1
26+
}
1527
}
16-
}
28+
]
1729
}
1830
]
1931
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
error parsing sqlc.json: invalid query parameter limit
1+
# package py
2+
error generating code: error generating output: invalid query parameter limit
Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true,
14-
"query_parameter_limit": 0
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true,
25+
"query_parameter_limit": 0
26+
}
1527
}
16-
}
28+
]
1729
}
1830
]
1931
}
Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true,
14-
"query_parameter_limit": 2
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true,
25+
"query_parameter_limit": 2
26+
}
1527
}
16-
}
28+
]
1729
}
1830
]
1931
}
Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
{
22
"version": "2",
3+
"plugins": [
4+
{
5+
"name": "py",
6+
"wasm": {
7+
"url": "https://github.com/tabbed/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm",
8+
"sha256": "4fb54ee7d25b4d909b59a8271ebee60ad76ff17b10d61632a5ca5651e4bfe438"
9+
}
10+
}
11+
],
312
"sql": [
413
{
514
"schema": "query.sql",
615
"queries": "query.sql",
716
"engine": "postgresql",
8-
"gen": {
9-
"python": {
17+
"codegen": [
18+
{
19+
"plugin": "py",
1020
"out": "python",
11-
"package": "querytest",
12-
"emit_sync_querier": true,
13-
"emit_async_querier": true
21+
"options": {
22+
"package": "querytest",
23+
"emit_sync_querier": true,
24+
"emit_async_querier": true
25+
}
1426
}
15-
}
27+
]
1628
}
1729
]
1830
}

internal/ext/wasm/wasm.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"context"
99
"crypto/sha256"
1010
_ "embed"
11+
"errors"
1112
"fmt"
1213
"io"
1314
"io/ioutil"
@@ -252,6 +253,11 @@ func (r *Runner) Generate(ctx context.Context, req *plugin.CodeGenRequest) (*plu
252253
_, err = nom.Call(store)
253254
callRegion.End()
254255
if err != nil {
256+
// Print WASM stdout
257+
stderrBlob, err := os.ReadFile(stderrPath)
258+
if err == nil && len(stderrBlob) > 0 {
259+
return nil, errors.New(string(stderrBlob))
260+
}
255261
return nil, fmt.Errorf("call: %w", err)
256262
}
257263

0 commit comments

Comments
 (0)