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

Function TestReparse

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

Source from the content-addressed store, hash-verified

455}
456
457func TestReparse(t *testing.T) {
458 // Prepare
459 ctx := context.Background()
460
461 // Create empty project
462 repo := makeRepo(t, map[string]string{`rill.yaml`: ``})
463 p, err := Parse(ctx, repo, "", "", "duckdb", true)
464 require.NoError(t, err)
465 requireResourcesAndErrors(t, p, nil, nil)
466
467 // Add a source
468 putRepo(t, repo, map[string]string{
469 `sources/s1.yaml`: `
470connector: s3
471path: hello
472`,
473 })
474 s1 := &Resource{
475 Name: ResourceName{Kind: ResourceKindModel, Name: "s1"},
476 Paths: []string{"/sources/s1.yaml"},
477 ModelSpec: &runtimev1.ModelSpec{
478 InputConnector: "s3",
479 OutputConnector: "duckdb",
480 InputProperties: must(structpb.NewStruct(map[string]any{"path": "hello"})),
481 OutputProperties: must(structpb.NewStruct(map[string]any{"materialize": true})),
482 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
483 DefinedAsSource: true,
484 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
485 },
486 }
487 diff, err := p.Reparse(ctx, s1.Paths)
488 require.NoError(t, err)
489 requireResourcesAndErrors(t, p, []*Resource{s1}, nil)
490 require.Equal(t, &Diff{
491 Added: []ResourceName{s1.Name},
492 }, diff)
493
494 // Add a model
495 putRepo(t, repo, map[string]string{
496 `models/m1.sql`: `
497SELECT * FROM foo
498`,
499 })
500 m1 := &Resource{
501 Name: ResourceName{Kind: ResourceKindModel, Name: "m1"},
502 Paths: []string{"/models/m1.sql"},
503 ModelSpec: &runtimev1.ModelSpec{
504 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
505 InputConnector: "duckdb",
506 InputProperties: must(structpb.NewStruct(map[string]any{"sql": "SELECT * FROM foo"})),
507 OutputConnector: "duckdb",
508 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
509 },
510 }
511 diff, err = p.Reparse(ctx, m1.Paths)
512 require.NoError(t, err)
513 requireResourcesAndErrors(t, p, []*Resource{s1, m1}, nil)
514 require.Equal(t, &Diff{

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected