Migrate D-H countries to new test case standards#3088
Conversation
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings. WalkthroughRenames a few test methods, adds many new country-specific holiday tests, and refactors 40+ test files to replace hard-coded year ranges with dynamic properties (self.full_range, self.start_year, self.end_year), adjust setUpClass calls, and adopt new assertion helpers and observed/non-observed patterns. Changes
Note: cohort entries group the primary affected files; many other country test files in the raw summary follow the same dynamic-range/observed-pattern refactor. Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes
Files/areas to focus review on:
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (2)
🧰 Additional context used🧠 Learnings (57)📓 Common learnings📚 Learning: 2025-04-05T04:47:27.213ZApplied to files:
📚 Learning: 2025-11-08T05:09:56.159ZApplied to files:
📚 Learning: 2025-09-18T03:19:23.722ZApplied to files:
📚 Learning: 2025-05-06T21:07:11.577ZApplied to files:
📚 Learning: 2025-09-17T09:07:56.459ZApplied to files:
📚 Learning: 2025-09-20T12:21:50.877ZApplied to files:
📚 Learning: 2025-09-10T16:17:30.428ZApplied to files:
📚 Learning: 2025-09-17T09:07:56.459ZApplied to files:
📚 Learning: 2025-09-02T08:02:03.604ZApplied to files:
📚 Learning: 2025-05-09T18:36:09.607ZApplied to files:
📚 Learning: 2025-11-08T04:57:36.307ZApplied to files:
📚 Learning: 2025-10-28T17:26:45.090ZApplied to files:
📚 Learning: 2025-11-08T04:57:50.267ZApplied to files:
📚 Learning: 2025-04-23T09:59:19.886ZApplied to files:
📚 Learning: 2025-07-24T15:21:31.632ZApplied to files:
📚 Learning: 2025-09-28T05:42:12.777ZApplied to files:
📚 Learning: 2025-09-04T08:55:09.796ZApplied to files:
📚 Learning: 2025-09-14T17:17:14.387ZApplied to files:
📚 Learning: 2025-11-28T02:24:17.404ZApplied to files:
📚 Learning: 2025-10-21T09:59:18.714ZApplied to files:
📚 Learning: 2025-10-28T17:02:23.997ZApplied to files:
📚 Learning: 2025-08-08T10:33:55.695ZApplied to files:
📚 Learning: 2025-08-24T11:55:06.810ZApplied to files:
📚 Learning: 2025-06-14T20:13:29.536ZApplied to files:
📚 Learning: 2025-07-17T11:07:04.986ZApplied to files:
📚 Learning: 2025-06-16T15:48:48.680ZApplied to files:
📚 Learning: 2025-08-03T12:59:53.286ZApplied to files:
📚 Learning: 2025-07-10T11:00:13.195ZApplied to files:
📚 Learning: 2025-04-05T04:50:40.752ZApplied to files:
📚 Learning: 2025-06-18T17:01:58.067ZApplied to files:
📚 Learning: 2025-04-05T04:29:38.042ZApplied to files:
📚 Learning: 2025-09-25T08:56:22.473ZApplied to files:
📚 Learning: 2025-06-18T17:01:58.067ZApplied to files:
📚 Learning: 2025-06-22T21:36:18.015ZApplied to files:
📚 Learning: 2025-09-10T21:12:39.614ZApplied to files:
📚 Learning: 2025-09-03T14:05:10.592ZApplied to files:
📚 Learning: 2025-09-14T16:05:55.205ZApplied to files:
📚 Learning: 2025-06-14T11:05:21.250ZApplied to files:
📚 Learning: 2025-09-14T16:03:13.558ZApplied to files:
📚 Learning: 2025-09-10T13:46:06.329ZApplied to files:
📚 Learning: 2025-09-10T13:39:34.625ZApplied to files:
📚 Learning: 2025-09-03T16:49:35.246ZApplied to files:
📚 Learning: 2025-04-05T06:49:06.217ZApplied to files:
📚 Learning: 2025-09-14T16:23:46.707ZApplied to files:
📚 Learning: 2025-09-03T18:29:09.398ZApplied to files:
📚 Learning: 2025-09-14T16:23:46.707ZApplied to files:
📚 Learning: 2025-07-09T21:16:35.145ZApplied to files:
📚 Learning: 2025-11-27T13:48:37.500ZApplied to files:
📚 Learning: 2025-06-18T10:07:58.780ZApplied to files:
📚 Learning: 2025-04-04T10:52:41.546ZApplied to files:
📚 Learning: 2025-08-25T04:28:02.061ZApplied to files:
📚 Learning: 2025-04-04T10:52:41.546ZApplied to files:
📚 Learning: 2025-09-14T04:41:10.139ZApplied to files:
📚 Learning: 2025-04-03T13:03:16.558ZApplied to files:
📚 Learning: 2025-08-30T12:52:58.539ZApplied to files:
📚 Learning: 2025-04-13T20:41:56.613ZApplied to files:
🧬 Code graph analysis (1)tests/countries/test_finland.py (2)
🪛 Ruff (0.14.6)tests/countries/test_finland.py240-240: Missing return type annotation for private function Add return type annotation: (ANN202) 254-254: Missing return type annotation for private function Add return type annotation: (ANN202) 257-257: Missing return type annotation for private function Add return type annotation: (ANN202) ⏰ Context from checks skipped due to timeout of 300000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
🔇 Additional comments (3)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #3088 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 306 306
Lines 18085 18085
Branches 2311 2311
=========================================
Hits 18085 18085 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
tests/countries/test_gambia.py (2)
68-76: Missing observed holiday assertion.Labour Day test lacks
self.assertNoNonObservedHoliday(obs_dt)after line 75, unlike other observed holidays (New Year's Day, Independence Day, Africa Liberation Day, etc.). Add the missing assertion for consistency.Apply this diff:
) self.assertHolidayName(f"{name} (observed)", obs_dt) + self.assertNoNonObservedHoliday(obs_dt)
153-168: Missing Islamic holiday full-range assertion.Laylat-Ul-Qadr test lacks
self.assertIslamicNoEstimatedHolidayName(name, self.full_range)for the base holiday, breaking the pattern used by Ashura, Mawlid Nabi, Eid al-Fitr, and Eid al-Adha. Add the missing assertion after line 162.Apply this diff:
"2024-04-06", "2025-03-27", ) + self.assertIslamicNoEstimatedHolidayName(name, self.full_range) obs_dt = (
|
You can already exclude Estonia considering #3089. ;) |
|



Proposed change
Migrate D-H countries to new test case standards
Part of #3065
Type of change
holidaysfunctionality in general)Checklist
make checklocally; all checks and tests passed.