def test_list_messages_pair(database): user_hash_1 = User.create_user(2, 2, "Test user 1", database) user_hash_2 = User.create_user(3, 3, "Test user 2", database) assert len(Message.inspect_pair_history_messages(user_hash_1, user_hash_2, database)) == 0 assert len(Message.inspect_pair_history_messages(user_hash_2, user_hash_1, database)) == 0 Message.create_message(user_hash_1, user_hash_2, "HELLO", database) assert len(Message.inspect_pair_history_messages(user_hash_1, user_hash_2, database)) == len(Message.inspect_pair_history_messages(user_hash_2, user_hash_1, database))
def test_admin_inspect_messages(database, mock_message): User.create_admin(2, 2, database) character_hash_2 = User.create_user(3, 3, "Test user 2", database) character_hash_3 = User.create_user(4, 4, "Test user 3", database) client = BankingClientFactory(database).create_client(mock_message) results = client.admin_inspect_messages( f"/admin_messages_history_sent {character_hash_2}", True) assert results == NO_MESSAGES_FOUND results = client.admin_inspect_messages( f"/admin_messages_history_recieved {character_hash_2}", False) assert results == NO_MESSAGES_FOUND results = client.admin_inspect_messages( f"/admin_messages_history_recieved {character_hash_3}", False) assert results == NO_MESSAGES_FOUND Message.create_message(character_hash_2, character_hash_3, "100", database) Message.create_message(character_hash_2, "0000000000", "100", database) results = client.admin_inspect_messages( f"/admin_messages_history_sent {character_hash_2}", True) assert results != NO_MESSAGES_FOUND results = client.admin_inspect_messages( f"/admin_messages_history_recieved {character_hash_2}", False) assert results == NO_MESSAGES_FOUND results = client.admin_inspect_messages( f"/admin_messages_history_recieved {character_hash_3}", False) assert results != NO_MESSAGES_FOUND
def prepare_message(self, message): self.user_validation() target_user_hash = re.search(r" [a-zA-Z0-9]{10} ", message).group(0).strip(' ') message = re.search(r" [a-zA-Z0-9]{10} [\w\W]+$", message).group(0)[12:] target_user = self.get_user_by_user_hash(target_user_hash) if target_user_hash == self.user.character_hash: raise MessageError(NO_SELF_MESSAGING) Message.create_message(self.user.character_hash, target_user_hash, message, self.database) return target_user.chat_id, message
def test_admin_inspect_pair_messages(database, mock_message): User.create_admin(2, 2, database) character_hash_2 = User.create_user(3, 3, "Test user 2", database) character_hash_3 = User.create_user(4, 4, "Test user 3", database) character_hash_4 = User.create_user(5, 5, "Test user 4", database) client = BankingClientFactory(database).create_client(mock_message) results = client.admin_inspect_pair_history_messages( f"/admin_messages_history_pair {character_hash_2} {character_hash_3}") assert results == NO_MESSAGES_FOUND results = client.admin_inspect_pair_history_messages( f"/admin_messages_history_pair {character_hash_4} {character_hash_3}") assert results == NO_MESSAGES_FOUND Message.create_message(character_hash_2, character_hash_4, "100", database) Message.create_message(character_hash_2, character_hash_3, "100", database) Message.create_message(character_hash_2, "0000000000", "100", database) Message.create_message(character_hash_3, character_hash_4, "100", database) results = client.admin_inspect_pair_history_messages( f"/admin_messages_history_pair {character_hash_2} {character_hash_3}") assert results != NO_MESSAGES_FOUND results = client.admin_inspect_pair_history_messages( f"/admin_messages_history_pair {character_hash_4} {character_hash_3}") assert results != NO_MESSAGES_FOUND
def inspect_all_messages(self, user_hash=None): self.user_validation() if user_hash is None: user_hash = self.user.character_hash messages = Message.inspect_all_messages(user_hash, self.database) resulting_data = "" for message in messages: resulting_data += str(message) + '\n' if not messages: resulting_data = NO_MESSAGES_FOUND return resulting_data
def test_list_messages_sender(database): user_hash_1 = User.create_user(2, 2, "Test user 1", database) user_hash_2 = User.create_user(3, 3, "Test user 2", database) assert len(Message.inspect_messages(user_hash_1, True, database)) == 0 assert len(Message.inspect_messages(user_hash_2, True, database)) == 0 Message.create_message(user_hash_1, user_hash_2, "HELLO", database) assert len(Message.inspect_messages(user_hash_1, True, database)) == 1 assert len(Message.inspect_messages(user_hash_2, True, database)) == 0
def inspect_pair_history_messages(self, message, sender_hash=None, reciever_hash=None): self.user_validation() if sender_hash is None: sender_hash = self.user.character_hash if reciever_hash is None: reciever_hash = re.search(r" [a-zA-Z0-9]{10}", message).group(0).strip(' ') messages = Message.inspect_pair_history_messages( sender_hash, reciever_hash, self.database) resulting_data = "" for message in messages: resulting_data += str(message) + '\n\n' if not messages: resulting_data = NO_MESSAGES_FOUND return resulting_data
def test_hack_inspect_pair_messages(database, mock_message): User.create_admin(1, 1, database) character_hash_1 = User.create_user(2, 2, "Test user", database) User.update_db_value(character_hash_1, "hacker_level", 1, database) character_hash_2 = User.create_user(3, 3, "Test user 2", database) character_hash_3 = User.create_user(4, 4, "Test user 3", database) character_hash_4 = User.create_user(5, 5, "Test user 4", database) User.update_db_value(character_hash_3, "hacker_defence", 1, database) User.update_db_value(character_hash_4, "hacker_defence", 2, database) client = BankingClientFactory(database).create_client(mock_message) results, chat_id, hash_1, chat_2_id, hash_2, show_hack = client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_2} {character_hash_3}") assert results == NO_MESSAGES_FOUND assert not show_hack results, chat_id, hash_1, chat_2_id, hash_2, show_hack = client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_4} {character_hash_3}") assert results == NO_MESSAGES_FOUND assert show_hack with pytest.raises(HackerError): client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_4} 0000000000") Message.create_message(character_hash_2, character_hash_4, "100", database) Message.create_message(character_hash_2, character_hash_3, "100", database) Message.create_message(character_hash_2, "0000000000", "100", database) Message.create_message(character_hash_3, character_hash_4, "100", database) results, chat_id, hash_1, chat_2_id, hash_2, show_hack = client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_2} {character_hash_3}") assert results != NO_MESSAGES_FOUND assert not show_hack results, chat_id, hash_1, chat_2_id, hash_2, show_hack = client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_2} 0000000000") assert results != NO_MESSAGES_FOUND assert not show_hack results, chat_id, hash_1, chat_2_id, hash_2, show_hack = client.hack_inspect_pair_history_messages( f"/hack_messages_history_pair {character_hash_4} {character_hash_3}") assert results != NO_MESSAGES_FOUND assert show_hack
def prepare_hacker_message(self, message): target_user_hash = re.search(r" [a-zA-Z0-9]{10} ", message).group(0).strip(' ') message = re.search(r" [a-zA-Z0-9]{10} [\w\W]+$", message).group(0)[12:] self.user_validation() target_user = self.get_user_by_user_hash(target_user_hash) if target_user_hash == self.user.character_hash: raise MessageError(NO_SELF_MESSAGING) self.hacker_validation(0) show_hack = self.user.hacker_level <= target_user.hacker_defence + HACKER_MESSAGE_DIFFICULY if show_hack: Message.create_message(self.user.character_hash, target_user_hash, message, self.database) else: Message.create_message(self.user.character_hash, HACKER_FAKE_HASH, message, self.database) Message.create_message(HACKER_FAKE_HASH, target_user_hash, message, self.database) return target_user.chat_id, message, show_hack
def test_create_messages(database): user_hash_1 = User.create_user(2, 2, "Test user 1", database) user_hash_2 = User.create_user(3, 3, "Test user 2", database) Message.create_message(user_hash_1, user_hash_2, "HELLO", database)