class TestIBMQFactoryProvider(IBMQTestCase): """Tests for IBMQFactory provider related methods.""" @requires_qe_access def _get_provider(self, qe_token=None, qe_url=None): """Return default provider.""" return self.factory.enable_account(qe_token, qe_url) def setUp(self): """Initial test setup.""" super().setUp() self.factory = IBMQFactory() self.provider = self._get_provider() self.credentials = self.provider.credentials def test_get_provider(self): """Test get single provider.""" provider = self.factory.get_provider(hub=self.credentials.hub, group=self.credentials.group, project=self.credentials.project) self.assertEqual(self.provider, provider) def test_providers_with_filter(self): """Test providers() with a filter.""" provider = self.factory.providers(hub=self.credentials.hub, group=self.credentials.group, project=self.credentials.project)[0] self.assertEqual(self.provider, provider) def test_providers_no_filter(self): """Test providers() without a filter.""" providers = self.factory.providers() self.assertIn(self.provider, providers)
def _wrapper(*args, **kwargs): ibmq_factory = IBMQFactory() qe_token = kwargs.pop('qe_token') qe_url = kwargs.pop('qe_url') provider = ibmq_factory.enable_account(qe_token, qe_url) if os.getenv('QE_HGP', None): hgp = os.getenv('QE_HGP').split('/') provider = ibmq_factory.get_provider(hub=hgp[0], group=hgp[1], project=hgp[2]) kwargs.update({'provider': provider}) return func(*args, **kwargs)
def _get_custom_provider(ibmq_factory: IBMQFactory) -> Optional[AccountProvider]: """Find the provider for the specific hub/group/project, if any. Args: ibmq_factory: IBMQFactory instance with account already loaded. Returns: Custom provider or ``None`` if default is to be used. """ hgp = os.getenv('QE_STAGING_HGP', None) if os.getenv('USE_STAGING_CREDENTIALS', '') else \ os.getenv('QE_HGP', None) if hgp: hgp = hgp.split('/') return ibmq_factory.get_provider(hub=hgp[0], group=hgp[1], project=hgp[2]) return None # No custom provider.
def _wrapper(obj, *args, **kwargs): stg_token = os.getenv('QE_STG_TOKEN') stg_url = os.getenv('QE_STG_URL') stg_hub = os.getenv('QE_STG_HUB') if not (stg_token and stg_url and stg_hub): raise SkipTest('Skipping staging tests') credentials = Credentials(stg_token, stg_url) obj.using_ibmq_credentials = credentials.is_ibmq() ibmq_factory = IBMQFactory() try: # Disable account in case one is already in use ibmq_factory.disable_account() except IBMQAccountError: pass ibmq_factory.enable_account(credentials.token, credentials.url) provider = ibmq_factory.get_provider(hub=stg_hub) kwargs.update({'provider': provider}) return func(obj, *args, **kwargs)