mirror of
https://github.com/LBRYFoundation/tracker.git
synced 2025-08-23 17:47:29 +00:00
decouple HTTP tests from API usage
This commit is contained in:
parent
1764fa4a2d
commit
7cfa862f2c
3 changed files with 39 additions and 36 deletions
|
@ -5,9 +5,7 @@
|
||||||
package http
|
package http
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"net/url"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -20,7 +18,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPublicAnnounce(t *testing.T) {
|
func TestPublicAnnounce(t *testing.T) {
|
||||||
srv, err := setupTracker(&config.DefaultConfig)
|
srv, err := setupTracker(nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -49,24 +47,25 @@ func TestPublicAnnounce(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTorrentPurging(t *testing.T) {
|
func TestTorrentPurging(t *testing.T) {
|
||||||
cfg := config.DefaultConfig
|
tkr, err := tracker.New(&config.DefaultConfig)
|
||||||
srv, err := setupTracker(&cfg)
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create new tracker instance: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
srv, err := setupTracker(nil, tkr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer srv.Close()
|
defer srv.Close()
|
||||||
|
|
||||||
torrentAPIPath := srv.URL + "/torrents/" + url.QueryEscape(infoHash)
|
|
||||||
|
|
||||||
// Add one seeder.
|
// Add one seeder.
|
||||||
peer := makePeerParams("peer1", true)
|
peer := makePeerParams("peer1", true)
|
||||||
announce(peer, srv)
|
announce(peer, srv)
|
||||||
|
|
||||||
_, status, err := fetchPath(torrentAPIPath)
|
// Make sure the torrent was created.
|
||||||
|
_, err = tkr.FindTorrent(infoHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatalf("expected torrent to exist after announce: %s", err)
|
||||||
} else if status != http.StatusOK {
|
|
||||||
t.Fatalf("expected torrent to exist (got %s)", http.StatusText(status))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove seeder.
|
// Remove seeder.
|
||||||
|
@ -74,11 +73,9 @@ func TestTorrentPurging(t *testing.T) {
|
||||||
peer["event"] = "stopped"
|
peer["event"] = "stopped"
|
||||||
announce(peer, srv)
|
announce(peer, srv)
|
||||||
|
|
||||||
_, status, err = fetchPath(torrentAPIPath)
|
_, err = tkr.FindTorrent(infoHash)
|
||||||
if err != nil {
|
if err != models.ErrTorrentDNE {
|
||||||
t.Fatal(err)
|
t.Fatalf("expected torrent to have been purged: %s", err)
|
||||||
} else if status != http.StatusNotFound {
|
|
||||||
t.Fatalf("expected torrent to have been purged (got %s)", http.StatusText(status))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,23 +84,25 @@ func TestStalePeerPurging(t *testing.T) {
|
||||||
cfg.MinAnnounce = config.Duration{10 * time.Millisecond}
|
cfg.MinAnnounce = config.Duration{10 * time.Millisecond}
|
||||||
cfg.ReapInterval = config.Duration{10 * time.Millisecond}
|
cfg.ReapInterval = config.Duration{10 * time.Millisecond}
|
||||||
|
|
||||||
srv, err := setupTracker(&cfg)
|
tkr, err := tracker.New(&cfg)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create new tracker instance: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
srv, err := setupTracker(&cfg, tkr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer srv.Close()
|
defer srv.Close()
|
||||||
|
|
||||||
torrentAPIPath := srv.URL + "/torrents/" + url.QueryEscape(infoHash)
|
|
||||||
|
|
||||||
// Add one seeder.
|
// Add one seeder.
|
||||||
peer1 := makePeerParams("peer1", true)
|
peer1 := makePeerParams("peer1", true)
|
||||||
announce(peer1, srv)
|
announce(peer1, srv)
|
||||||
|
|
||||||
_, status, err := fetchPath(torrentAPIPath)
|
// Make sure the torrent was created.
|
||||||
|
_, err = tkr.FindTorrent(infoHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatalf("expected torrent to exist after announce: %s", err)
|
||||||
} else if status != http.StatusOK {
|
|
||||||
t.Fatalf("expected torrent to exist (got %s)", http.StatusText(status))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add a leecher.
|
// Add a leecher.
|
||||||
|
@ -115,11 +114,9 @@ func TestStalePeerPurging(t *testing.T) {
|
||||||
// Let them both expire.
|
// Let them both expire.
|
||||||
time.Sleep(30 * time.Millisecond)
|
time.Sleep(30 * time.Millisecond)
|
||||||
|
|
||||||
_, status, err = fetchPath(torrentAPIPath)
|
_, err = tkr.FindTorrent(infoHash)
|
||||||
if err != nil {
|
if err != models.ErrTorrentDNE {
|
||||||
t.Fatal(err)
|
t.Fatalf("expected torrent to have been purged: %s", err)
|
||||||
} else if status != http.StatusNotFound {
|
|
||||||
t.Fatalf("expected torrent to have been purged (got %s)", http.StatusText(status))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,7 +167,7 @@ func TestPreferredSubnet(t *testing.T) {
|
||||||
cfg.PreferredIPv6Subnet = 16
|
cfg.PreferredIPv6Subnet = 16
|
||||||
cfg.DualStackedPeers = false
|
cfg.DualStackedPeers = false
|
||||||
|
|
||||||
srv, err := setupTracker(&cfg)
|
srv, err := setupTracker(&cfg, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -235,7 +232,7 @@ func TestPreferredSubnet(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCompactAnnounce(t *testing.T) {
|
func TestCompactAnnounce(t *testing.T) {
|
||||||
srv, err := setupTracker(&config.DefaultConfig)
|
srv, err := setupTracker(nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,18 @@ func init() {
|
||||||
stats.DefaultStats = stats.New(config.StatsConfig{})
|
stats.DefaultStats = stats.New(config.StatsConfig{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupTracker(cfg *config.Config) (*httptest.Server, error) {
|
func setupTracker(cfg *config.Config, tkr *tracker.Tracker) (*httptest.Server, error) {
|
||||||
tkr, err := tracker.New(cfg)
|
if cfg == nil {
|
||||||
|
cfg = &config.DefaultConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
if tkr == nil {
|
||||||
|
var err error
|
||||||
|
tkr, err = tracker.New(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return createServer(tkr, cfg)
|
return createServer(tkr, cfg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/chihaya/bencode"
|
"github.com/chihaya/bencode"
|
||||||
"github.com/chihaya/chihaya/config"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPublicScrape(t *testing.T) {
|
func TestPublicScrape(t *testing.T) {
|
||||||
srv, err := setupTracker(&config.DefaultConfig)
|
srv, err := setupTracker(nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue