diff --git a/tests/test_backends.py b/tests/test_backends.py index 1be00e6d22..60600ace6e 100644 --- a/tests/test_backends.py +++ b/tests/test_backends.py @@ -1,11 +1,15 @@ +import importlib import platform +import shutil import sys +from pathlib import Path import numpy as np import pytest +import qibojit from qibo import construct_backend, gates, list_available_backends, set_backend -from qibo.backends import MetaBackend +from qibo.backends import GlobalBackend, MetaBackend, get_backend ####################### Test `matrix` ####################### GATES = [ @@ -112,6 +116,32 @@ def test_construct_backend(backend): ) +@pytest.fixture +def uninstall_qibojit(): + p = Path(qibojit.__file__).parent + modules = list(sys.modules.keys()) + for mod in modules: + if mod.startswith("qibojit"): + del sys.modules[mod] + + # avoid using directly cwd since it would still in the PYTHONPATH + tdir = Path.cwd() / "tmp" + tdir.mkdir() + shutil.move(p, tdir) + yield + shutil.move(tdir / p.name, p) + tdir.rmdir() + importlib.import_module("qibojit") + + +def test_default_backend(uninstall_qibojit): + """Reproducing https://github.com/qiboteam/qibo/issues/1424.""" + # reset global backend + GlobalBackend._instance = None + # attempt loading + default_backend = get_backend() + + def test_list_available_backends(): tensorflow = False if platform.system() == "Windows" else True qulacs = (