def test_parseClientRequest_raise_error_if_unknown_table(self): kwargs = { 'browTabName' :'TABLE', 'model' :'folder', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data with self.assertRaises(ValueError): parseClientRequest(request.POST)
def test_parseClientRequest_raise_error_if_unknown_table(self): kwargs = { 'browTabName': 'TABLE', 'model': 'folder', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data with self.assertRaises(ValueError): parseClientRequest(request.POST)
def ajaxStartRowIndexFromSession(request): if 'client_request' in request.POST: # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('ajaxStartRowIndexFromSession:', err) s = 'ajaxStartRowIndexFromSession: %s %s %s' % err.args return HttpResponseBadRequest(s) browTabName = d.get('browTabName') parent_id = d.get('parent_id') # Беремо з сесії масив параметрів виділеного елемента # для даної таблиці і для даного parent_id (якщо є): selElement = getSelElementFromSession(request.session, browTabName=browTabName, parent_id=parent_id) # Посилаємо відповідь клієнту: response_dict = {'server_response': selElement} # return JsonResponse(response_dict) # дає помилку в pythonanywhere.com return HttpResponse(json.dumps(response_dict), content_type="application/json") else: return HttpResponseBadRequest("ajaxStartRowIndexFromSession: " "No 'client_request' in request.POST")
def ajaxSelRowIndexToSession(request): if 'client_request' in request.POST: # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('ajaxSelRowIndexToSession:', err.args) s = 'ajaxSelRowIndexToSession: %s %s %s' % err.args return HttpResponseBadRequest(s) browTabName = d.get('browTabName') parent_id = d.get('parent_id') # Формуємо дані для зберігання в сесії: selElement = {} selElement['model' ] = d.get('model' ) selElement['id' ] = d.get('id' ) selElement['selRowIndex'] = d.get('selRowIndex') # Записуємо в сесію: setSelElementToSession(request.session, browTabName=browTabName, parent_id=parent_id, selElement=selElement) # Посилаємо відповідь клієнту: response_dict = {'server_response': selElement } # return JsonResponse(response_dict) # дає помилку в pythonanywhere.com return HttpResponse(json.dumps(response_dict), content_type="application/json") else: return HttpResponseBadRequest("ajaxSelRowIndexToSession: " "No 'client_request' in request.POST")
def get_request_data_set(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data_set:', err.args) return None browTabName = d.get('browTabName') if browTabName != 'users_table': return None self.sendMail = d['sendMail'] elemSet = d.get('elemSet') users_set = [] if elemSet: for elem in elemSet: model = elem.get('model') if model: if model not in get_browTabName_models().get(browTabName): print('Error data in request.POST: model name in elemSet does not correspond to table name', model, browTabName) return None if model == "user": user_id = elem.get('id') user = get_or_none(User, id=user_id) # selected user if user: users_set.append(user) return users_set
def test_function_return_HttpResponse_2(self): json_s = '{"browTabName":"folders_contents","parent_id":"1","selRowIndex":"0"}' request = self.client.request() request.POST = {'client_request': json_s} expected = {'sendMail': None, 'id': None, 'name': None, 'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0', 'model': None} expected = {'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0'} self.assertEqual(parseClientRequest(request.POST), expected) request.session = { 'Selections': {"folders_contents": {"1": {'model' : "folder", 'id' : "1", 'selRowIndex' : "2", }, }, }, } response = ajaxStartRowIndexFromSession(request) self.assertTrue(isinstance(response, HttpResponse)) # Чи ф-ція повертає правильний response? expected = [b'{"server_response": {"id": "1", "selRowIndex": "2", "model": "folder"}}'] self.assertEqual(json.loads(response._container[0].decode()) , json.loads(expected[0].decode())) expected = {'content-type': ('Content-Type', 'application/json')} self.assertEqual(response._headers, expected)
def get_request_data_set(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data_set:', err.args) return None browTabName = d.get('browTabName') if browTabName != 'users_table': return None self.sendMail = d['sendMail'] elemSet = d.get('elemSet') users_set = [] if elemSet: for elem in elemSet: model = elem.get('model') if model: if model not in get_browTabName_models().get(browTabName): print( 'Error data in request.POST: model name in elemSet does not correspond to table name', model, browTabName) return None if model == "user": user_id = elem.get('id') user = get_or_none(User, id=user_id) # selected user if user: users_set.append(user) return users_set
def ajaxSelRowIndexToSession(request): if 'client_request' in request.POST: # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('ajaxSelRowIndexToSession:', err.args) s = 'ajaxSelRowIndexToSession: %s %s %s' % err.args return HttpResponseBadRequest(s) browTabName = d.get('browTabName') parent_id = d.get('parent_id') # Формуємо дані для зберігання в сесії: selElement = {} selElement['model'] = d.get('model') selElement['id'] = d.get('id') selElement['selRowIndex'] = d.get('selRowIndex') # Записуємо в сесію: setSelElementToSession(request.session, browTabName=browTabName, parent_id=parent_id, selElement=selElement) # Посилаємо відповідь клієнту: response_dict = {'server_response': selElement} # return JsonResponse(response_dict) # дає помилку в pythonanywhere.com return HttpResponse(json.dumps(response_dict), content_type="application/json") else: return HttpResponseBadRequest("ajaxSelRowIndexToSession: " "No 'client_request' in request.POST")
def test_parseClientRequest_if_no_model(self): kwargs = { 'browTabName' :'users_table', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data expected = { 'browTabName' :'users_table', } self.assertEqual(parseClientRequest(request.POST), expected)
def test_parseClientRequest_if_no_model(self): kwargs = { 'browTabName': 'users_table', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data expected = { 'browTabName': 'users_table', } self.assertEqual(parseClientRequest(request.POST), expected)
def test_parseClientRequest(self): kwargs = { 'browTabName': 'users_table', 'parent_id': None, 'sendMail': None, 'selRowIndex': '0', 'model': 'user', 'id': '1', 'name': 'fred', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data expected = kwargs self.assertEqual(parseClientRequest(request.POST), expected)
def test_parseClientRequest(self): kwargs = { 'browTabName' :'users_table', 'parent_id' :None, 'sendMail' :None, 'selRowIndex' :'0', 'model' :'user', 'id' :'1', 'name' :'fred', } ajax_data = DummyAjaxRequest(**kwargs).ajax_data() request = self.client.request() request.POST = ajax_data expected = kwargs self.assertEqual(parseClientRequest(request.POST), expected)
def get_request_data(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data:', err.args) return None, None self.sendMail = d.get('sendMail') user_id = d.get('id') # id of selected user if d.get('model') == "user": user = get_or_none(User, id=user_id) # selected user profile = get_or_none(UserProfile, user=user) # profile return user, profile else: return None, None
def test_function_return_HttpResponse_2(self): json_s = '{"browTabName":"folders_contents","parent_id":"1","selRowIndex":"0"}' request = self.client.request() request.POST = {'client_request': json_s} expected = { 'sendMail': None, 'id': None, 'name': None, 'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0', 'model': None } expected = { 'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0' } self.assertEqual(parseClientRequest(request.POST), expected) request.session = { 'Selections': { "folders_contents": { "1": { 'model': "folder", 'id': "1", 'selRowIndex': "2", }, }, }, } response = ajaxStartRowIndexFromSession(request) self.assertTrue(isinstance(response, HttpResponse)) # Чи ф-ція повертає правильний response? expected = [ b'{"server_response": {"id": "1", "selRowIndex": "2", "model": "folder"}}' ] self.assertEqual(json.loads(response._container[0].decode()), json.loads(expected[0].decode())) expected = {'content-type': ('Content-Type', 'application/json')} self.assertEqual(response._headers, expected)
def ajaxSearchElementsInBase(request): if 'client_request' in request.POST: # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('ajaxSearchElementsInBase:', err.args) return HttpResponse() search_val = d.get('search_val') print('search_val =', search_val) # Шукаємо : search_results_HTML = search_in_folders(search_val) # Посилаємо відповідь клієнту: response_dict = {'server_response': search_results_HTML } print('response_dict =', response_dict) # return JsonResponse(response_dict) return HttpResponse(json.dumps(response_dict), content_type="application/json") else: print("There is no 'client_request' in request.POST") return HttpResponse()
def get_request_data(self, request, rqst): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data:', err.args) return None, None rqst = get_namespace_from_dict(d, rqst) # rqst.parent_id = d.get('parent_id') # rqst.model = d.get('model') # rqst.id = d.get('id') # rqst.name = d.get('name') # rqst.target_id = d.get('target_id') if rqst.model == "folder": element = Folder.objects.get(id=rqst.id) elif rqst.model == "report": element = Report.objects.get(id=rqst.id) else: return None, None if not element: rqst = None return element, rqst
def ajaxStartRowIndexFromSession(request): if 'client_request' in request.POST: # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('ajaxStartRowIndexFromSession:', err) s = 'ajaxStartRowIndexFromSession: %s %s %s' % err.args return HttpResponseBadRequest(s) browTabName = d.get('browTabName') parent_id = d.get('parent_id') # Беремо з сесії масив параметрів виділеного елемента # для даної таблиці і для даного parent_id (якщо є): selElement = getSelElementFromSession(request.session, browTabName=browTabName, parent_id=parent_id) # Посилаємо відповідь клієнту: response_dict = {'server_response': selElement } # return JsonResponse(response_dict) # дає помилку в pythonanywhere.com return HttpResponse(json.dumps(response_dict), content_type="application/json") else: return HttpResponseBadRequest("ajaxStartRowIndexFromSession: " "No 'client_request' in request.POST")