diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_scrape.py b/tests/test_scrape.py new file mode 100644 index 0000000..e8d2029 --- /dev/null +++ b/tests/test_scrape.py @@ -0,0 +1,32 @@ +from unittest import TestCase +from unittest.mock import patch, MagicMock, call + +from bs4 import BeautifulSoup + +from stocksymbolscraper import scrape + + +class ScrapeTestCase(TestCase): + + @patch.object(scrape, 'get_single_tr_data') + def test_extract_row_data(self, mock_get_single_tr_data: MagicMock): + foo = 'foo' + mock_get_single_tr_data.return_value = foo + input1, input2, input3 = MagicMock(), MagicMock(), MagicMock() + # Although the function expects BS4 Tag objects as arguments, we substitute with Mocks here + # because those arguments are immediately passed into another function, which we mock out anyway. + output = scrape.extract_row_data(input1, input2, input3) + expected_output = [foo, foo, foo] + self.assertListEqual(expected_output, output) + mock_get_single_tr_data.assert_has_calls([call(input1), call(input2), call(input3)]) + + def test_get_str_from_td(self): + expected_output = 'foo bar' + test_td = BeautifulSoup(f'