]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Move exportClientStatus to testutil.ExportStatusWriter
authorMatt Joiner <anacrolix@gmail.com>
Sun, 21 Feb 2016 15:36:41 +0000 (02:36 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 21 Feb 2016 15:36:41 +0000 (02:36 +1100)
client_test.go
internal/testutil/testutil.go

index 1ededad24b6ee09a090418462fa67e33d3c87f02..1ecf2f70a68269617d16551d61d99ae5f900d4f0 100644 (file)
@@ -287,7 +287,7 @@ func testClientTransfer(t *testing.T, ps testClientTransferParams) {
        require.NoError(t, err)
        defer seeder.Close()
        if ps.ExportClientStatus {
-               exportClientStatus(seeder, "s")
+               testutil.ExportStatusWriter(seeder, "s")
        }
        seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
        leecherDataDir, err := ioutil.TempDir("", "")
@@ -304,7 +304,7 @@ func testClientTransfer(t *testing.T, ps testClientTransferParams) {
        leecher, _ := NewClient(&cfg)
        defer leecher.Close()
        if ps.ExportClientStatus {
-               exportClientStatus(leecher, "l")
+               testutil.ExportStatusWriter(leecher, "l")
        }
        leecherGreeting, new, err := leecher.AddTorrentSpec(func() (ret *TorrentSpec) {
                ret = TorrentSpecFromMetaInfo(mi)
@@ -332,15 +332,6 @@ func testClientTransfer(t *testing.T, ps testClientTransferParams) {
        assert.EqualValues(t, testutil.GreetingFileContents, _greeting)
 }
 
-func exportClientStatus(cl *Client, path string) {
-       http.HandleFunc(
-               fmt.Sprintf("/%s/%s", missinggo.GetTestName(), path),
-               func(w http.ResponseWriter, r *http.Request) {
-                       cl.WriteStatus(w)
-               },
-       )
-}
-
 // Check that after completing leeching, a leecher transitions to a seeding
 // correctly. Connected in a chain like so: Seeder <-> Leecher <-> LeecherLeecher.
 func TestSeedAfterDownloading(t *testing.T) {
@@ -351,14 +342,14 @@ func TestSeedAfterDownloading(t *testing.T) {
        cfg.DataDir = greetingTempDir
        seeder, err := NewClient(&cfg)
        defer seeder.Close()
-       exportClientStatus(seeder, "s")
+       testutil.ExportStatusWriter(seeder, "s")
        seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
        cfg.DataDir, err = ioutil.TempDir("", "")
        require.NoError(t, err)
        defer os.RemoveAll(cfg.DataDir)
        leecher, _ := NewClient(&cfg)
        defer leecher.Close()
-       exportClientStatus(leecher, "l")
+       testutil.ExportStatusWriter(leecher, "l")
        cfg.Seed = false
        cfg.TorrentDataOpener = nil
        cfg.DataDir, err = ioutil.TempDir("", "")
@@ -366,7 +357,7 @@ func TestSeedAfterDownloading(t *testing.T) {
        defer os.RemoveAll(cfg.DataDir)
        leecherLeecher, _ := NewClient(&cfg)
        defer leecherLeecher.Close()
-       exportClientStatus(leecherLeecher, "ll")
+       testutil.ExportStatusWriter(leecherLeecher, "ll")
        leecherGreeting, _, _ := leecher.AddTorrentSpec(func() (ret *TorrentSpec) {
                ret = TorrentSpecFromMetaInfo(mi)
                ret.ChunkSize = 2
index b23ed5af107a4b2afce491b2f252f2f715193c8d..b43ddffa64f6064b385bff03ba06b5260d41dcb0 100644 (file)
@@ -7,11 +7,15 @@ package testutil
 
 import (
        "bytes"
+       "fmt"
        "io"
        "io/ioutil"
+       "net/http"
        "os"
        "path/filepath"
 
+       "github.com/anacrolix/missinggo"
+
        "github.com/anacrolix/torrent/metainfo"
 )
 
@@ -58,3 +62,16 @@ func GreetingTestTorrent() (tempDir string, metaInfo *metainfo.MetaInfo) {
        metaInfo, _ = metainfo.Load(w)
        return
 }
+
+type StatusWriter interface {
+       WriteStatus(io.Writer)
+}
+
+func ExportStatusWriter(sw StatusWriter, path string) {
+       http.HandleFunc(
+               fmt.Sprintf("/%s/%s", missinggo.GetTestName(), path),
+               func(w http.ResponseWriter, r *http.Request) {
+                       sw.WriteStatus(w)
+               },
+       )
+}