go-spatial / tegola

Tegola is a Mapbox Vector Tile server written in Go
http://tegola.io/
MIT License
1.25k stars 193 forks source link

test: use `T.Setenv` to set env vars in tests #882

Closed Juneezee closed 1 year ago

Juneezee commented 1 year ago

This PR replaces os.Setenv with t.Setenv. Starting from Go 1.17, we can use t.Setenv to set environment variable in test. The environment variable is automatically restored to its original value when the test and all its subtests complete. This ensures that each test does not start with leftover environment variables from previous completed tests.

This saves us at least 2 lines (error check, and unsetting the env var) on every instance.

func TestFoo(t *testing.T) {
    // before
    key := "ENV"
    originalEnv := os.Getenv(key)

    if err := os.Setenv(key, "new value"); err != nil {
        t.Fatal(err)
    }
    defer func() {
        if err := os.Setenv(key, originalEnv); err != nil {
            t.Logf("failed to set env %s back to original value: %v", key, err)
        }
    }()

    // after
    t.Setenv(key, "new value")
}
coveralls commented 1 year ago

Pull Request Test Coverage Report for Build 52242403c-PR-882


Totals Coverage Status
Change from base Build e41e1867c: 0.0%
Covered Lines: 5610
Relevant Lines: 12380

💛 - Coveralls