Skip to content

Commit

Permalink
Fixed Argentina's "Malvinas Day" date for 2020
Browse files Browse the repository at this point in the history
This holiday was shifted to March 31st because of the coronavirus crisis

refs #476
  • Loading branch information
brunobord committed Apr 3, 2020
1 parent e8f0aa0 commit 720fc37
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 28 deletions.
2 changes: 1 addition & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## master (unreleased)

Nothing here yet.
- Fixed Argentina's "Malvinas Day" date for 2020, shifted to March 31st because of the coronavirus crisis (#476).

## v8.2.1 (2020-04-03)

Expand Down
71 changes: 45 additions & 26 deletions workalendar/america/argentina.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,13 @@ class Argentina(WesternCalendar, ChristianMixin):

FIXED_HOLIDAYS = WesternCalendar.FIXED_HOLIDAYS + (
(3, 24, "Día de la Memoria"),
(4, 2, "Día de las Malvinas"),
(5, 1, "Día del Trabajador"),
(5, 25, "Día de la Revolución de Mayo"),
(6, 20, "Día Paso a la Inmortalidad del General Manuel Belgrano"),
(7, 9, "Día de la Independencia"),
(12, 8, "Día de la Inmaculada Concepción de María"),
)

def get_variable_days(self, year):

days = super().get_variable_days(year)
days.append(
(self.get_easter_sunday(year) - timedelta(days=48),
"Carnival Lunes"))

days.append(
(self.get_easter_sunday(year) - timedelta(days=47),
"Carnival"))

days.append(
(self.get_general_guemes_day(year)))

days.append(
(self.get_general_martin_day(year)))

days.append(
(self.get_soberania_day(year)))

days.append(
(self.get_diversidad_day(year)))

return days

def get_general_guemes_day(self, year):
"""
Día Paso a la Inmortalidad del General Martín Miguel de Güemes.
Expand Down Expand Up @@ -131,3 +105,48 @@ def get_diversidad_day(self, year):

return (diversidad_day,
"Día del Respeto a la Diversidad Cultural")

def get_malvinas_day(self, year):
"""
Día de las Malvinas
In honour of the Veterans and the Fallen of the Malvinas war.
https://en.wikipedia.org/wiki/Malvinas_Day
In 2020, it was shifted to March 31st because of
the coronavirus crisis.
"""
label = "Día de las Malvinas"
if year == 2020:
day = date(year, 3, 31)
else:
day = date(year, 4, 2)
return (day, label)

def get_variable_days(self, year):

days = super().get_variable_days(year)
days.append(
(self.get_easter_sunday(year) - timedelta(days=48),
"Carnival Lunes"))

days.append(
(self.get_easter_sunday(year) - timedelta(days=47),
"Carnival"))

days.append(
self.get_malvinas_day(year))

days.append(
(self.get_general_guemes_day(year)))

days.append(
(self.get_general_martin_day(year)))

days.append(
(self.get_soberania_day(year)))

days.append(
(self.get_diversidad_day(year)))

return days
7 changes: 6 additions & 1 deletion workalendar/tests/test_america.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,12 @@ def test_holidays_2020(self):
self.assertIn(date(2020, 2, 24), holidays)
self.assertIn(date(2020, 2, 25), holidays)
self.assertIn(date(2020, 3, 24), holidays)
self.assertIn(date(2020, 4, 2), holidays)
# Special case: Argentina has shifted this holiday due to
# Coronavirus lockdown in 2020.
self.assertNotIn(date(2020, 4, 2), holidays)
self.assertIn(date(2020, 3, 31), holidays)

# Back to normal, I hope...
self.assertIn(date(2020, 4, 10), holidays)
self.assertIn(date(2020, 5, 1), holidays)
self.assertIn(date(2020, 5, 25), holidays)
Expand Down

0 comments on commit 720fc37

Please sign in to comment.