def get_hgp(qe_token: str, qe_url: str, default: bool = True) -> HubGroupProject: """Return a HubGroupProject for the account. Args: qe_token: IBM Quantum token. qe_url: IBM Quantum auth URL. default: If `True`, the default open access hgp is returned. Otherwise, a non open access hgp is returned. Returns: A HubGroupProject, as specified by `default`. """ provider = IBMProvider(qe_token, url=qe_url) # Default hub/group/project. open_hgp = provider._get_hgp() # Open access hgp hgp_to_return = open_hgp if not default: # Get a non default hgp (i.e. not the default open access hgp). hgps = provider._get_hgps() for hgp in hgps: if hgp != open_hgp: hgp_to_return = hgp break return hgp_to_return
class TestIBMProviderHubGroupProject(IBMTestCase): """Tests for IBMProvider HubGroupProject related methods.""" @integration_test_setup() def setUp(self, dependencies: IntegrationTestDependencies) -> None: """Initial test setup.""" # pylint: disable=arguments-differ super().setUp() self.dependencies = dependencies self.provider = IBMProvider(token=dependencies.token, url=dependencies.url) def test_get_hgp(self): """Test get single hgp.""" hgp = self.provider._get_hgp() self.assertEqual(self.provider.backend._default_hgp, hgp) def test_get_hgps_with_filter(self): """Test get hgps with a filter.""" hgp = self.provider._get_hgps()[0] self.assertEqual(self.provider.backend._default_hgp, hgp) def test_get_hgps_no_filter(self): """Test get hgps without a filter.""" hgps = self.provider._get_hgps() self.assertIn(self.provider.backend._default_hgp, hgps) def test_active_account_instance(self): """Test active_account returns correct instance.""" hgp = self.provider._get_hgp() provider = IBMProvider( token=self.dependencies.token, url=self.dependencies.url, instance=hgp.name, ) self.assertEqual(hgp.name, provider.active_account()["instance"]) def test_active_account_with_saved_instance(self): """Test active_account with a saved instance.""" hgp = self.provider._get_hgp() name = "foo" with temporary_account_config_file(name=name, token=self.dependencies.token, instance=hgp.name): provider = IBMProvider(name=name) self.assertEqual(hgp.name, provider.active_account()["instance"])