MCPcopy Index your code
hub / github.com/rilldata/rill / TestReparseNameCollision

Function TestReparseNameCollision

runtime/parser/parser_test.go:660–727  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

658}
659
660func TestReparseNameCollision(t *testing.T) {
661 // Create project with model m1
662 ctx := context.Background()
663 repo := makeRepo(t, map[string]string{
664 `rill.yaml`: ``,
665 `models/m1.sql`: `
666SELECT 10
667 `,
668 `models/nested/m1.sql`: `
669SELECT 20
670 `,
671 `models/m2.sql`: `
672SELECT * FROM m1
673 `,
674 })
675 m1 := &Resource{
676 Name: ResourceName{Kind: ResourceKindModel, Name: "m1"},
677 Paths: []string{"/models/m1.sql"},
678 ModelSpec: &runtimev1.ModelSpec{
679 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
680 InputConnector: "duckdb",
681 InputProperties: must(structpb.NewStruct(map[string]any{"sql": "SELECT 10"})),
682 OutputConnector: "duckdb",
683 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
684 },
685 }
686 m1Nested := &Resource{
687 Name: ResourceName{Kind: ResourceKindModel, Name: "m1"},
688 Paths: []string{"/models/nested/m1.sql"},
689 ModelSpec: &runtimev1.ModelSpec{
690 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
691 InputConnector: "duckdb",
692 InputProperties: must(structpb.NewStruct(map[string]any{"sql": "SELECT 20"})),
693 OutputConnector: "duckdb",
694 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
695 },
696 }
697 m2 := &Resource{
698 Name: ResourceName{Kind: ResourceKindModel, Name: "m2"},
699 Paths: []string{"/models/m2.sql"},
700 Refs: []ResourceName{{Kind: ResourceKindModel, Name: "m1"}},
701 ModelSpec: &runtimev1.ModelSpec{
702 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
703 InputConnector: "duckdb",
704 InputProperties: must(structpb.NewStruct(map[string]any{"sql": "SELECT * FROM m1"})),
705 OutputConnector: "duckdb",
706 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
707 },
708 }
709 p, err := Parse(ctx, repo, "", "", "duckdb", true)
710 require.NoError(t, err)
711 requireResourcesAndErrors(t, p, []*Resource{m1, m2}, []*runtimev1.ParseError{
712 {
713 Message: "name collision",
714 FilePath: "/models/nested/m1.sql",
715 External: true,
716 },
717 })

Callers

nothing calls this directly

Calls 6

makeRepoFunction · 0.85
deleteRepoFunction · 0.85
ReparseMethod · 0.80
mustFunction · 0.70
ParseFunction · 0.70

Tested by

no test coverage detected