A Python port of the Invisible Internet Project (I2P)
at main 51 lines 1.4 kB view raw
1"""Tests for HTTP bidirectional server — TDD: tests before implementation.""" 2 3import pytest 4 5from i2p_apps.i2ptunnel.config import TunnelDefinition, TunnelType 6from i2p_apps.i2ptunnel.http_bidir import HTTPBidirServerTask 7 8 9class MockBidirSession: 10 def __init__(self): 11 self.destination = "BIDI" * 129 12 13 async def accept(self): 14 raise NotImplementedError 15 16 async def lookup(self, name): 17 return None 18 19 async def connect(self, dest): 20 raise NotImplementedError 21 22 async def close(self): 23 pass 24 25 26def _make_bidir_def(**kw): 27 defaults = dict( 28 name="bidir", 29 type=TunnelType.HTTPBIDIRSERVER, 30 target_host="127.0.0.1", 31 target_port=7658, 32 spoofed_host="mysite.i2p", 33 ) 34 defaults.update(kw) 35 return TunnelDefinition(**defaults) 36 37 38class TestHTTPBidirServerTask: 39 def test_creation(self): 40 task = HTTPBidirServerTask(_make_bidir_def(), MockBidirSession()) 41 assert task.tunnel_type == TunnelType.HTTPBIDIRSERVER 42 43 def test_is_server_type(self): 44 task = HTTPBidirServerTask(_make_bidir_def(), MockBidirSession()) 45 assert task._config.type == TunnelType.HTTPBIDIRSERVER 46 47 def test_has_spoofed_host(self): 48 task = HTTPBidirServerTask( 49 _make_bidir_def(spoofed_host="site.i2p"), MockBidirSession() 50 ) 51 assert task._spoofed_host == "site.i2p"