def test_threadlist_add_thread_id_type_error(): """ Test invalid input type for add method, thread_id argument. """ threadlist = ThreadList(3) message = Message(1, "Head of Message 1", "Content of Message 1") threadlist.add(message, "1")
def test_threadlist_add(): """ Test if a ThreaList object can add a message to the correct thread and move the thread to the top of the list. """ def compare_threads(messages, thread_ids, threadlist): """ Check the state of the threadlist. """ for index, (thread_id, thread) in enumerate(threadlist.threads.items()): assert_equal(thread_id, thread_ids[index]) assert_equal(thread.messages, messages[index]) threadlist = ThreadList(1) # Add M11, T1 message_11 = Message(11, "Head of Message 11", "Content of Message 11") threadlist.add(message_11, 1) messages = [deque([message_11])] thread_ids = [1] compare_threads(messages, thread_ids, threadlist) # Add M21, T2 message_21 = Message(21, "Head of Message 21", "Content of Message 21") threadlist.add(message_21, 2) messages = [deque([message_11]), deque([message_21])] thread_ids = [1, 2] compare_threads(messages, thread_ids, threadlist) # Add M12, T1 message_12 = Message(12, "Head of Message 22", "Content of Message 22") threadlist.add(message_12, 1) messages = [deque([message_21]), deque([message_12, message_11])] thread_ids = [2, 1] compare_threads(messages, thread_ids, threadlist)
def test_threadlist_display(): """ Test ThreadList class str method. """ # Create a new thread list that shows only the top 3 threads. threadlist = ThreadList(3) # Add (M7, T13). State: [7(13)] message_13 = Message(13, "Head of Message 13", "Content of Message 13") threadlist.add(message_13, 7) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[7(13)]") # Add (M5, T99). State: [99(5), 7(13)] message_5 = Message(5, "Head of Message 5", "Content of Message 5") threadlist.add(message_5, 99) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[99(5), 7(13)]") # Add (M4, T11). State: [11(4), 99(5), 7(13)] message_4 = Message(4, "Head of Message 4", "Content of Message 4") threadlist.add(message_4, 11) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[11(4), 99(5), 7(13)]") # Add (M44, T99). State: [99(44, 5), 11(4), 7(13)] message_44 = Message(44, "Head of Message 44", "Content of Message 44") threadlist.add(message_44, 99) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[99(44, 5), 11(4), 7(13)]") # Add (M1, T11). State: [1(1), 99(44, 55), 11(4), 7(13)] => [[1(1), 99(44, 55), 11(4)] message_1 = Message(1, "Head of Message 1", "Content of Message 1") threadlist.add(message_1, 1) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[1(1), 99(44, 5), 11(4)]") # Add (M2, T7). State: [7(2, 13), 1(1), 99(44, 55), 11(4)] => [7(2, 13), 1(1), 99(44, 55)] message_2 = Message(2, "Head of Message 2", "Content of Message 2") threadlist.add(message_2, 7) out = StringIO() threadlist.display(out) assert_equal(out.getvalue().strip(), "[7(2, 13), 1(1), 99(44, 5)]")
def test_threadlist_display_out_type_error(): """ Test invalid input type for display method, out argument. """ threadlist = ThreadList(3) threadlist.display(1)
def test_threadlist_add_message_type_error(): """ Test invalid input type for add method, message argument. """ threadlist = ThreadList(3) threadlist.add(1, 1)
def main(): logging.basicConfig(filename='logs/main.log', level=logging.INFO, format='%(asctime)s %(levelname)s: %(message)s') logging.info("Welcome to Threaded Messenger!") logging.info("Starts running main ...") """ Test ThreadList class str method. """ # Create a new thread list that shows only the top 3 threads. # State: [] threadlist = ThreadList(3) print "Create a new thread list that shows only the top 3 threads." print "State: " threadlist.display() print "" # Add (M7, T13). State: [7(13)] message_13 = Message(13, "Head of Message 13", "Content of Message 13") threadlist.add(message_13, 7) print "State: " threadlist.display() print "" # Add (M5, T99). State: [99(5), 7(13)] message_5 = Message(5, "Head of Message 5", "Content of Message 5") threadlist.add(message_5, 99) print "Add (M5, T99)" print "State: " threadlist.display() print "" # Add (M4, T11). State: [11(4), 99(5), 7(13)] message_4 = Message(4, "Head of Message 4", "Content of Message 4") threadlist.add(message_4, 11) print "Add (M4, T11)" print "State: " threadlist.display() print "" # Add (M44, T99). State: [99(44, 5), 11(4), 7(13)] message_44 = Message(44, "Head of Message 44", "Content of Message 44") threadlist.add(message_44, 99) print "Add (M44, T99)" print "State: " threadlist.display() print "" # Add (M1, T11). State: [1(1), 99(44, 55), 11(4), 7(13)] => [[1(1), 99(44, 55), 11(4)] message_1 = Message(1, "Head of Message 1", "Content of Message 1") threadlist.add(message_1, 1) print "Add (M1, T11)" print "State: " threadlist.display() print "" # Add (M2, T7). State: [7(2, 13), 1(1), 99(44, 55), 11(4)] => [7(2, 13), 1(1), 99(44, 55)] message_2 = Message(2, "Head of Message 2", "Content of Message 2") threadlist.add(message_2, 7) print "Add (M2, T7)" print "State: " threadlist.display() print "" logging.info("Done running main ...")