diff --git a/zerver/tests/test_hipchat_importer.py b/zerver/tests/test_hipchat_importer.py new file mode 100644 index 0000000000..30431406cb --- /dev/null +++ b/zerver/tests/test_hipchat_importer.py @@ -0,0 +1,55 @@ +from zerver.data_import.hipchat import ( + get_hipchat_sender_id, +) +from zerver.data_import.hipchat_user import ( + UserHandler, +) + +from zerver.lib.test_classes import ( + ZulipTestCase, +) +from typing import Any, Dict + + +class HipChatImporter(ZulipTestCase): + def test_sender_ids(self) -> None: + realm_id = 5 + user_handler = UserHandler() + + # Simulate a "normal" user first. + user_with_id = dict( + id=1, + # other fields don't matter here + ) + user_handler.add_user(user=user_with_id) + + normal_message = dict( + sender=dict( + id=1, + ) + ) # type: Dict[str, Any] + + sender_id = get_hipchat_sender_id( + realm_id=realm_id, + message_dict=normal_message, + user_handler=user_handler, + ) + + self.assertEqual(sender_id, 1) + + bot_message = dict( + sender='fred_bot', + ) + + # Every message from fred_bot should + # return the same sender_id. + fred_bot_sender_id = 2 + + for i in range(3): + sender_id = get_hipchat_sender_id( + realm_id=realm_id, + message_dict=bot_message, + user_handler=user_handler, + ) + + self.assertEqual(sender_id, fred_bot_sender_id)