def test_request_raises_error(urlopen, request): exception_data = MagicMock() exception_data.read.return_value.decode.return_value = '{"error": 1}' urlopen.side_effect = HTTPError('', '', '', '', exception_data) ygg = YggdrasilCore() assert not urlopen.called assert not request.called res = ygg._ygg_req('/test', {'a': 'b'}) # Read the response assert exception_data.read.called assert exception_data.read.return_value.decode.called assert res == {'error': 1}
def test_request_is_done(urlopen, request): decode = urlopen.return_value.read.return_value.decode decode.return_value = '{"test": 1}' ygg = YggdrasilCore() assert not urlopen.called assert not request.called res = ygg._ygg_req('/test', [{'a': 'b'}, 'c', 'd', 'e']) # First create the request request.assert_called_once_with( url='https://authserver.mojang.com/test', data=b'[{"a": "b"}, "c", "d", "e"]', headers={'Content-Type': 'application/json'} ) # Then send it urlopen.assert_called_once_with(request.return_value) # Read the response assert urlopen.return_value.read.called assert decode.called assert res == {'test': 1}