Exemplo n.º 1
0
    def _GetJob(self, for_login=False):

        job = ClientNetworking.NetworkJobHydrus(MOCK_HYDRUS_SERVICE_KEY, 'GET',
                                                MOCK_HYDRUS_URL)

        job.SetForLogin(for_login)

        mock_controller = TestConstants.MockController()

        mock_service = ClientServices.GenerateService(MOCK_HYDRUS_SERVICE_KEY,
                                                      HC.TAG_REPOSITORY,
                                                      'test tag repo')

        mock_services_manager = TestConstants.MockServicesManager(
            (mock_service, ))

        mock_controller.services_manager = mock_services_manager

        bandwidth_manager = ClientNetworking.NetworkBandwidthManager()
        session_manager = ClientNetworking.NetworkSessionManager()
        domain_manager = ClientNetworkingDomain.NetworkDomainManager()
        login_manager = ClientNetworkingLogin.NetworkLoginManager()

        engine = ClientNetworking.NetworkEngine(mock_controller,
                                                bandwidth_manager,
                                                session_manager,
                                                domain_manager, login_manager)

        job.engine = engine

        return job
Exemplo n.º 2
0
    def Start(self, engine, network_context):

        service_key = network_context.context_data

        service = engine.controller.services_manager.GetService(service_key)

        base_url = service.GetBaseURL()

        url = base_url + 'session_key'

        access_key = service.GetCredentials().GetAccessKey()

        network_job = ClientNetworking.NetworkJobHydrus(
            service_key, 'GET', url)

        network_job.SetForLogin(True)

        network_job.AddAdditionalHeader('Hydrus-Key', access_key.encode('hex'))

        engine.AddJob(network_job)

        try:

            network_job.WaitUntilDone()

            session = engine.session_manager.GetSession(network_context)

            if self._IsLoggedIn(session):

                HydrusData.Print('Successfully logged into ' +
                                 service.GetName() + '.')

            else:

                service.DelayFutureRequests(
                    'Could not log in for unknown reason.')

        except Exception as e:

            e_string = str(e)

            service.DelayFutureRequests(e_string)