forked from pytorch/pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_lazy_import.py
37 lines (27 loc) · 1.09 KB
/
test_lazy_import.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Owner(s): ["module: onnx"]
import subprocess
import sys
import tempfile
import pytorch_test_common
from torch.testing._internal import common_utils
class TestLazyONNXPackages(pytorch_test_common.ExportTestCase):
def _test_package_is_lazily_imported(self, pkg, torch_pkg="torch.onnx"):
with tempfile.TemporaryDirectory() as wd:
r = subprocess.run(
[sys.executable, "-Ximporttime", "-c", "import torch.onnx"],
capture_output=True,
text=True,
cwd=wd,
check=True,
)
# The extra space makes sure we're checking the package, not any package containing its name.
self.assertTrue(
f" {pkg}" not in r.stderr,
f"`{pkg}` should not be imported, full importtime: {r.stderr}",
)
def test_onnxruntime_is_lazily_imported(self):
self._test_package_is_lazily_imported("onnxruntime")
def test_onnxscript_is_lazily_imported(self):
self._test_package_is_lazily_imported("onnxscript")
if __name__ == "__main__":
common_utils.run_tests()