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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
# (C) Copyright 2004-2023 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
""" General regression tests for various fixed bugs.
"""
from subprocess import check_output, STDOUT
import sys
import unittest
from traits.api import DelegatesTo, Event, HasTraits, Instance, Undefined
from traitsui.api import Editor, TextEditor
from traitsui.tests._tools import (
BaseTestMixin,
)
class Parent(HasTraits):
button = Event()
class Child(HasTraits):
parent = Instance(Parent)
button = DelegatesTo("parent")
class TestRegression(BaseTestMixin, unittest.TestCase):
def setUp(self):
BaseTestMixin.setUp(self)
def tearDown(self):
BaseTestMixin.tearDown(self)
def test_editor_on_delegates_to_event(self):
"""Make sure that DelegatesTo on Events passes Editor creation."""
child = Child(parent=Parent())
editor = Editor(
None, factory=TextEditor(), object=child, name="button"
)
self.assertIs(editor.old_value, Undefined)
def test_attribute_error(self):
"""Make sure genuine AttributeErrors raise on Editor creation."""
self.assertRaises(
AttributeError,
Editor,
None,
factory=TextEditor(),
object=Parent(),
name="not_a_trait",
)
def test_importing_view_does_not_import_toolkit(self):
output = check_output(
[sys.executable, "-c",
"import sys; from traitsui.view import View;"
"print(list(sys.modules.keys()))"],
stderr=STDOUT
)
output = output.decode('ascii')
self.assertFalse('QtCore' in output)
|