github.com/rogpeppe/juju@v0.0.0-20140613142852-6337964b789e/environs/testing/storage.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package testing 5 6 import ( 7 "io" 8 9 gc "launchpad.net/gocheck" 10 11 "github.com/juju/juju/environs/filestorage" 12 "github.com/juju/juju/environs/httpstorage" 13 "github.com/juju/juju/environs/storage" 14 ) 15 16 // CreateLocalTestStorage returns the listener, which needs to be closed, and 17 // the storage that is backed by a directory created in the running test's temp 18 // directory. 19 func CreateLocalTestStorage(c *gc.C) (closer io.Closer, stor storage.Storage, dataDir string) { 20 dataDir = c.MkDir() 21 underlying, err := filestorage.NewFileStorageWriter(dataDir) 22 c.Assert(err, gc.IsNil) 23 listener, err := httpstorage.Serve("localhost:0", underlying) 24 c.Assert(err, gc.IsNil) 25 stor = httpstorage.Client(listener.Addr().String()) 26 closer = listener 27 return 28 }