MCPcopy
hub / github.com/pingcap/tidb / TestGetSchema

Function TestGetSchema

pkg/server/handler/tests/http_handler_test.go:781–973  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

779}
780
781func TestGetSchema(t *testing.T) {
782 ts := createBasicHTTPHandlerTestSuite()
783 ts.startServer(t)
784 ts.prepareData(t)
785 defer ts.stopServer(t)
786 resp, err := ts.FetchStatus("/schema")
787 require.NoError(t, err)
788 decoder := json.NewDecoder(resp.Body)
789 var dbs []*model.DBInfo
790 err = decoder.Decode(&dbs)
791 require.NoError(t, err)
792 require.NoError(t, resp.Body.Close())
793 expects := []string{"information_schema", "metrics_schema", "mysql", "performance_schema", "sys", "test", "tidb"}
794 names := make([]string, len(dbs))
795 for i, v := range dbs {
796 names[i] = v.Name.L
797 }
798 sort.Strings(names)
799 require.Equal(t, expects, names)
800 store := testkit.CreateMockStore(t)
801
802 tk := testkit.NewTestKit(t, store)
803 userTbl := external.GetTableByName(t, tk, "mysql", "user")
804 resp, err = ts.FetchStatus(fmt.Sprintf("/schema?table_id=%d", userTbl.Meta().ID))
805 require.NoError(t, err)
806 var ti *model.TableInfo
807 decoder = json.NewDecoder(resp.Body)
808 err = decoder.Decode(&ti)
809 require.NoError(t, err)
810 require.NoError(t, resp.Body.Close())
811 require.Equal(t, "user", ti.Name.L)
812
813 resp, err = ts.FetchStatus("/schema?table_id=a")
814 require.NoError(t, err)
815 require.NoError(t, resp.Body.Close())
816
817 resp, err = ts.FetchStatus("/schema?table_id=1")
818 require.NoError(t, err)
819 require.NoError(t, resp.Body.Close())
820
821 resp, err = ts.FetchStatus("/schema?table_id=-1")
822 require.NoError(t, err)
823 require.NoError(t, resp.Body.Close())
824
825 resp, err = ts.FetchStatus("/schema/tidb")
826 require.NoError(t, err)
827 var lt []*model.TableInfo
828 decoder = json.NewDecoder(resp.Body)
829 err = decoder.Decode(&lt)
830 require.NoError(t, err)
831 require.NoError(t, resp.Body.Close())
832 require.Greater(t, len(lt), 2)
833
834 resp, err = ts.FetchStatus("/schema/tidb?id_name_only=true")
835 require.NoError(t, err)
836 var lti []*model.TableNameInfo
837 decoder = json.NewDecoder(resp.Body)
838 err = decoder.Decode(&lti)

Callers

nothing calls this directly

Calls 15

DecodeMethod · 0.95
MustExecMethod · 0.95
GetPartitionInfoMethod · 0.95
CreateMockStoreFunction · 0.92
NewTestKitFunction · 0.92
GetTableByNameFunction · 0.92
CreateSessionFunction · 0.92
GetDomainFunction · 0.92
NewDBTestKitFunction · 0.92
prepareDataMethod · 0.80
stopServerMethod · 0.80

Tested by

no test coverage detected