# Copyright (c) Alibaba, Inc. and its affiliates.
import os
import shutil
import tempfile
import unittest
from collections import OrderedDict

from modelscope.exporters import Exporter
from modelscope.models import Model
from modelscope.utils.constant import Tasks
from modelscope.utils.test_utils import test_level


@unittest.skip('For torch bug: https://github.com/pytorch/pytorch/pull/99658')
class TestExportStableDiffusion(unittest.TestCase):

    def setUp(self):
        print(('Testing %s.%s' % (type(self).__name__, self._testMethodName)))
        self.tmp_dir = tempfile.TemporaryDirectory().name
        if not os.path.exists(self.tmp_dir):
            os.makedirs(self.tmp_dir)
        self.model_id = 'AI-ModelScope/stable-diffusion-v1-5'

    @unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
    def test_export_stable_diffusion(self):
        model = Model.from_pretrained(self.model_id)
        Exporter.from_model(model).export_onnx(
            output_path=self.tmp_dir, opset=14)


if __name__ == '__main__':
    unittest.main()
