Exemplo n.º 1
0
    def test_register_backend_name_conflicts(self):
        """Test backend name conflicts when registering."""
        class SecondDummyProvider(DummyProvider):
            """
            Subclass the DummyProvider so register treats them as different."""
            pass

        dummy_provider = qiskit.wrapper.register(provider_class=DummyProvider)
        initial_providers = registered_providers()
        initial_backends = qiskit.wrapper.available_backends()
        dummy_backend = dummy_provider.get_backend('local_dummy_simulator')
        with self.assertLogs(level=logging.WARNING) as logs:
            second_dummy_provider = qiskit.wrapper.register(
                provider_class=SecondDummyProvider)

        # Check that one, and only one warning has been issued.
        self.assertEqual(len(logs.records), 1)
        # Check that the provider has been registered.
        self.assertCountEqual(initial_providers + [second_dummy_provider],
                              registered_providers())
        # Check that no new backends have been added.
        self.assertCountEqual(initial_backends,
                              qiskit.wrapper.available_backends())

        # Check the name of the backend still refers to the previous one.
        self.assertEqual(dummy_backend,
                         qiskit.wrapper.get_backend('local_dummy_simulator'))
Exemplo n.º 2
0
 def test_register_twice(self, QE_TOKEN, QE_URL, hub, group, project):
     """Test double registration of the same credentials."""
     qiskit.wrapper.register(QE_TOKEN, QE_URL, hub, group, project)
     initial_providers = registered_providers()
     with self.assertRaises(QISKitError):
         qiskit.wrapper.register(QE_TOKEN, QE_URL, hub, group, project)
     self.assertCountEqual(initial_providers, registered_providers())
Exemplo n.º 3
0
 def test_unregister_non_existent(self, QE_TOKEN, QE_URL):
     """Test unregistering a non existent provider."""
     initial_providers = registered_providers()
     ibmqprovider = IBMQProvider(QE_TOKEN, QE_URL)
     with self.assertRaises(QISKitError):
         qiskit.wrapper.unregister(ibmqprovider)
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 4
0
 def test_register_twice(self, QE_TOKEN, QE_URL):
     """Test double registration of the same credentials."""
     qiskit.wrapper.register(QE_TOKEN, QE_URL)
     initial_providers = registered_providers()
     # Registering twice should give warning and add no providers.
     qiskit.wrapper.register(QE_TOKEN, QE_URL)
     self.assertCountEqual(initial_providers, registered_providers())
Exemplo n.º 5
0
    def test_register_backend_name_conflicts(self, QE_TOKEN, QE_URL, hub,
                                             group, project):
        """Test backend name conflicts when registering."""

        qiskit.wrapper.register(QE_TOKEN,
                                QE_URL,
                                hub,
                                group,
                                project,
                                provider_name='provider1')
        initial_providers = registered_providers()
        initial_backends = qiskit.wrapper.available_backends()
        ibmqx4_backend = qiskit.wrapper.get_backend('ibmqx4')
        with self.assertLogs(level=logging.WARNING) as logs:
            qiskit.wrapper.register(QE_TOKEN,
                                    QE_URL,
                                    hub,
                                    group,
                                    project,
                                    provider_name='provider2')

        # Check that one, and only one warning has been issued.
        self.assertEqual(len(logs.records), 1)
        # Check that the provider has been registered.
        self.assertCountEqual(initial_providers + ['provider2'],
                              registered_providers())
        # Check that no new backends have been added.
        self.assertCountEqual(initial_backends,
                              qiskit.wrapper.available_backends())

        # Check the name of the backend still refers to the previous one.
        self.assertEqual(ibmqx4_backend, qiskit.wrapper.get_backend('ibmqx4'))
Exemplo n.º 6
0
    def test_register_twice(self, qe_token, qe_url):
        """Test double registration of the same credentials."""
        qiskit.wrapper.register(qe_token, qe_url)
        initial_providers = registered_providers()

        with self.assertRaises(QISKitError):
            qiskit.wrapper.register(qe_token, qe_url)
        self.assertCountEqual(initial_providers, registered_providers())
Exemplo n.º 7
0
 def test_unregister(self, QE_TOKEN, QE_URL):
     """Test unregistering."""
     initial_providers = registered_providers()
     ibmqprovider = qiskit.wrapper.register(QE_TOKEN, QE_URL)
     self.assertCountEqual(initial_providers + [ibmqprovider],
                           registered_providers())
     qiskit.wrapper.unregister(ibmqprovider)
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 8
0
 def test_unregister(self, qe_token, qe_url):
     """Test unregistering."""
     initial_providers = registered_providers()
     ibmqprovider = qiskit.wrapper.register(qe_token, qe_url)
     self.assertCountEqual(initial_providers + [ibmqprovider],
                           registered_providers())
     qiskit.wrapper.unregister(ibmqprovider)
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 9
0
    def test_register_twice(self, qe_token, qe_url):
        """Test double registration of the same credentials."""
        qiskit.wrapper.register(qe_token, qe_url)
        initial_providers = registered_providers()

        with self.assertWarns(Warning) as context_manager:
            qiskit.wrapper.register(qe_token, qe_url)

        self.assertEqual('Credentials are already in use.',
                         str(context_manager.warnings[-1].message))
        self.assertCountEqual(initial_providers, registered_providers())
Exemplo n.º 10
0
 def test_unregister(self, QE_TOKEN, QE_URL, hub, group, project):
     """Test unregistering."""
     initial_providers = registered_providers()
     qiskit.wrapper.register(QE_TOKEN,
                             QE_URL,
                             hub,
                             group,
                             project,
                             provider_name='provider1')
     self.assertCountEqual(initial_providers + ['provider1'],
                           registered_providers())
     qiskit.wrapper.unregister('provider1')
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 11
0
 def test_register_twice_with_different_names(self, QE_TOKEN, QE_URL, hub,
                                              group, project):
     """Test double registration of same credentials but different names."""
     initial_providers = registered_providers()
     qiskit.wrapper.register(QE_TOKEN,
                             QE_URL,
                             hub,
                             group,
                             project,
                             provider_name='provider1')
     qiskit.wrapper.register(QE_TOKEN,
                             QE_URL,
                             hub,
                             group,
                             project,
                             provider_name='provider2')
     self.assertCountEqual(initial_providers + ['provider1', 'provider2'],
                           registered_providers())
Exemplo n.º 12
0
 def test_register_bad_credentials(self):
     """Test registering a provider with bad credentials."""
     initial_providers = registered_providers()
     with self.assertRaises(QISKitError):
         qiskit.wrapper.register('FAKE_TOKEN', 'http://unknown')
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 13
0
 def test_register_unknown_name(self):
     """Test registering a provider with not explicit name."""
     initial_providers = registered_providers()
     with self.assertRaises(QISKitError):
         qiskit.wrapper.register('FAKE_TOKEN', 'http://unknown')
     self.assertEqual(initial_providers, registered_providers())
Exemplo n.º 14
0
 def test_unregister_non_existent(self):
     """Test unregistering a non existent provider."""
     initial_providers = registered_providers()
     with self.assertRaises(QISKitError):
         qiskit.wrapper.unregister('provider1')
     self.assertEqual(initial_providers, registered_providers())