NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

mock_gateway.py (2689B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\freelanceprojects\client\contributionmethods\mock\mock_gateway.py
      2 from eveProto.generated.eve_public.freelance.contributionmethod.definition.api.requests_pb2 import GetAllLatestRequest, GetAllLatestWithinMajorRequest
      3 from freelanceprojects.client.contributionmethods.mock.data import definitions as mock_definitions
      4 from six.moves.http_client import OK, NOT_MODIFIED, NOT_FOUND, INTERNAL_SERVER_ERROR
      5 from logging import getLogger
      6 from mock import Mock
      7 logger = getLogger('freelance_projects')
      8 
      9 class MockContributionMethodsGateway(object):
     10 
     11     def send_blocking_character_request_and_receive_response(self, request_payload, expected_response_class, timeout_seconds, max_attempts, retry_delay_in_seconds):
     12         if isinstance(request_payload, GetAllLatestRequest):
     13             latest_definitions = mock_definitions.MOCK_DEFINITIONS_1_0_1
     14             status_code = OK
     15             response_primitive, response_payload = self._create_response(expected_response_class, latest_definitions, status_code)
     16             self._notify_of_mock_use()
     17             return (response_primitive, response_payload)
     18         if isinstance(request_payload, GetAllLatestWithinMajorRequest):
     19             latest_definitions_by_major = {0: mock_definitions.MOCK_DEFINITIONS_0_0_1,
     20              1: mock_definitions.MOCK_DEFINITIONS_1_0_1}
     21             status_code = OK
     22             latest_definitions = latest_definitions_by_major[request_payload.major]
     23             response_primitive, response_payload = self._create_response(expected_response_class, latest_definitions, status_code)
     24             self._notify_of_mock_use()
     25             return (response_primitive, response_payload)
     26         raise NotImplementedError('Attempted to use MockContributionMethodsGateway for request that has not been mocked: %s' % request_payload)
     27 
     28     def _notify_of_mock_use(self):
     29         from player_messaging.client.ui_message import message_player
     30         message_player('Using mocked data for Contribution Methods')
     31         logger.info('Using mocked data for Contribution Methods')
     32 
     33     def _create_response(self, response_class, definitions, status_code):
     34         response_primitive = Mock()
     35         response_primitive.status_code = status_code
     36         if status_code == OK:
     37             version_proto, definition_protos = definitions.to_proto(proto_definition_class=response_class.Definition)
     38             response_payload = response_class(version=version_proto)
     39             response_payload.definitions.extend(definition_protos)
     40         else:
     41             response_payload = response_class()
     42         return (response_primitive, response_payload)