def test_complete_curve_with_filtering(self, uri): start_date_keyword = "start_date" end_date_keyword = "end_date" earlier_than_start_date = self.date_strings[1] start_date_string = self.date_strings[2] end_date_string = self.date_strings[3] query_params = { to_camel_case(start_date_keyword): start_date_string, to_camel_case(end_date_keyword): end_date_string, } response = self.client.get(uri + "?" + urlencode(query_params), ) response_data = response.data date_strings_in_response = [ row["dt"] for row in response_data["results"] ] self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertNotIn(earlier_than_start_date, date_strings_in_response) self.assertIn(start_date_string, date_strings_in_response) self.assertIn(end_date_string, date_strings_in_response)
def _parse_sub_responses(self, response_proto, subrequests_list, response_proto_dict): self.log.debug('Parsing sub RPC responses...') response_proto_dict['responses'] = {} list_len = len(subrequests_list) - 1 i = 0 for subresponse in response_proto.responses: #self.log.debug( self.decode_raw(subresponse) ) if i > list_len: self.log.info("Error - something strange happend...") request_entry = subrequests_list[i] if isinstance(request_entry, int): entry_id = request_entry else: entry_id = request_entry.items()[0][0] entry_name = RpcEnum.RequestMethod.Name(entry_id) proto_name = to_camel_case(entry_name.lower()) + 'Response' proto_classname = 'pogom.pgoapi.protos.RpcSub_pb2.' + proto_name subresponse_return = None try: subresponse_extension = get_class(proto_classname)() except Exception as e: subresponse_extension = None error = 'Protobuf definition for {} not found'.format( proto_classname) subresponse_return = error self.log.debug(error) if subresponse_extension: try: subresponse_extension.ParseFromString(subresponse) subresponse_return = protobuf_to_dict( subresponse_extension) except: error = "Protobuf definition for {} seems not to match".format( proto_classname) subresponse_return = error self.log.debug(error) response_proto_dict['responses'][entry_name] = subresponse_return i += 1 return response_proto_dict
def _parse_sub_responses(self, response_proto, subrequests_list, response_proto_dict): self.log.debug('Parsing sub RPC responses...') response_proto_dict['responses'] = {} list_len = len(subrequests_list) -1 i = 0 for subresponse in response_proto.responses: #self.log.debug( self.decode_raw(subresponse) ) if i > list_len: self.log.info("Error - something strange happend...") request_entry = subrequests_list[i] if isinstance(request_entry, int): entry_id = request_entry else: entry_id = request_entry.items()[0][0] entry_name = RpcEnum.RequestMethod.Name(entry_id) proto_name = to_camel_case(entry_name.lower()) + 'Response' proto_classname = 'pogom.pgoapi.protos.RpcSub_pb2.' + proto_name subresponse_return = None try: subresponse_extension = get_class(proto_classname)() except Exception as e: subresponse_extension = None error = 'Protobuf definition for {} not found'.format(proto_classname) subresponse_return = error self.log.debug(error) if subresponse_extension: try: subresponse_extension.ParseFromString(subresponse) subresponse_return = protobuf_to_dict(subresponse_extension) except: error = "Protobuf definition for {} seems not to match".format(proto_classname) subresponse_return = error self.log.debug(error) response_proto_dict['responses'][entry_name] = subresponse_return i += 1 return response_proto_dict
def _build_sub_requests(self, mainrequest, subrequest_list): self.log.debug('Generating sub RPC requests...') for entry in subrequest_list: if isinstance(entry, dict): entry_id = entry.items()[0][0] entry_content = entry[entry_id] entry_name = RpcEnum.RequestMethod.Name(entry_id) proto_name = to_camel_case(entry_name.lower()) + 'Request' proto_classname = 'pogom.pgoapi.protos.RpcSub_pb2.' + proto_name subrequest_extension = get_class(proto_classname)() for (key, value) in entry_content.items(): # if isinstance(value, list): # for i in value: # r = getattr(subrequest_extension, key) # setattr(r, key, value) # else: try: setattr(subrequest_extension, key, value) except Exception as e: self.log.info( 'Argument %s with value %s unknown inside %s', key, value, proto_name) subrequest = mainrequest.requests.add() subrequest.type = entry_id subrequest.parameters = subrequest_extension.SerializeToString( ) elif isinstance(entry, int): subrequest = mainrequest.requests.add() subrequest.type = entry else: raise Exception('Unknown value in request list') return mainrequest
def _build_sub_requests(self, mainrequest, subrequest_list): self.log.debug('Generating sub RPC requests...') for entry in subrequest_list: if isinstance(entry, dict): entry_id = entry.items()[0][0] entry_content = entry[entry_id] entry_name = RpcEnum.RequestMethod.Name(entry_id) proto_name = to_camel_case(entry_name.lower()) + 'Request' proto_classname = 'pogom.pgoapi.protos.RpcSub_pb2.' + proto_name subrequest_extension = get_class(proto_classname)() for (key, value) in entry_content.items(): # if isinstance(value, list): # for i in value: # r = getattr(subrequest_extension, key) # setattr(r, key, value) # else: try: setattr(subrequest_extension, key, value) except Exception as e: self.log.info('Argument %s with value %s unknown inside %s', key, value, proto_name) subrequest = mainrequest.requests.add() subrequest.type = entry_id subrequest.parameters = subrequest_extension.SerializeToString() elif isinstance(entry, int): subrequest = mainrequest.requests.add() subrequest.type = entry else: raise Exception('Unknown value in request list') return mainrequest