fs: deglobalise the config #4685
This is done by making fs.Config private and attaching it to the context instead. The Config should be obtained with fs.GetConfig and fs.AddConfig should be used to get a new mutable config that can be changed.
This commit is contained in:
parent
506342317b
commit
2e21c58e6a
93 changed files with 1128 additions and 847 deletions
29
fs/config_test.go
Normal file
29
fs/config_test.go
Normal file
|
@ -0,0 +1,29 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetConfig(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Check nil
|
||||
config := GetConfig(nil)
|
||||
assert.Equal(t, globalConfig, config)
|
||||
|
||||
// Check empty config
|
||||
config = GetConfig(ctx)
|
||||
assert.Equal(t, globalConfig, config)
|
||||
|
||||
// Check adding a config
|
||||
ctx2, config2 := AddConfig(ctx)
|
||||
config2.Transfers++
|
||||
assert.NotEqual(t, config2, config)
|
||||
|
||||
// Check can get config back
|
||||
config2ctx := GetConfig(ctx2)
|
||||
assert.Equal(t, config2, config2ctx)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue