Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

`test_curses` regression in 3.16.0a1: `test_newterm` fails on a real terminal that's not 80x25

已关闭 适合新手
#159,394 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
72/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
python
领域
testing

调研方向

失败的检查是 Lib/test/test_curses.py 中 test_newterm(约第 3336 行)里的 self.assertEqual(win.getmaxyx(), (24, 80)),它假设终端大小为 80x25。在不同大小的真实终端中运行 python -m test test_curses -v 进行复现,并与 CI 中的运行结果对比。完成的标准是:该测试不再依赖宿主终端的尺寸,并且仍然检查它本应检查的内容。

由索引模型根据 Issue 内容生成。

描述

tests topic-curses type-bug
Bug report

The test seems to be written with the wrong assumption that curses will always evaluate the terminal size to 80x25, which fails when tests are run on a real terminal rather than GHA:

======================================================================
FAIL: test_newterm (test.test_curses.ScreenTests.test_newterm)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/tmp/portage/dev-lang/python-3.16.0_alpha1/work/Python-3.16.0a1/Lib/test/test_curses.py", line 3336, in test_newterm
    self.assertEqual(win.getmaxyx(), (24, 80))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Tuples differ: (24, 135) != (24, 80)

First differing element 1:
135
80

- (24, 135)
+ (24, 80)

----------------------------------------------------------------------
Ran 189 tests in 4.068s

FAILED (failures=1, skipped=4)
CPython versions tested on:

3.16

Operating systems tested on:

Linux

主要语言
Python
星标
77.6k
派生
38.4k
平均合并
1 天 5 小时
30 天内合并 PR
555

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

python/cpython 的其他 Issue

查看 python/cpython 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。