def test_valid_path_returns_proper_chats(self, mock_os):
        mock_os.path.exists.return_value = True
        mock_os.path.isdir.return_value = True
        mock_os.path.isfile.return_value = True

        mock_os.listdir.return_value = [
            'chat_one_20150404_234536.txt',
            'chat_two_20150130_065423.txt'
        ]

        chats = get_existing_logs('some/path')

        self.assertTrue('chat_one' in chats)
        self.assertTrue('chat_two' in chats)
    def test_multiple_chat_logs_returns_most_recent(self, mock_os):
        mock_os.path.exists.return_value = True
        mock_os.path.isdir.return_value = True
        mock_os.path.isfile.return_value = True

        mock_os.path.join = path.join

        mock_os.listdir.return_value = [
            'chat_one_20150104_234536.txt',
            'chat_one_20150130_065423.txt'
        ]

        base_path = path.join('some', 'path')
        chat_one_path = path.join(base_path, 'chat_one_20150130_065423.txt')

        chats = get_existing_logs(base_path)

        self.assertEqual(1, len(chats))
        self.assertEqual(chat_one_path, chats['chat_one']['path'])
    def test_valid_path_returns_proper_chat_paths(self, mock_os):
        mock_os.path.exists.return_value = True
        mock_os.path.isdir.return_value = True
        mock_os.path.isfile.return_value = True

        mock_os.path.join = path.join

        mock_os.listdir.return_value = [
            'chat_one_20150404_234536.txt',
            'chat_two_20150130_065423.txt'
        ]

        base_path = path.join('some', 'path')
        chat_one_path = path.join(base_path, 'chat_one_20150404_234536.txt')
        chat_two_path = path.join(base_path, 'chat_two_20150130_065423.txt')

        chats = get_existing_logs(base_path)

        self.assertEqual(chat_one_path, chats['chat_one']['path'])
        self.assertEqual(chat_two_path, chats['chat_two']['path'])
    def test_valid_path_returns_proper_chat_timestamps(self, mock_os):
        mock_os.path.exists.return_value = True
        mock_os.path.isdir.return_value = True
        mock_os.path.isfile.return_value = True

        mock_os.path.join = path.join

        mock_os.listdir.return_value = [
            'chat_one_20150404_234536.txt',
            'chat_two_20150130_065423.txt'
        ]

        base_path = path.join('some', 'path')

        chats = get_existing_logs(base_path)

        chat_one_timestamp = datetime(2015, 4, 4, 23, 45, 36)
        chat_two_timestamp = datetime(2015, 1, 30, 6, 54, 23)

        self.assertEqual(chats['chat_one']['timestamp'], chat_one_timestamp)
        self.assertEqual(chats['chat_two']['timestamp'], chat_two_timestamp)