summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2018-10-30 11:22:42 (GMT)
committerGitHub <noreply@github.com>2018-10-30 11:22:42 (GMT)
commitb232df9197a19e78d0e2a751e56e0e62547354ec (patch)
tree851cc39c2b33019a4c88cf828349eccdcb892b7f /Lib
parent3e429dcc242e48fa4cbb1a91cf7c416c37b97b4e (diff)
downloadcpython-b232df9197a19e78d0e2a751e56e0e62547354ec.zip
cpython-b232df9197a19e78d0e2a751e56e0e62547354ec.tar.gz
cpython-b232df9197a19e78d0e2a751e56e0e62547354ec.tar.bz2
bpo-31680: Add curses.ncurses_version. (GH-4217)
Use curses.ncurses_version for conditionally skipping a test.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_curses.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 3b442fe..09738c8 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -368,9 +368,8 @@ class TestCurses(unittest.TestCase):
self.stdscr.getkey()
@requires_curses_func('unget_wch')
- # XXX Remove the decorator when ncurses on OpenBSD be updated
- @unittest.skipIf(sys.platform.startswith("openbsd"),
- "OpenBSD's curses (v.5.7) has bugs")
+ @unittest.skipIf(getattr(curses, 'ncurses_version', (99,)) < (5, 8),
+ "unget_wch is broken in ncurses 5.7 and earlier")
def test_unget_wch(self):
stdscr = self.stdscr
encoding = stdscr.encoding
@@ -456,6 +455,23 @@ class MiscTests(unittest.TestCase):
# can be called.
curses.update_lines_cols()
+ @requires_curses_func('ncurses_version')
+ def test_ncurses_version(self):
+ v = curses.ncurses_version
+ self.assertIsInstance(v[:], tuple)
+ self.assertEqual(len(v), 3)
+ self.assertIsInstance(v[0], int)
+ self.assertIsInstance(v[1], int)
+ self.assertIsInstance(v[2], int)
+ self.assertIsInstance(v.major, int)
+ self.assertIsInstance(v.minor, int)
+ self.assertIsInstance(v.patch, int)
+ self.assertEqual(v[0], v.major)
+ self.assertEqual(v[1], v.minor)
+ self.assertEqual(v[2], v.patch)
+ self.assertGreaterEqual(v.major, 0)
+ self.assertGreaterEqual(v.minor, 0)
+ self.assertGreaterEqual(v.patch, 0)
class TestAscii(unittest.TestCase):