from favorite_stickers.naming import pack_name, pack_title def test_first_pack_uses_stable_bot_owned_name() -> None: assert pack_name("FavoriteKeeperBot", 123456, 1) == ( "favorites_123456_by_favoritekeeperbot" ) assert pack_title("FavoriteKeeperBot", 123456, 1) == ( "FavoriteKeeperBot - Favorites 123456" ) def test_next_pack_has_number_suffix() -> None: assert pack_name("FavoriteKeeperBot", 123456, 2) == ( "favorites_123456_2_by_favoritekeeperbot" ) assert pack_title("FavoriteKeeperBot", 123456, 2) == ( "FavoriteKeeperBot - Favorites 123456 [2]" ) def test_names_respect_telegram_length_limit() -> None: username = "a" * 32 assert len(pack_name(username, 9_223_372_036_854_775_807, 9999)) <= 64 assert len(pack_title(username, 9_223_372_036_854_775_807, 9999)) <= 64 def test_short_name_never_contains_consecutive_underscores() -> None: name = pack_name("my__favorite_bot", 123, 2) assert "__" not in name assert name.endswith("_by_my_favorite_bot")