You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prompt Category:
Unit Testing
Prompt:
extract_data.py Modify the test results for this file as per the new requirements. Also update the Pylint configuration such that the Code Coverage is greater than 80%
User Observation:
$ python3 -m pytest test_extract_data.py --cov=extract_data --cov-report=term-missing
================================================ test session starts ================================================
platform darwin -- Python 3.9.6, pytest-8.3.5, pluggy-1.5.0
rootdir: /Users/surya.sandeep.boda/Desktop/Marscode Zero to One 3
plugins: cov-6.0.0
collected 6 items
test_extract_data.py ..F.F. [100%]
===================================================== FAILURES ======================================================
__________________________________ TestGoogleSheetExtraction.test_invalid_ratings ___________________________________
self = <test_extract_data.TestGoogleSheetExtraction testMethod=test_invalid_ratings>
mock_build = <MagicMock name='build' id='4886351728'>
mock_credentials = <MagicMock name='Credentials' id='4886539712'>
@patch('extract_data.Credentials')
@patch('extract_data.build')
def test_invalid_ratings(self, mock_build, mock_credentials):
"""Test handling of invalid rating values"""
mock_data = self.mock_data.copy()
mock_data[1][3] = 'invalid' # Invalid Context Awareness rating
mock_service = MagicMock()
mock_build.return_value = mock_service
mock_service.spreadsheets().values().get().execute.return_value = {
'values': mock_data
}
result = get_google_sheet_data()
self.assertIsNotNone(result)
> self.assertTrue(pd.isna(result['Mean Rating'].iloc[0]))
E AssertionError: False is not true
test_extract_data.py:109: AssertionError
_____________________________ TestGoogleSheetExtraction.test_result_status_calculation ______________________________
self = <test_extract_data.TestGoogleSheetExtraction testMethod=test_result_status_calculation>
def test_result_status_calculation(self):
"""Test result status determination"""
test_data = pd.DataFrame({
'Difference': [-2, -0.5, 0, 0.5, 2]
})
expected_results = ['Not ok', 'Ok', 'Ok', 'Ok', 'Not ok']
for diff, expected in zip(test_data['Difference'], expected_results):
result = test_data['Difference'].apply(
lambda x: 'Ok' if -1 <= x <= 1 else 'Not ok'
)
> self.assertEqual(result.iloc[0], expected)
E AssertionError: 'Not ok' != 'Ok'
E - Not ok
E + Ok
test_extract_data.py:122: AssertionError
================================================= warnings summary ==================================================
test_extract_data.py:3
/Users/surya.sandeep.boda/Desktop/Marscode Zero to One 3/test_extract_data.py:3: DeprecationWarning:
Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),
(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)
but was not found to be installed on your system.
If this would cause problems for you,
please provide us feedback at pandas-dev/pandas#54466
import pandas as pd
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
---------- coverage: platform darwin, python 3.9.6-final-0 -----------
Name Stmts Miss Cover Missing
-----------------------------------------------
extract_data.py 65 12 82% 107, 136-149
-----------------------------------------------
TOTAL 65 12 82%
============================================== short test summary info ==============================================
FAILED test_extract_data.py::TestGoogleSheetExtraction::test_invalid_ratings - AssertionError: False is not true
FAILED test_extract_data.py::TestGoogleSheetExtraction::test_result_status_calculation - AssertionError: 'Not ok' != 'Ok'
====================================== 2 failed, 4 passed, 1 warning in 0.52s =======================================
Response ID:
78b65279-364d-43ca-ac9e-1e8b1dfd31c2
0 commit comments