A Python port of the Invisible Internet Project (I2P)
at main 48 lines 1.2 kB view raw
1"""Tests for RoutingKeyGenerator.""" 2 3import os 4from datetime import datetime, timezone 5 6from i2p_netdb.routing_key import RoutingKeyGenerator 7 8 9def test_deterministic_same_date(): 10 rkg = RoutingKeyGenerator() 11 key = os.urandom(32) 12 rk1 = rkg.get_routing_key(key) 13 rk2 = rkg.get_routing_key(key) 14 assert rk1 == rk2 15 assert len(rk1) == 32 16 17 18def test_different_keys_different_routing(): 19 rkg = RoutingKeyGenerator() 20 rk1 = rkg.get_routing_key(b"\x01" * 32) 21 rk2 = rkg.get_routing_key(b"\x02" * 32) 22 assert rk1 != rk2 23 24 25def test_mod_data_format(): 26 rkg = RoutingKeyGenerator() 27 # Should be YYYY-MM-DD format 28 mod = rkg.mod_data 29 assert len(mod) == 10 30 # Verify parseable as date 31 datetime.strptime(mod.decode("ascii"), "%Y-%m-%d") 32 33 34def test_generate_returns_false_same_day(): 35 rkg = RoutingKeyGenerator() 36 # Already initialized with today's date 37 assert rkg.generate_date_based_mod_data() is False 38 39 40def test_time_till_midnight_positive(): 41 rkg = RoutingKeyGenerator() 42 ttm = rkg.get_time_till_midnight_utc() 43 assert 0 < ttm <= 86400 44 45 46def test_last_changed_set(): 47 rkg = RoutingKeyGenerator() 48 assert rkg.last_changed > 0