pytorch/test/export/test_export_legacy.py
Tugsbayasgalan Manlaibaatar 825fe15024 EZ fix to make sure local pytest run succeeds in export (#144764)
Previously run_tests() was protected under IS_FBCODE flag so that following works:
```
python test/export/test_export_legacy.py
```

But it fails on:
```
pytest test/export/test_export_legacy.py
```

This is because pytest doesn't seem to get triggered through run_tests().

Differential Revision: [D68152737](https://our.internmc.facebook.com/intern/diff/D68152737)
Pull Request resolved: https://github.com/pytorch/pytorch/pull/144764
Approved by: https://github.com/avikchaudhuri
2025-01-15 00:43:40 +00:00

81 lines
2.1 KiB
Python

# Owner(s): ["oncall: export"]
import torch
try:
from . import test_export, testing
except ImportError:
import test_export # @manual=fbcode//caffe2/test:test_export-library
import testing # @manual=fbcode//caffe2/test:test_export-library
from torch.testing._internal.common_utils import IS_FBCODE
if IS_FBCODE:
from pyjk import PyPatchJustKnobs
test_classes = {}
def mocked_legacy_export(*args, **kwargs):
with PyPatchJustKnobs().patch(
"pytorch/export:export_training_ir_rollout_check", False
):
return torch.export._trace._export(*args, **kwargs, pre_dispatch=True)
def mocked_legacy_export_non_strict(*args, **kwargs):
with PyPatchJustKnobs().patch(
"pytorch/export:export_training_ir_rollout_check", False
):
if "strict" in kwargs:
return torch.export._trace._export(*args, **kwargs, pre_dispatch=True)
return torch.export._trace._export(
*args, **kwargs, pre_dispatch=True, strict=False
)
def make_dynamic_cls(cls, strict):
if strict:
test_class = testing.make_test_cls_with_mocked_export(
cls,
"LegacyExport",
test_export.LEGACY_EXPORT_STRICT_SUFFIX,
mocked_legacy_export,
xfail_prop="_expected_failure_legacy_export",
)
else:
test_class = testing.make_test_cls_with_mocked_export(
cls,
"LegacyExportNonStrict",
test_export.LEGACY_EXPORT_NONSTRICT_SUFFIX,
mocked_legacy_export_non_strict,
xfail_prop="_expected_failure_legacy_export_non_strict",
)
test_classes[test_class.__name__] = test_class
# REMOVING THIS LINE WILL STOP TESTS FROM RUNNING
globals()[test_class.__name__] = test_class
test_class.__module__ = __name__
return test_class
tests = [
test_export.TestDynamismExpression,
test_export.TestExport,
]
if IS_FBCODE:
for test in tests:
make_dynamic_cls(test, True)
make_dynamic_cls(test, False)
del test
if __name__ == "__main__":
from torch._dynamo.test_case import run_tests
if IS_FBCODE:
run_tests()