@@ -4,8 +4,10 @@ package server
44
55import (
66 "context"
7+ "log"
78 "os"
89 "path/filepath"
10+ "runtime"
911 "testing"
1012 "time"
1113
@@ -22,16 +24,27 @@ import (
2224 "github.com/stretchr/testify/assert"
2325)
2426
27+ var testRepoBasePath string
28+
29+ func TestMain (m * testing.M ) {
30+ // Get the file path of this source file, regardless of the working directory
31+ _ , filename , _ , ok := runtime .Caller (0 )
32+ if ! ok {
33+ log .Print ("couldn't find file path of the test file" )
34+ os .Exit (1 )
35+ }
36+ testRepoBasePath = filepath .Join (filename , ".." , ".." , ".." , "test" )
37+ if err := test .SetupInitializedRepo (testRepoBasePath ); err != nil {
38+ log .Print ("Could not initialize test repo: " , err )
39+ os .Exit (1 )
40+ }
41+ os .Exit (m .Run ())
42+ }
43+
2544func TestGetFeastServingInfo (t * testing.T ) {
2645 ctx := context .Background ()
27- // Pregenerated using `feast init`.
28- dir := "../../test/"
29- err := test .SetupInitializedRepo (dir )
30- defer test .CleanUpInitializedRepo (dir )
3146
32- require .Nil (t , err )
33-
34- client , closer := GetClient (ctx , dir , "" )
47+ client , closer := GetClient (ctx , testRepoBasePath , "" )
3548 defer closer ()
3649 response , err := client .GetFeastServingInfo (ctx , & serving.GetFeastServingInfoRequest {})
3750 assert .Nil (t , err )
@@ -40,14 +53,8 @@ func TestGetFeastServingInfo(t *testing.T) {
4053
4154func TestGetOnlineFeaturesSqlite (t * testing.T ) {
4255 ctx := context .Background ()
43- // Pregenerated using `feast init`.
44- dir := "../../test/"
45- err := test .SetupInitializedRepo (dir )
46- defer test .CleanUpInitializedRepo (dir )
4756
48- require .NoError (t , err )
49-
50- client , closer := GetClient (ctx , dir , "" )
57+ client , closer := GetClient (ctx , testRepoBasePath , "" )
5158 defer closer ()
5259 entities := make (map [string ]* types.RepeatedValue )
5360 entities ["driver_id" ] = & types.RepeatedValue {
@@ -74,7 +81,7 @@ func TestGetOnlineFeaturesSqlite(t *testing.T) {
7481 {Val : & types.Value_Int64Val {Int64Val : 1005 }},
7582 }
7683 expectedFeatureNamesResp := []string {"driver_id" , "conv_rate" , "acc_rate" , "avg_daily_trips" }
77- rows , err := test .ReadParquet (filepath .Join (dir , "feature_repo" , "driver_stats.parquet" ))
84+ rows , err := test .ReadParquet (filepath .Join (testRepoBasePath , "feature_repo" , "driver_stats.parquet" ))
7885 assert .Nil (t , err )
7986 entityKeys := map [int64 ]bool {1001 : true , 1003 : true , 1005 : true }
8087 correctFeatures := test .GetLatestFeatures (rows , entityKeys )
@@ -100,15 +107,9 @@ func TestGetOnlineFeaturesSqlite(t *testing.T) {
100107
101108func TestGetOnlineFeaturesSqliteWithLogging (t * testing.T ) {
102109 ctx := context .Background ()
103- // Pregenerated using `feast init`.
104- dir := "../../test/"
105- err := test .SetupInitializedRepo (dir )
106- defer test .CleanUpInitializedRepo (dir )
107-
108- require .NoError (t , err )
109110
110111 logPath := t .TempDir ()
111- client , closer := GetClient (ctx , dir , logPath )
112+ client , closer := GetClient (ctx , testRepoBasePath , logPath )
112113 defer closer ()
113114 entities := make (map [string ]* types.RepeatedValue )
114115 entities ["driver_id" ] = & types.RepeatedValue {
0 commit comments