minor refactoring & adjustments
This commit is contained in:
@ -7,7 +7,6 @@ from bs4 import BeautifulSoup
|
||||
|
||||
from mwfin import functions
|
||||
from mwfin.constants import HTML_PARSER, BASE_URL, FIN_STMT_URL_SUFFIX, IS, BS, CF, END_DATE
|
||||
from mwfin.exceptions import UnknownFinancialStatementItem
|
||||
|
||||
|
||||
THIS_DIR = Path(__file__).parent
|
||||
@ -64,18 +63,18 @@ class FunctionsTestCase(IsolatedAsyncioTestCase):
|
||||
|
||||
def test_extract_row_data(self):
|
||||
test_row = self.test_soup.find('div', attrs={'class': 'financials'}).tbody.tr
|
||||
expected_output = ('Cash & Short Term Investments', (11000000, -22000000))
|
||||
expected_output = ('foo', (1., -2.))
|
||||
output = functions.extract_row_data(test_row)
|
||||
self.assertTupleEqual(expected_output, output)
|
||||
|
||||
@patch.object(functions, 'extract_row_data')
|
||||
@patch.object(functions, 'find_relevant_table_rows')
|
||||
@patch.object(functions, 'get_all_table_rows')
|
||||
@patch.object(functions, 'extract_end_dates')
|
||||
def test_extract_all_data(self, mock_extract_end_dates, mock_find_relevant_table_rows, mock_extract_row_data):
|
||||
def test_extract_all_data(self, mock_extract_end_dates, mock_get_all_table_rows, mock_extract_row_data):
|
||||
test_end_dates = ('foo', 'bar')
|
||||
mock_extract_end_dates.return_value = test_end_dates
|
||||
test_relevant_rows = ['tr1', 'tr2']
|
||||
mock_find_relevant_table_rows.return_value = test_relevant_rows
|
||||
mock_get_all_table_rows.return_value = test_relevant_rows
|
||||
test_row_data = ('item_name', (123, 456))
|
||||
mock_extract_row_data.return_value = test_row_data
|
||||
expected_output = {
|
||||
@ -86,7 +85,7 @@ class FunctionsTestCase(IsolatedAsyncioTestCase):
|
||||
output = functions.extract_all_data(self.test_soup)
|
||||
self.assertDictEqual(expected_output, output)
|
||||
mock_extract_end_dates.assert_called_once_with(self.test_soup)
|
||||
mock_find_relevant_table_rows.assert_called_once_with(self.test_soup)
|
||||
mock_get_all_table_rows.assert_called_once_with(self.test_soup)
|
||||
mock_extract_row_data.assert_has_calls([call(test_relevant_rows[0]), call(test_relevant_rows[1])])
|
||||
|
||||
@patch.object(functions, 'extract_all_data')
|
||||
@ -198,9 +197,9 @@ class FunctionsTestCase(IsolatedAsyncioTestCase):
|
||||
symbol = 'foo'
|
||||
# Since the web request is mocked we always receive the same HTML markup.
|
||||
expected_output = {
|
||||
BS: {END_DATE: ('End_Date_1', 'End_Date_2'), 'Cash & Short Term Investments': (11000000, -22000000)},
|
||||
IS: {END_DATE: ('End_Date_1', 'End_Date_2'), 'Cash & Short Term Investments': (11000000, -22000000)},
|
||||
CF: {END_DATE: ('End_Date_1', 'End_Date_2'), 'Cash & Short Term Investments': (11000000, -22000000)}
|
||||
BS: {END_DATE: ('End_Date_1', 'End_Date_2'), 'foo': (1., -2.), 'bar': (2., -3.)},
|
||||
IS: {END_DATE: ('End_Date_1', 'End_Date_2'), 'foo': (1., -2.), 'bar': (2., -3.)},
|
||||
CF: {END_DATE: ('End_Date_1', 'End_Date_2'), 'foo': (1., -2.), 'bar': (2., -3.)}
|
||||
}
|
||||
output = await functions.get_all_financials(symbol, session=mock_session_obj)
|
||||
self.assertDictEqual(expected_output, output)
|
||||
|
@ -23,16 +23,16 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><div> Cash & Short Term Investments </div><div> Cash & Short Term Investments </div></td>
|
||||
<td><div> foo </div><div> foo </div></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><div> <div data-chart-data="11000000.0,-22000000.0"><div></div></td>
|
||||
<td><div> <div data-chart-data="1.0,-2.0"><div></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div> Cash & Short Term Investments Growth </div><div> Cash & Short Term Investments Growth </div></td>
|
||||
<td></td>
|
||||
<td><div> bar </div><div> bar </div></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><div> <div data-chart-data="2.0,-3.0"><div></div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
Reference in New Issue
Block a user