def test_forum_board_from_content(self): content = self.load_resource(FILE_BOARD_THREAD_LIST) board = ForumBoard.from_content(content) self.assertIsNotNone(board) self.assertEqual("Antica", board.name) self.assertEqual("World Boards", board.section) self.assertEqual(1, board.page) self.assertEqual(3, board.total_pages) self.assertEqual(25, board.board_id) self.assertEqual(30, len(board.threads)) self.assertIsNotNone(board.url) self.assertIsNotNone(board.next_page_url) self.assertEqual( board.next_page_url, BoardEntry.get_url(board.board_id, board.page + 1, board.age)) for i, thread in enumerate(board.threads): with self.subTest(i=i): self.assertIsInstance(thread, ThreadEntry) self.assertIsNotNone(thread.title) self.assertGreater(thread.thread_id, 0) self.assertGreaterEqual(thread.views, 0) self.assertGreaterEqual(thread.replies, 0) self.assertIsInstance(thread.last_post, LastPost) self.assertIsNotNone(thread.last_post.author_url) with self.assertRaises(ValueError): board.get_page_url(-1)
async def test_client_fetch_forum_community_boards(self, mock): """Testing fetching the community boards""" content = self.load_resource(FILE_WORLD_BOARDS) mock.get(BoardEntry.get_community_boards_url(), status=200, body=content) response = await self.client.fetch_forum_community_boards() self.assertIsInstance(response.data[0], BoardEntry)
def test_listed_board_list_from_content_empty_board(self): content = self.load_resource(FILE_SECTION_EMPTY_BOARD) boards = BoardEntry.list_from_content(content) self.assertEqual(84, len(boards)) for i, board in enumerate(boards): with self.subTest(i=i): self.assertIsInstance(board, BoardEntry) self.assertIsNotNone(board.name) self.assertGreater(board.board_id, 0) self.assertGreaterEqual(board.posts, 0) self.assertGreaterEqual(board.threads, 0) self.assertIsNotNone(board.url)
def test_listed_board_list_from_content_world_boards(self): content = self.load_resource(FILE_WORLD_BOARDS) boards = BoardEntry.list_from_content(content) self.assertEqual(84, len(boards)) for i, board in enumerate(boards): with self.subTest(i=i): self.assertIsInstance(board, BoardEntry) self.assertIsNotNone(board.name) self.assertGreater(board.board_id, 0) self.assertGreater(board.posts, 0) self.assertGreater(board.threads, 0) self.assertIsInstance(board.last_post, LastPost)
def test_listed_board_list_from_content_unrelated_section(self): content = self.load_resource(self.FILE_UNRELATED_SECTION) with self.assertRaises(InvalidContent): BoardEntry.list_from_content(content)
def test_listed_board_list_from_content_empty_section(self): content = self.load_resource(FILE_SECTION_EMPTY) boards = BoardEntry.list_from_content(content) self.assertIsInstance(boards, list)
def test_board_section_urls(self): self.assertIsNotNone(BoardEntry.get_community_boards_url()) self.assertIsNotNone(BoardEntry.get_support_boards_url()) self.assertIsNotNone(BoardEntry.get_world_boards_url()) self.assertIsNotNone(BoardEntry.get_trade_boards_url())
async def test_client_fetch_forum_board(self, mock): """Testing fetching a forum board""" content = self.load_resource(FILE_BOARD_THREAD_LIST) mock.get(BoardEntry.get_url(1), status=200, body=content) response = await self.client.fetch_forum_board(1) self.assertIsInstance(response.data, ForumBoard)