Exemple #1
0
    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)
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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