"""Tests for RoutingKeyGenerator.""" import os from datetime import datetime, timezone from i2p_netdb.routing_key import RoutingKeyGenerator def test_deterministic_same_date(): rkg = RoutingKeyGenerator() key = os.urandom(32) rk1 = rkg.get_routing_key(key) rk2 = rkg.get_routing_key(key) assert rk1 == rk2 assert len(rk1) == 32 def test_different_keys_different_routing(): rkg = RoutingKeyGenerator() rk1 = rkg.get_routing_key(b"\x01" * 32) rk2 = rkg.get_routing_key(b"\x02" * 32) assert rk1 != rk2 def test_mod_data_format(): rkg = RoutingKeyGenerator() # Should be YYYY-MM-DD format mod = rkg.mod_data assert len(mod) == 10 # Verify parseable as date datetime.strptime(mod.decode("ascii"), "%Y-%m-%d") def test_generate_returns_false_same_day(): rkg = RoutingKeyGenerator() # Already initialized with today's date assert rkg.generate_date_based_mod_data() is False def test_time_till_midnight_positive(): rkg = RoutingKeyGenerator() ttm = rkg.get_time_till_midnight_utc() assert 0 < ttm <= 86400 def test_last_changed_set(): rkg = RoutingKeyGenerator() assert rkg.last_changed > 0