mirror of
https://github.com/codex-storage/bittorrent-benchmarks.git
synced 2025-02-24 08:48:16 +00:00
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
import os
|
|
from pathlib import Path
|
|
from typing import Generator
|
|
|
|
import pytest
|
|
from urllib3.util import parse_url
|
|
|
|
from benchmarks.core import utils
|
|
from benchmarks.core.utils import megabytes, await_predicate
|
|
from benchmarks.deluge.deluge_node import DelugeNode
|
|
from benchmarks.deluge.tracker import Tracker
|
|
from benchmarks.tests.utils import shared_volume
|
|
|
|
|
|
def deluge_node(
|
|
name: str, address: str, port: int
|
|
) -> Generator[DelugeNode, None, None]:
|
|
node = DelugeNode(
|
|
name, volume=shared_volume(), daemon_address=address, daemon_port=port
|
|
)
|
|
assert await_predicate(node.is_ready, timeout=10, polling_interval=0.5)
|
|
node.wipe_all_torrents()
|
|
try:
|
|
yield node
|
|
finally:
|
|
node.wipe_all_torrents()
|
|
|
|
|
|
@pytest.fixture
|
|
def deluge_node1() -> Generator[DelugeNode, None, None]:
|
|
yield from deluge_node(
|
|
"deluge-1", os.environ.get("DELUGE_NODE_1", "localhost"), 6890
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def deluge_node2() -> Generator[DelugeNode, None, None]:
|
|
yield from deluge_node(
|
|
"deluge-2", os.environ.get("DELUGE_NODE_2", "localhost"), 6893
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def deluge_node3() -> Generator[DelugeNode, None, None]:
|
|
yield from deluge_node(
|
|
"deluge-3", os.environ.get("DELUGE_NODE_3", "localhost"), 6896
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_random_file() -> Generator[Path, None, None]:
|
|
with utils.temp_random_file(size=megabytes(1)) as random_file:
|
|
yield random_file
|
|
|
|
|
|
@pytest.fixture
|
|
def tracker() -> Tracker:
|
|
return Tracker(
|
|
parse_url(
|
|
os.environ.get("TRACKER_ANNOUNCE_URL", "http://127.0.0.1:8000/announce")
|
|
)
|
|
)
|