Skip to content

Unmask test_strftime_special and test_zones in datetimetester - #7671

Merged
youknowone merged 1 commit into
RustPython:mainfrom
changjoon-park:unmask-datetime-stale-skips
Apr 24, 2026
Merged

youknowone merged 1 commit into
RustPython:mainfrom
changjoon-park:unmask-datetime-stale-skips

Conversation

@changjoon-park

Copy link
Copy Markdown
Contributor

All three @unittest.skip("TODO: RUSTPYTHON") markers in Lib/test/datetimetester.py are stale — the tests pass as written on current main.

Verification

Probed every assertion in each test body against both CPython 3.13.4 and RustPython on upstream/main. Outputs are byte-identical for:

  • test_strftime_special (datetime variant, line 3014) — all unicode passthrough cases: emoji (🐍), lone surrogates, surrogate pairs (🐍), null bytes, and embedded format codes (%c, %B).
  • test_strftime_special (time variant, line 3882) — same unicode passthrough with %I%p%Z and %X format codes.
  • test_zones (time FixedOffset, line 4363) — 11 assertions covering tzinfo, utcoffset(), tzname(), dst(), and hash equality across FixedOffset(-300, "EST", 1), FixedOffset(0, "UTC", -2), FixedOffset(60, "MET", 3).

Full suite after removal:

$ rustpython -m unittest test.test_datetime
...
Ran 1803 tests in 83.387s
OK (skipped=463)
  • 0 failures / 0 unexpected successes
  • 469 skipped → 463 skipped (6 inherited test-class runs now execute successfully — each of the three def lines is inherited by multiple subclasses in the test hierarchy)

Part of the skip-test inventory in #7611.

All three @unittest.skip("TODO: RUSTPYTHON") markers in
datetimetester.py are stale — the tests pass as written on current
main. Probed every assertion in each test body against both CPython
3.13.4 and RustPython: outputs are byte-identical for all unicode
passthrough cases (emoji, lone surrogates, surrogate pairs, null
bytes) in test_strftime_special and for all 11 FixedOffset
comparisons (utcoffset, tzname, dst, hash equality) in test_zones.

Full test.test_datetime run after unmasking: 1803 tests, 0 failures,
0 unexpected successes, 463 skipped (was 469 — 6 test-class inherited
runs now execute successfully).

Part of the skip-test inventory in RustPython#7611.
@coderabbitai

coderabbitai Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • Lib/test/datetimetester.py is excluded by !Lib/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 96082f0d-a579-46d7-b182-1714565d14d1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ShaharNaveh ShaharNaveh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥳

@youknowone
youknowone merged commit 952be48 into RustPython:main Apr 24, 2026
21 checks passed
@changjoon-park
changjoon-park deleted the unmask-datetime-stale-skips branch April 27, 2026 13:24
youknowone pushed a commit that referenced this pull request Sep 16, 2026
All three @unittest.skip("TODO: RUSTPYTHON") markers in
datetimetester.py are stale — the tests pass as written on current
main. Probed every assertion in each test body against both CPython
3.13.4 and RustPython: outputs are byte-identical for all unicode
passthrough cases (emoji, lone surrogates, surrogate pairs, null
bytes) in test_strftime_special and for all 11 FixedOffset
comparisons (utcoffset, tzname, dst, hash equality) in test_zones.

Full test.test_datetime run after unmasking: 1803 tests, 0 failures,
0 unexpected successes, 463 skipped (was 469 — 6 test-class inherited
runs now execute successfully).

Part of the skip-test inventory in #7611.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants