Example #1
0
 def test_hardware_backend2(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(QiskitBackendError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         email = '*****@*****.**'
         secret = 'secret'
         quantum_inpire_provider.set_basic_authentication(email, secret)
         authentication = BasicAuthentication(email, secret)
         api.assert_called_with(QI_URL, authentication, None)
         quantum_inpire_provider._api.get_backend_types.return_value = [
             self.hardware_backend_type2
         ]
         backend = quantum_inpire_provider.get_backend(name='qi_hardware')
         self.assertEqual('qi_hardware', backend.name())
         self.assertEqual(backend.configuration().coupling_map,
                          [[0, 1], [1, 0]])
         self.assertFalse(backend.configuration().simulator)
         self.assertEqual(2, backend.configuration().n_qubits)
         self.assertTrue(backend.configuration().memory)
         self.assertEqual(4096, backend.configuration().max_shots)
         self.assertEqual(1, backend.configuration().max_experiments)
         self.assertFalse(backend.configuration().conditional)
         self.assertEqual(backend.configuration().basis_gates, [
             'rx', 'ry', 'rz', 'x', 'y', 'z', 'h', 'id', 't', 'tdg', 's',
             'sdg', 'cz', 'cx', 'swap', 'ccx', 'u1', 'u2', 'u3'
         ])
Example #2
0
    def test_get_authentication_basic_stdin(self):
        email = os.environ.get('QI_EMAIL', None)
        if email is not None:
            os.environ.pop('QI_EMAIL')
        email = '*****@*****.**'
        secret_password = '******'

        # somehow mocking getpass.getpass is not enough for different OS
        with patch("builtins.open", mock_open()) as mock_file, \
                patch("builtins.input") as mock_input, \
                patch("builtins.print") as mock_print, \
                patch("getpass.getpass") as mock_getpass, \
                patch("getpass.win_getpass") as mock_win_getpass, \
                patch("sys.stdin") as mock_sys_stdin, \
                patch("getpass.unix_getpass") as mock_unix_getpass, \
                patch("os.open", side_effect = OSError('foo')), \
                patch("sys.stdin.fileno", side_effect=ValueError('foo')), \
                patch("getpass._raw_input") as mock_raw_input, \
                patch("quantuminspire.credentials.load_account") as mock_load_account, \
                patch("warnings.warn") as mock_warn:
            mock_load_account.return_value = None
            mock_input.return_value = email
            mock_getpass.return_value = secret_password
            mock_raw_input.return_value = secret_password
            mock_win_getpass.return_value = secret_password
            mock_unix_getpass.return_value = secret_password
            auth = get_authentication()
            auth_expected = BasicAuthentication(email, secret_password)
            self.assertEqual(auth, auth_expected)
 def test_hardware_backend(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(ApiError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         email = '*****@*****.**'
         secret = 'secret'
         quantum_inpire_provider.set_basic_authentication(email, secret)
         authentication = BasicAuthentication(email, secret)
         api.assert_called_with(QI_URL, authentication)
         quantum_inpire_provider._api.get_backend_types.return_value = [
             self.hardware_backend_type
         ]
         backend = quantum_inpire_provider.get_backend(name='qi_hardware')
         self.assertEqual('qi_hardware', backend.name())
         self.assertEqual(backend.configuration().coupling_map, [(0, 2),
                                                                 (1, 2),
                                                                 (2, 0),
                                                                 (2, 1),
                                                                 (2, 3),
                                                                 (2, 4),
                                                                 (3, 2),
                                                                 (4, 2)])
         self.assertFalse(backend.configuration().simulator)
         self.assertEqual(5, backend.configuration().n_qubits)
         self.assertTrue(backend.configuration().memory)
         self.assertEqual(2048, backend.configuration().max_shots)
         self.assertEqual(1, backend.configuration().max_experiments)
         self.assertFalse(backend.configuration().conditional)
         self.assertEqual(backend.configuration().basis_gates,
                          ['rx', 'rz', 'x', 's', 'z', 'h', 'tdg', 'cz'])
Example #4
0
def get_basic_authentication(email: str, password: str) -> BasicAuthentication:
    """Set up basic authentication for Quantum Inspire to be used in the API.

    :param email: a valid email address.
    :param password: password for the account.

    :return:
        The basic authentication for Quantum Inspire.
    """
    return BasicAuthentication(email, password)
Example #5
0
    def test_get_authentication_basic(self):
        email = '*****@*****.**'
        secret_password = '******'
        with patch("builtins.open", mock_open()) as mock_file, \
                patch("quantuminspire.credentials.load_account") as mock_load_account, \
                patch.dict('os.environ', values={'QI_EMAIL': email, 'QI_PASSWORD': secret_password}):

            mock_load_account.return_value = None
            auth = get_authentication()
            auth_expected = BasicAuthentication(email, secret_password)
            self.assertEqual(auth, auth_expected)
Example #6
0
def get_basic_authentication(email: str, password: str) -> BasicAuthentication:
    """ Set up basic authentication for Quantum Inspire to be used in the API.

    Args
        email: A valid email address.
        password: Password for the account.

    Returns:
        The basic authentication for Quantunm Inspire.
    """
    return BasicAuthentication(email, password)
Example #7
0
 def test_set_authentication(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(QiskitBackendError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         token = 'This_is_a_nice_looking_token'
         authentication = TokenAuthentication(token, scheme="token")
         quantum_inpire_provider.set_authentication(authentication)
         api.assert_called_with(QI_URL, authentication, None)
         authentication = BasicAuthentication('email', 'password')
         quantum_inpire_provider.set_authentication(authentication)
         api.assert_called_with(QI_URL, authentication, None)
Example #8
0
 def test_set_basic_authentication_with_url(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         api.get_backend_types.return_value = [self.simulator_backend_type]
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(QiskitBackendError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         email = '*****@*****.**'
         secret = 'secret'
         url = 'https/some-api.api'
         quantum_inpire_provider.set_basic_authentication(
             email, secret, url)
         authentication = BasicAuthentication(email, secret)
         api.assert_called_with(url, authentication, None)
Example #9
0
 def test_set_basic_authentication(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(QiskitBackendError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         email = '*****@*****.**'
         secret = 'secret'
         quantum_inpire_provider.set_basic_authentication(email, secret)
         authentication = BasicAuthentication(email, secret)
         api.assert_called_with(QI_URL, authentication, None)
         quantum_inpire_provider._api.get_backend_types.return_value = [
             self.simulator_backend_type
         ]
         backend = quantum_inpire_provider.get_backend(name='qi_simulator')
         self.assertEqual('qi_simulator', backend.name())
Example #10
0
 def test_backends(self):
     with mock.patch(
             'quantuminspire.qiskit.quantum_inspire_provider.QuantumInspireAPI'
     ) as api:
         quantum_inpire_provider = QuantumInspireProvider()
         with self.assertRaises(ApiError):
             quantum_inpire_provider.backends(name='quantum-inspire')
         email = '*****@*****.**'
         secret = 'secret'
         quantum_inpire_provider.set_basic_authentication(email, secret)
         authentication = BasicAuthentication(email, secret)
         api.assert_called_with(QI_URL, authentication)
         quantum_inpire_provider._api.get_backend_types.return_value = [{
             'name':
             'qi_simulator',
             'is_allowed':
             True
         }]
         backend = quantum_inpire_provider.get_backend(name='qi_simulator')
         self.assertEqual('qi_simulator', backend.name())
         with self.assertRaises(QiskitBackendNotFoundError) as error:
             quantum_inpire_provider.get_backend(name='not-quantum-inspire')
         self.assertEqual(('No backend matches the criteria', ),
                          error.exception.args)
Example #11
0
 def test_get_basic_authentication(self):
     email = '*****@*****.**'
     secret_password = '******'
     auth = get_basic_authentication(email, secret_password)
     auth_expected = BasicAuthentication(email, secret_password)
     self.assertEqual(auth, auth_expected)
Example #12
0
    for event in d:
        event['scroll'] = scroll_id
        print(event)
        try:
            client.action(schema, ['events', 'create'],
                          params=event)
        except Exception as e:
            print(e)
        finally:
            pass

#   create(scroll, title, text, datetime, image, [mediatype],
#   [source_url], [source_date], [content_url])
#   print('var oldRadioNews =', json.dumps(d, sort_keys=True, indent=4), ";\n")

if __name__ == "__main__":
    auth = BasicAuthentication(
        username='******',
        password='******'
    )
    client = Client(auth=auth)
    print(client)
    schema = client.get('http://127.0.0.1:8000/schema')
    print(schema)
    new_scroll = client.action(schema, ['api', '0', 'scrolls', 'create'],
                               params={"title": "WWII Radio News"})
    scroll_d = dict(new_scroll)
    scroll_url = "http://127.0.0.1:8000/scrolls/{}/".format(scroll_d['id'])
    print(scroll_url)
    main(client, scroll_url)