A Python port of the Invisible Internet Project (I2P)
at main 52 lines 1.5 kB view raw
1"""Tests for GenericServerTask — TDD: tests before implementation.""" 2 3import pytest 4 5from i2p_apps.i2ptunnel.config import TunnelDefinition, TunnelType 6from i2p_apps.i2ptunnel.server_task import GenericServerTask 7 8 9def _make_server_def(**kw): 10 defaults = dict( 11 name="test-server", 12 type=TunnelType.SERVER, 13 target_host="127.0.0.1", 14 target_port=8080, 15 ) 16 defaults.update(kw) 17 return TunnelDefinition(**defaults) 18 19 20class MockServerSession: 21 def __init__(self): 22 self.destination = "SERV" * 129 23 24 async def accept(self): 25 raise NotImplementedError("No mock accept") 26 27 async def close(self): 28 pass 29 30 31class TestGenericServerTask: 32 def test_creation(self): 33 config = _make_server_def() 34 session = MockServerSession() 35 task = GenericServerTask(config, session) 36 assert task.tunnel_type == TunnelType.SERVER 37 assert not task.is_open 38 39 def test_config_target(self): 40 config = _make_server_def(target_host="10.0.0.1", target_port=9090) 41 session = MockServerSession() 42 task = GenericServerTask(config, session) 43 assert task._config.target_host == "10.0.0.1" 44 assert task._config.target_port == 9090 45 46 def test_stats_initial(self): 47 config = _make_server_def() 48 session = MockServerSession() 49 task = GenericServerTask(config, session) 50 assert task.stats.total_connections == 0 51 assert task.stats.active_connections == 0 52 assert task.stats.total_bytes == 0