Skip to content

Update Gabon holidays#3317

Merged
arkid15r merged 2 commits intovacanza:devfrom
KJhellico:upd-gabon
Mar 8, 2026
Merged

Update Gabon holidays#3317
arkid15r merged 2 commits intovacanza:devfrom
KJhellico:upd-gabon

Conversation

@KJhellico
Copy link
Copy Markdown
Collaborator

Proposed change

Update Gabon holidays (add historical and new holidays).

Type of change

  • New country/market holidays support (thank you!)
  • Supported country/market holidays update (calendar discrepancy fix, localization)
  • Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
  • Dependency update (version deprecation/pin/upgrade)
  • Bugfix (non-breaking change which fixes an issue)
  • Breaking change (a code change causing existing functionality to break)
  • New feature (new holidays functionality in general)

Checklist

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 7, 2026

Summary by CodeRabbit

  • New Features

    • Added Renovation Day, Youth Day, Easter Sunday, Whit Sunday and Whit Monday, and Liberation Day to Gabon's public holiday calendar.
  • Bug Fixes

    • Corrected Independence Day handling across historical ranges and consolidated overlapping holiday entries.
    • Extended confirmed Islamic holiday coverage through 2025.
  • Localization

    • Updated English and French translations for the new and renamed Gabon holidays.

Walkthrough

Adds StaticHolidays support to Gabon, introduces GabonStaticHolidays with year-specific public holidays (2024–2025), restructures holiday population (new Renovation Day, Easter Sunday, Youth Day, Whit Sunday/Monday, Liberation Day, conditional Independence variants), extends Islamic confirmed-year ranges, and updates locales, tests, and snapshots.

Changes

Cohort / File(s) Summary
Core implementation
holidays/countries/gabon.py
Adds StaticHolidays mixin and calls its initializer with new GabonStaticHolidays; introduces year-specific special_public_holidays and public_holiday label; reworks holiday population logic and extends Islamic confirmed-year ranges to 2025.
Localization
holidays/locale/en_US/LC_MESSAGES/GA.po, holidays/locale/fr/LC_MESSAGES/GA.po
Adds translations and PO header updates for Renovation Day, Easter Sunday, Youth Day, Whit Sunday, Whit Monday, Liberation Day, and a generic "Public holiday" label; updates revision metadata.
Tests & snapshots
tests/countries/test_gabon.py, snapshots/countries/GA_COMMON.json
Replaces Women's Rights Day test with Renovation Day; adds tests for Easter Sunday, Youth Day, Independence variants, Liberation Day, Whit Sunday/Monday; updates expected localizations and expands GA snapshot holiday entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • arkid15r
  • PPsyrius
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 4.55% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update Gabon holidays' clearly and directly summarizes the main change: updates to Gabon's holiday definitions, including both new and historical holidays.
Description check ✅ Passed The description directly relates to the changeset, specifying that Gabon holidays are being updated with historical and new holidays, which matches the code changes across multiple files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (3a0efc1) to head (cd9816a).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff            @@
##               dev     #3317   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          308       308           
  Lines        18483     18499   +16     
  Branches      2369      2374    +5     
=========================================
+ Hits         18483     18499   +16     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Mar 7, 2026

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/countries/test_gabon.py (1)

156-166: ⚠️ Potential issue | 🟠 Major

Use the non-estimated Eid helper for the explicit dates too.

These two tests still spot-check the default holiday set with assertHolidayName(...), then switch to assertIslamicNoEstimatedHolidayName(...) for the range assertion. That mixes two different fixtures for the same Gabon Eid data and can miss regressions in the exact years you’re pinning here. Use assertIslamicNoEstimatedHolidayName(...) for the concrete dates as well.

Patch
     def test_eid_al_fitr(self):
         name = "Fin du Ramadan"
-        self.assertHolidayName(
+        self.assertIslamicNoEstimatedHolidayName(
             name,
             "2021-05-13",
             "2022-05-02",
             "2023-04-21",
             "2024-04-10",
             "2025-03-30",
         )
         self.assertIslamicNoEstimatedHolidayName(name, self.full_range)

     def test_eid_al_adha(self):
         name = "Fête du sacrifice"
-        self.assertHolidayName(
+        self.assertIslamicNoEstimatedHolidayName(
             name,
             "2021-07-20",
             "2022-07-09",
             "2023-06-28",
             "2024-06-16",
             "2025-06-06",
         )
         self.assertIslamicNoEstimatedHolidayName(name, self.full_range)
Based on learnings: For Gabon's holiday implementation (tests/countries/test_gabon.py), all Islamic holiday dates are currently estimates. Therefore, the correct test pattern is to use assertIslamicNoEstimatedHolidayName for both specific known dates and the full range.

Also applies to: 168-178

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/countries/test_gabon.py` around lines 156 - 166, In
tests/countries/test_gabon.py, replace the use of assertHolidayName for the
explicit Eid dates with assertIslamicNoEstimatedHolidayName so both the
spot-checked dates and the full-range check use the non-estimated Islamic
helper; update the calls in test_eid_al_fitr (the explicit date assertions
currently calling assertHolidayName) and the similar block around the other Eid
test (the second block noted) to call assertIslamicNoEstimatedHolidayName with
the same date list and range variables.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@tests/countries/test_gabon.py`:
- Around line 156-166: In tests/countries/test_gabon.py, replace the use of
assertHolidayName for the explicit Eid dates with
assertIslamicNoEstimatedHolidayName so both the spot-checked dates and the
full-range check use the non-estimated Islamic helper; update the calls in
test_eid_al_fitr (the explicit date assertions currently calling
assertHolidayName) and the similar block around the other Eid test (the second
block noted) to call assertIslamicNoEstimatedHolidayName with the same date list
and range variables.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4d4da33e-eff2-4af6-9c34-7eb1992c8b73

📥 Commits

Reviewing files that changed from the base of the PR and between b29fb64 and cd9816a.

📒 Files selected for processing (1)
  • tests/countries/test_gabon.py

Copy link
Copy Markdown
Collaborator

@PPsyrius PPsyrius left a comment

Choose a reason for hiding this comment

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

LGTM 🇬🇦

@arkid15r arkid15r added this pull request to the merge queue Mar 8, 2026
Copy link
Copy Markdown
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

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

👍

Merged via the queue into vacanza:dev with commit 7415163 Mar 8, 2026
32 checks passed
@KJhellico KJhellico deleted the upd-gabon branch March 8, 2026 23:33
@arkid15r arkid15r mentioned this pull request Mar 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants