Merge pull request #204 from manalilatkar/bugfix_2372
displaying a message in case of non-existent field name for the search function of stacky server
This commit is contained in:
@@ -613,5 +613,8 @@ def search(request):
|
|||||||
routing_key_status = routing_key_type(event.routing_key)
|
routing_key_status = routing_key_type(event.routing_key)
|
||||||
results = event.search_results(results, when, routing_key_status)
|
results = event.search_results(results, when, routing_key_status)
|
||||||
return rsp(json.dumps(results))
|
return rsp(json.dumps(results))
|
||||||
except ObjectDoesNotExist or FieldError:
|
except ObjectDoesNotExist:
|
||||||
return rsp([])
|
return error_response(404, 'Not Found', ["The requested object does not exist"])
|
||||||
|
except FieldError:
|
||||||
|
return error_response(400, 'Bad Request', "The requested field '%s' does not exist for the corresponding object.\n"
|
||||||
|
"Note: The field names of database are case-sensitive." % field)
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import decimal
|
import decimal
|
||||||
import json
|
import json
|
||||||
|
from django.core.exceptions import FieldError
|
||||||
|
|
||||||
import mox
|
import mox
|
||||||
|
|
||||||
@@ -1374,6 +1375,24 @@ class StackyServerTestCase(StacktachBaseTestCase):
|
|||||||
self._assert_on_search_nova(json_resp, raw1)
|
self._assert_on_search_nova(json_resp, raw1)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
|
def test_search_with_wrong_field_value_returns_400_error_and_a_message(self):
|
||||||
|
fake_request = self.mox.CreateMockAnything()
|
||||||
|
fake_request.GET = {'field': 'tenant', 'value': 'tenant'}
|
||||||
|
models.RawData.objects.filter(tenant='tenant').AndRaise(FieldError)
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
resp = stacky_server.search(fake_request)
|
||||||
|
|
||||||
|
self.assertEqual(resp.status_code, 400)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
self.assertEquals(json_resp[0],[u'Error', u'Message'])
|
||||||
|
self.assertEquals(json_resp[1],
|
||||||
|
[u'Bad Request', u"The requested field"
|
||||||
|
u" 'tenant' does not exist for the corresponding object.\nNote: "
|
||||||
|
u"The field names of database are case-sensitive."])
|
||||||
|
|
||||||
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_model_search_default_limit(self):
|
def test_model_search_default_limit(self):
|
||||||
fake_request = self.mox.CreateMockAnything()
|
fake_request = self.mox.CreateMockAnything()
|
||||||
fake_request.GET = {}
|
fake_request.GET = {}
|
||||||
|
Reference in New Issue
Block a user