Skip to content

Commit cd83d45

Browse files
committed
Gross, but necessary
1 parent 4794dd0 commit cd83d45

File tree

9 files changed

+45
-8
lines changed

9 files changed

+45
-8
lines changed

internal/endtoend/endtoend_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package endtoend
22

33
import (
4+
"bytes"
5+
"crypto/sha256"
6+
"fmt"
47
"os"
58
"os/exec"
69
"path/filepath"
10+
"regexp"
711
"testing"
812

913
"github.com/google/go-cmp/cmp"
@@ -57,12 +61,41 @@ func ExpectedOutput(t *testing.T, dir string) []byte {
5761
return output
5862
}
5963

64+
var pattern = regexp.MustCompile(`sha256: ".*"`)
65+
6066
func TestGenerate(t *testing.T) {
67+
// The SHA256 is required, so we calculate it and then update all of the
68+
// sqlc.yaml files.
69+
// TODO: Remove this once sqlc v1.24.0 has been released
70+
wasmpath := filepath.Join("..", "..", "bin", "sqlc-gen-python.wasm")
71+
if _, err := os.Stat(wasmpath); err != nil {
72+
t.Fatalf("sqlc-gen-python.wasm not found: %s", err)
73+
}
74+
wmod, err := os.ReadFile(wasmpath)
75+
if err != nil {
76+
t.Fatal(err)
77+
}
78+
sum := sha256.Sum256(wmod)
79+
sha256 := fmt.Sprintf("%x", sum)
80+
6181
sqlc := LookPath(t, "sqlc-dev", "sqlc")
6282

6383
for _, dir := range FindTests(t, "testdata") {
6484
dir := dir
6585
t.Run(dir, func(t *testing.T) {
86+
// Check if sqlc.yaml has the correct SHA256 for the plugin. If not, update the file
87+
// TODO: Remove this once sqlc v1.24.0 has been released
88+
yaml, err := os.ReadFile(filepath.Join(dir, "sqlc.yaml"))
89+
if err != nil {
90+
t.Fatal(err)
91+
}
92+
if !bytes.Contains(yaml, []byte(sha256)) {
93+
yaml = pattern.ReplaceAllLiteral(yaml, []byte(`sha256: "`+sha256+`"`))
94+
if err := os.WriteFile(filepath.Join(dir, "sqlc.yaml"), yaml, 0644); err != nil {
95+
t.Fatal(err)
96+
}
97+
}
98+
6699
want := ExpectedOutput(t, dir)
67100
cmd := exec.Command(sqlc, "diff")
68101
cmd.Dir = dir

internal/endtoend/testdata/emit_pydantic_models/sqlc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins:
33
- name: py
44
wasm:
55
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
67
sql:
78
- schema: schema.sql
89
queries: query.sql

internal/endtoend/testdata/exec_result/sqlc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins:
33
- name: py
44
wasm:
55
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
67
sql:
78
- schema: schema.sql
89
queries: query.sql

internal/endtoend/testdata/exec_rows/sqlc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins:
33
- name: py
44
wasm:
55
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
67
sql:
78
- schema: schema.sql
89
queries: query.sql

internal/endtoend/testdata/inflection_exclude_table_names/sqlc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins:
33
- name: py
44
wasm:
55
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
67
sql:
78
- schema: schema.sql
89
queries: query.sql

internal/endtoend/testdata/query_parameter_limit_two/sqlc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ version: '2'
22
plugins:
33
- name: py
44
wasm:
5-
url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.1.0.wasm
6-
sha256: ef58f143a8c116781091441770c7166caaf361dd645f62b8f05f462e9f95c3b2
5+
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
77
sql:
88
- schema: schema.sql
99
queries: query.sql

internal/endtoend/testdata/query_parameter_limit_undefined/sqlc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ version: '2'
22
plugins:
33
- name: py
44
wasm:
5-
url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.0.0.wasm
6-
sha256: aca83e1f59f8ffdc604774c2f6f9eb321a2b23e07dc83fc12289d25305fa065b
5+
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
77
sql:
88
- schema: schema.sql
99
queries: query.sql

internal/endtoend/testdata/query_parameter_limit_zero/sqlc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ version: '2'
22
plugins:
33
- name: py
44
wasm:
5-
url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.1.0.wasm
6-
sha256: ef58f143a8c116781091441770c7166caaf361dd645f62b8f05f462e9f95c3b2
5+
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
77
sql:
88
- schema: schema.sql
99
queries: query.sql

internal/endtoend/testdata/query_parameter_no_limit/sqlc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ version: '2'
22
plugins:
33
- name: py
44
wasm:
5-
url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.1.0.wasm
6-
sha256: ef58f143a8c116781091441770c7166caaf361dd645f62b8f05f462e9f95c3b2
5+
url: file://../../../../bin/sqlc-gen-python.wasm
6+
sha256: "c8c759e80b7d66c728cf9d37674f8f5c9cc33774afa789dbceee0e3446773458"
77
sql:
88
- schema: schema.sql
99
queries: query.sql

0 commit comments

Comments
 (0)