17db96d56Sopenharmony_ciimport unittest
27db96d56Sopenharmony_cifrom test import support
37db96d56Sopenharmony_cifrom test.support import import_helper
47db96d56Sopenharmony_cifrom test.support import check_sanitizer
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ciif check_sanitizer(address=True, memory=True):
77db96d56Sopenharmony_ci    raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds")
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci# Skip this test if _tkinter wasn't built.
107db96d56Sopenharmony_ciimport_helper.import_module('_tkinter')
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci# Skip test if tk cannot be initialized.
137db96d56Sopenharmony_cisupport.requires('gui')
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciimport tkinter
167db96d56Sopenharmony_cifrom _tkinter import TclError
177db96d56Sopenharmony_cifrom tkinter import ttk
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_cidef setUpModule():
217db96d56Sopenharmony_ci    root = None
227db96d56Sopenharmony_ci    try:
237db96d56Sopenharmony_ci        root = tkinter.Tk()
247db96d56Sopenharmony_ci        button = ttk.Button(root)
257db96d56Sopenharmony_ci        button.destroy()
267db96d56Sopenharmony_ci        del button
277db96d56Sopenharmony_ci    except TclError as msg:
287db96d56Sopenharmony_ci        # assuming ttk is not available
297db96d56Sopenharmony_ci        raise unittest.SkipTest("ttk not available: %s" % msg)
307db96d56Sopenharmony_ci    finally:
317db96d56Sopenharmony_ci        if root is not None:
327db96d56Sopenharmony_ci            root.destroy()
337db96d56Sopenharmony_ci        del root
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_cidef load_tests(loader, tests, pattern):
367db96d56Sopenharmony_ci    return loader.discover('tkinter.test.test_ttk')
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ciif __name__ == '__main__':
407db96d56Sopenharmony_ci    unittest.main()
41