unittest for 'get_single_tr_data'; added 'html.parser' constant to 'scrape.py'
This commit is contained in:
@ -20,13 +20,41 @@ class ScrapeTestCase(TestCase):
|
||||
self.assertListEqual(expected_output, output)
|
||||
mock_get_single_tr_data.assert_has_calls([call(input1), call(input2), call(input3)])
|
||||
|
||||
@patch.object(scrape, 'get_str_from_td')
|
||||
def test_get_single_tr_data(self, mock_get_str_from_td: MagicMock):
|
||||
a, b, x = 'a', 'b', 'x'
|
||||
mock_get_str_from_td.return_value = x
|
||||
test_html = f'<tr> <td><a>{a}<small>({b})</small></a></td>' + \
|
||||
f'<td>foo</td> <td>bar</td> <td>baz</td> </tr>'
|
||||
test_tr = BeautifulSoup(test_html, scrape.HTML_PARSER).tr
|
||||
test_tds = test_tr.find_all('td')
|
||||
output = scrape.get_single_tr_data(test_tr)
|
||||
expected_output = (a, b, x, x, x)
|
||||
self.assertTupleEqual(expected_output, output)
|
||||
mock_get_str_from_td.assert_has_calls([call(test_tds[1]), call(test_tds[2]), call(test_tds[3])])
|
||||
|
||||
test_html = f'<tr> <td><a>{a}<small>***{b}***</small></a></td>' + \
|
||||
f'<td>foo</td> <td>bar</td> <td>baz</td> </tr>'
|
||||
test_tr = BeautifulSoup(test_html, scrape.HTML_PARSER).tr
|
||||
test_tds = test_tr.find_all('td')
|
||||
output = scrape.get_single_tr_data(test_tr)
|
||||
expected_output = (a, f'***{b}***', x, x, x)
|
||||
self.assertTupleEqual(expected_output, output)
|
||||
mock_get_str_from_td.assert_has_calls([call(test_tds[1]), call(test_tds[2]), call(test_tds[3])])
|
||||
|
||||
def test_get_str_from_td(self):
|
||||
expected_output = 'foo bar'
|
||||
test_td = BeautifulSoup(f'<td> {expected_output} </td>', 'html.parser').td
|
||||
test_td = BeautifulSoup(f'<td> {expected_output} </td>', scrape.HTML_PARSER).td
|
||||
output = scrape.get_str_from_td(test_td)
|
||||
self.assertEqual(expected_output, output)
|
||||
|
||||
expected_output = ''
|
||||
test_td = BeautifulSoup('<td></td>', 'html.parser').td
|
||||
test_td = BeautifulSoup('<td></td>', scrape.HTML_PARSER).td
|
||||
output = scrape.get_str_from_td(test_td)
|
||||
self.assertEqual(expected_output, output)
|
||||
|
||||
def test_trs_from_page(self):
|
||||
# Tested function takes URL as argument (GET request is issued)
|
||||
# HTML to be parsed could be substituted
|
||||
#
|
||||
pass
|
||||
|
Reference in New Issue
Block a user