def test_return_not_dict(self, mock_get): url = 'https://vautointerview.azurewebsites.net/api/datasetid' json_data = 1 expected_error = ('Data returned {} from {} is not of type ' 'dict.'.format(json_data, url)) mock_get.return_value = json_data with pytest.raises(RuntimeError, match=expected_error): get_dataset_id()
def test_bad_content(self, mock_get): url = 'https://vautointerview.azurewebsites.net/api/datasetid' return_content = 'bad' expected_error = ('Expected html content type ' 'from url {} but got {}'.format(url, return_content)) mock_get.side_effect = RuntimeError(expected_error) with pytest.raises(RuntimeError, match=expected_error): get_dataset_id()
def test_bad_status(self, mock_get): url = 'https://vautointerview.azurewebsites.net/api/datasetid' return_status = 500 expected_error = ('Got unexpected status code {} from url ' '{}'.format(return_status, url)) mock_get.side_effect = RuntimeError(expected_error) with pytest.raises(RuntimeError, match=expected_error): get_dataset_id()
def test_return_value_for_key_not_str(self, mock_get): url = 'https://vautointerview.azurewebsites.net/api/datasetid' json_data = {'datasetId': True} expected_error = ('Data returned {} from {} does not have value ' 'of type str for key datasetId.'.format( json_data, url)) mock_get.return_value = json_data with pytest.raises(RuntimeError, match=expected_error): get_dataset_id()
def test_good_return(self, mock_get): json_data = {'datasetId': 'test'} mock_get.return_value = json_data assert get_dataset_id() == json_data['datasetId']
def test_key_not_in_return(self, mock_get): json_data = {'test': True} mock_get.return_value = json_data with pytest.raises(KeyError): get_dataset_id()