(json_responses=(), status_code=200)
| 113 | |
| 114 | |
| 115 | def patch_urlopen(json_responses=(), status_code=200): |
| 116 | side_effects = [] |
| 117 | if status_code == 200: |
| 118 | for data in json_responses: |
| 119 | mock_response = mock.MagicMock() |
| 120 | mock_response.read.return_value = json.dumps(data).encode() |
| 121 | mock_cm = mock.MagicMock() |
| 122 | mock_cm.__enter__.return_value = mock_response |
| 123 | side_effects.append(mock_cm) |
| 124 | else: |
| 125 | error = urllib.error.HTTPError( |
| 126 | url="https://example.com", |
| 127 | code=status_code, |
| 128 | msg="Error", |
| 129 | hdrs=None, |
| 130 | fp=None, |
| 131 | ) |
| 132 | side_effects.append(error) |
| 133 | return mock.patch("urllib.request.urlopen", side_effect=side_effects) |
| 134 | |
| 135 | |
| 136 | class BaseTestCase(unittest.TestCase): |
no test coverage detected