mirror of
https://github.com/python/cpython.git
synced 2025-10-19 07:53:46 +00:00
gh-124111: test macOS CI with Tk 9 (#137424)
Co-authored-by: Ned Deily <nad@python.org>
This commit is contained in:
parent
be60e4b4f3
commit
9c1279d5de
3 changed files with 82 additions and 26 deletions
4
.github/workflows/reusable-macos.yml
vendored
4
.github/workflows/reusable-macos.yml
vendored
|
@ -43,9 +43,9 @@ jobs:
|
|||
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
|
||||
- name: Install Homebrew dependencies
|
||||
run: |
|
||||
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8 make
|
||||
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@9 make
|
||||
# Because alternate versions are not symlinked into place by default:
|
||||
brew link --overwrite tcl-tk@8
|
||||
brew link --overwrite tcl-tk@9
|
||||
- name: Configure CPython
|
||||
run: |
|
||||
MACOSX_DEPLOYMENT_TARGET=10.15 \
|
||||
|
|
|
@ -315,7 +315,10 @@ def test_configure_direction(self):
|
|||
|
||||
def test_configure_height(self):
|
||||
widget = self.create()
|
||||
self.checkIntegerParam(widget, 'height', 100, -100, 0, conv=str)
|
||||
if tk_version < (9, 0):
|
||||
self.checkIntegerParam(widget, 'height', 100, -100, 0, conv=str)
|
||||
else:
|
||||
self.checkIntegerParam(widget, 'height', 0, -100, 0)
|
||||
|
||||
def test_configure_image(self):
|
||||
widget = self.create()
|
||||
|
@ -342,7 +345,10 @@ def test_configure_menu(self):
|
|||
|
||||
def test_configure_width(self):
|
||||
widget = self.create()
|
||||
self.checkIntegerParam(widget, 'width', 402, -402, 0, conv=str)
|
||||
if tk_version < (9, 0):
|
||||
self.checkIntegerParam(widget, 'width', 402, -402, 0, conv=str)
|
||||
else:
|
||||
self.checkIntegerParam(widget, 'width', 402, 0, 0)
|
||||
|
||||
|
||||
class OptionMenuTest(MenubuttonTest, unittest.TestCase):
|
||||
|
@ -391,8 +397,12 @@ def test_configure_disabledbackground(self):
|
|||
|
||||
def test_configure_insertborderwidth(self):
|
||||
widget = self.create(insertwidth=100)
|
||||
self.checkPixelsParam(widget, 'insertborderwidth',
|
||||
0, 1.3, 2.6, 6, '10p')
|
||||
if tk_version < (9, 0):
|
||||
self.checkPixelsParam(widget, 'insertborderwidth',
|
||||
0, 1.3, 2.6, 6, '10p')
|
||||
else:
|
||||
self.checkPixelsParam(widget, 'insertborderwidth',
|
||||
0, 1.3, 3, 6, '10p')
|
||||
self.checkParam(widget, 'insertborderwidth', -2)
|
||||
# insertborderwidth is bounded above by a half of insertwidth.
|
||||
expected = 100 // 2 if tk_version < (9, 0) else 60
|
||||
|
@ -551,11 +561,22 @@ def test_configure_values(self):
|
|||
# XXX
|
||||
widget = self.create()
|
||||
self.assertEqual(widget['values'], '')
|
||||
self.checkParam(widget, 'values', 'mon tue wed thur')
|
||||
if tk_version < (9, 0):
|
||||
expected = 'mon tue wed thur'
|
||||
else:
|
||||
expected = ('mon', 'tue', 'wed', 'thur')
|
||||
self.checkParam(widget, 'values', 'mon tue wed thur',
|
||||
expected=expected)
|
||||
self.checkParam(widget, 'values', ('mon', 'tue', 'wed', 'thur'),
|
||||
expected='mon tue wed thur')
|
||||
expected=expected)
|
||||
|
||||
if tk_version < (9, 0):
|
||||
expected = '42 3.14 {} {any string}'
|
||||
else:
|
||||
expected = (42, 3.14, '', 'any string')
|
||||
self.checkParam(widget, 'values', (42, 3.14, '', 'any string'),
|
||||
expected='42 3.14 {} {any string}')
|
||||
expected=expected)
|
||||
|
||||
self.checkParam(widget, 'values', '')
|
||||
|
||||
def test_configure_wrap(self):
|
||||
|
@ -649,10 +670,9 @@ def test_configure_endline(self):
|
|||
def test_configure_height(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'height', 100, 101.2, 102.6, '3c')
|
||||
self.checkParam(widget, 'height', -100,
|
||||
expected=1 if tk_version < (9, 0) else -100)
|
||||
self.checkParam(widget, 'height', 0,
|
||||
expected=1 if tk_version < (9, 0) else 0 )
|
||||
expected = 1 if tk_version < (9, 0) else 0
|
||||
self.checkParam(widget, 'height', -100, expected=expected)
|
||||
self.checkParam(widget, 'height', 0, expected=expected)
|
||||
|
||||
def test_configure_maxundo(self):
|
||||
widget = self.create()
|
||||
|
@ -670,8 +690,9 @@ def test_configure_insertunfocussed(self):
|
|||
|
||||
def test_configure_selectborderwidth(self):
|
||||
widget = self.create()
|
||||
value = -2 if tk_version < (9, 0) else 0
|
||||
self.checkPixelsParam(widget, 'selectborderwidth',
|
||||
1.3, 2.6, -2, '10p', conv=False)
|
||||
1.3, 2.6, value, '10p', conv=False)
|
||||
|
||||
def test_configure_spacing1(self):
|
||||
widget = self.create()
|
||||
|
|
|
@ -247,7 +247,11 @@ def test_configure_borderwidth(self):
|
|||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'borderwidth',
|
||||
0, 1.3, 2.6, 6, '10p')
|
||||
self.checkParam(widget, 'borderwidth', -2)
|
||||
if tk_version < (9, 0):
|
||||
self.checkParam(widget, 'borderwidth', -2)
|
||||
else:
|
||||
self.checkParam(widget, 'borderwidth', 0)
|
||||
|
||||
if 'bd' in self.OPTIONS:
|
||||
self.checkPixelsParam(widget, 'bd', 0, 1.3, 2.6, 6, '10p')
|
||||
self.checkParam(widget, 'bd', -2, expected=expected)
|
||||
|
@ -260,27 +264,46 @@ def test_configure_highlightthickness(self):
|
|||
|
||||
def test_configure_insertborderwidth(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'insertborderwidth',
|
||||
0, 1.3, 2.6, 6, '10p')
|
||||
self.checkParam(widget, 'insertborderwidth', -2)
|
||||
if tk_version < (9, 0):
|
||||
values = (0, 1.3, 2.6, 6, -2, '10p')
|
||||
value = -2
|
||||
else:
|
||||
values = (0, 1, 3, 6, 13)
|
||||
value = 0
|
||||
self.checkPixelsParam(widget, 'insertborderwidth', *values)
|
||||
self.checkParam(widget, 'insertborderwidth', value)
|
||||
|
||||
def test_configure_insertwidth(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'insertwidth', 1.3, 2.6, -2, '10p')
|
||||
if tk_version < (9, 0):
|
||||
self.checkPixelsParam(widget, 'insertwidth', 1.3, 2.6, -2, '10p')
|
||||
else:
|
||||
self.checkPixelsParam(widget, 'insertwidth', 1, 3, 0, 13)
|
||||
|
||||
def test_configure_padx(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'padx', 3, 4.4, 5.6, '12m')
|
||||
self.checkParam(widget, 'padx', -2)
|
||||
if tk_version < (9, 0):
|
||||
self.checkParam(widget, 'padx', -2)
|
||||
else:
|
||||
self.checkParam(widget, 'padx', 0)
|
||||
|
||||
def test_configure_pady(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'pady', 3, 4.4, 5.6, '12m')
|
||||
self.checkParam(widget, 'pady', -2)
|
||||
if tk_version < (9, 0):
|
||||
self.checkParam(widget, 'pady', -2)
|
||||
else:
|
||||
self.checkParam(widget, 'pady', 0)
|
||||
|
||||
def test_configure_selectborderwidth(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'selectborderwidth', 1.3, 2.6, -2, '10p')
|
||||
if tk_version < (9, 0):
|
||||
values = (1.3, 2.6, -2, '10p')
|
||||
else:
|
||||
values = (1, 3, 0, 13)
|
||||
self.checkPixelsParam(widget, 'selectborderwidth', *values)
|
||||
|
||||
|
||||
class StandardOptionsTests(PixelOptionsTests):
|
||||
|
||||
|
@ -546,22 +569,34 @@ class IntegerSizeTests:
|
|||
""" Tests widgets which only accept integral width and height."""
|
||||
def test_configure_height(self):
|
||||
widget = self.create()
|
||||
self.checkIntegerParam(widget, 'height', 100, -100, 0)
|
||||
if tk_version < (9, 0):
|
||||
self.checkIntegerParam(widget, 'height', 100, -100, 0)
|
||||
else:
|
||||
self.checkIntegerParam(widget, 'height', 100, 0, 0)
|
||||
|
||||
def test_configure_width(self):
|
||||
widget = self.create()
|
||||
self.checkIntegerParam(widget, 'width', 402, -402, 0)
|
||||
if tk_version < (9, 0):
|
||||
self.checkIntegerParam(widget, 'width', 402, -402, 0)
|
||||
else:
|
||||
self.checkIntegerParam(widget, 'width', 402, 0, 0)
|
||||
|
||||
|
||||
class PixelSizeTests:
|
||||
""" Tests widgets which accept screen distances for width and height."""
|
||||
def test_configure_height(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'height', 100, 101.2, 102.6, -100, 0, '3c')
|
||||
value = -100 if tk_version < (9, 0) else 0
|
||||
self.checkPixelsParam(
|
||||
widget, 'height', 100, 101.2, 102.6, value, 0, '3c'
|
||||
)
|
||||
|
||||
def test_configure_width(self):
|
||||
widget = self.create()
|
||||
self.checkPixelsParam(widget, 'width', 402, 403.4, 404.6, -402, 0, '5i')
|
||||
value = -402 if tk_version < (9, 0) else 0
|
||||
self.checkPixelsParam(
|
||||
widget, 'width', 402, 403.4, 404.6, value, 0, '5i'
|
||||
)
|
||||
|
||||
|
||||
def add_configure_tests(*source_classes):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue