942 lines
31 KiB
Python
942 lines
31 KiB
Python
from datetime import date
|
|
from unittest import TestCase
|
|
|
|
from . import GenericCalendarTest
|
|
from ..america import (
|
|
Brazil, BrazilSaoPauloState,
|
|
BrazilAcre, BrazilAlagoas, BrazilAmapa, BrazilAmazonas, BrazilBahia,
|
|
BrazilCeara, BrazilDistritoFederal, BrazilEspiritoSanto, BrazilGoias,
|
|
BrazilMaranhao, BrazilMinasGerais, BrazilMatoGrosso, BrazilMatoGrossoDoSul,
|
|
BrazilPara, BrazilParaiba, BrazilPernambuco, BrazilPiaui, BrazilParana,
|
|
BrazilRioDeJaneiro, BrazilRioGrandeDoNorte, BrazilRioGrandeDoSul,
|
|
BrazilRondonia, BrazilRoraima, BrazilSantaCatarina, BrazilSergipe,
|
|
BrazilTocantins,
|
|
# Cities
|
|
BrazilSaoPauloCity, BrazilVitoriaCity, BrazilVilaVelhaCity,
|
|
BrazilCariacicaCity, BrazilGuarapariCity, BrazilSerraCity,
|
|
BrazilRioBrancoCity, BrazilMaceioCity, BrazilManausCity, BrazilMacapaCity,
|
|
BrazilSalvadorCity, BrazilFortalezaCity, BrazilGoianiaCity,
|
|
BrazilBeloHorizonteCity, BrazilCampoGrandeCity, BrazilCuiabaCity,
|
|
BrazilBelemCity, BrazilJoaoPessoaCity, BrazilRecifeCity,
|
|
BrazilTeresinaCity, BrazilCuritibaCity, BrazilNatalCity,
|
|
BrazilPortoVelhoCity, BrazilBoaVistaCity, BrazilPortoAlegreCity,
|
|
BrazilChapecoCity, BrazilFlorianopolisCity, BrazilJoinvilleCity,
|
|
BrazilAracajuCity, BrazilSorocabaCity, BrazilPalmasCity,
|
|
# Banks
|
|
BrazilBankCalendar,
|
|
)
|
|
from ..america.brazil import IBGE_REGISTER, IBGE_TUPLE
|
|
|
|
|
|
class BrazilTest(GenericCalendarTest):
|
|
cal_class = Brazil
|
|
|
|
def test_year_2013_federal(self):
|
|
holidays = self.cal.holidays_set(2013)
|
|
self.assertIn(date(2013, 1, 1), holidays) # new year
|
|
self.assertIn(date(2013, 4, 21), holidays) # Tiradentes
|
|
self.assertIn(date(2013, 5, 1), holidays) # Dia do trabalhador
|
|
self.assertIn(date(2013, 9, 7), holidays) # Dia da Independência
|
|
self.assertIn(date(2013, 10, 12), holidays) # Nossa Senhora Aparecida
|
|
self.assertIn(date(2013, 11, 2), holidays) # Finados
|
|
self.assertIn(date(2013, 11, 15), holidays) # Proclamação da República
|
|
self.assertIn(date(2013, 12, 25), holidays) # Natal
|
|
|
|
|
|
class BrazilAcreTest(BrazilTest):
|
|
cal_class = BrazilAcre
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 1, 23), holidays) # Dia do evangélico
|
|
self.assertIn(date(2017, 6, 15), holidays) # niversário do Acre
|
|
self.assertIn(date(2017, 9, 5), holidays) # Dia da Amazônia
|
|
# Assinatura do Tratado de Petrópolis
|
|
self.assertIn(date(2017, 11, 17), holidays)
|
|
# Início da Revolução Acreana
|
|
self.assertIn(date(2017, 8, 6), holidays)
|
|
|
|
|
|
class BrazilAlagoasTest(BrazilTest):
|
|
cal_class = BrazilAlagoas
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 6, 24), holidays) # São João
|
|
self.assertIn(date(2017, 6, 29), holidays) # São Pedro
|
|
# Emancipação política de Alagoas
|
|
self.assertIn(date(2017, 9, 16), holidays)
|
|
self.assertIn(date(2017, 11, 20), holidays) # Consciência Negra
|
|
|
|
|
|
class BrazilAmapaTest(BrazilTest):
|
|
cal_class = BrazilAmapa
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Dia de São José
|
|
sao_jose = date(2017, 3, 19)
|
|
self.assertIn(sao_jose, holidays)
|
|
# Check its label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(sao_jose), "Dia de São José")
|
|
|
|
self.assertIn(date(2017, 7, 25), holidays) # São Tiago
|
|
self.assertIn(date(2017, 10, 5), holidays) # Criação do estado
|
|
self.assertIn(date(2017, 11, 20), holidays) # Consciência Negra
|
|
self.assertIn(date(2017, 9, 13), holidays) # Aniversário da Amapá
|
|
|
|
|
|
class BrazilAmazonasTest(BrazilTest):
|
|
cal_class = BrazilAmazonas
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Elevação do Amazonas á categoria de província
|
|
self.assertIn(date(2017, 9, 5), holidays)
|
|
self.assertIn(date(2017, 11, 20), holidays) # Consciência Negra
|
|
# Dia de Nossa Senhora da Conceição
|
|
self.assertIn(date(2017, 12, 8), holidays)
|
|
|
|
|
|
class BrazilBahiaTest(BrazilTest):
|
|
cal_class = BrazilBahia
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 7, 2), holidays) # Independência da Bahia
|
|
|
|
|
|
class BrazilCearaTest(BrazilTest):
|
|
cal_class = BrazilCeara
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 3, 19), holidays) # São José
|
|
self.assertIn(date(2017, 3, 23), holidays) # Data Manga do Ceará
|
|
self.assertIn(date(2017, 3, 25), holidays) # Aniversário do Ceará
|
|
|
|
|
|
class BrazilDistritoFederalTest(BrazilTest):
|
|
cal_class = BrazilDistritoFederal
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 4, 21), holidays) # Fundação de Brasília
|
|
self.assertIn(date(2017, 11, 30), holidays) # Dia do Evangélico
|
|
|
|
|
|
class BrazilEspiritoSantoTest(BrazilTest):
|
|
cal_class = BrazilEspiritoSanto
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 10, 28), holidays) # Dia do Servidor Público
|
|
|
|
|
|
class BrazilGoiasTest(BrazilTest):
|
|
cal_class = BrazilGoias
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 10, 28), holidays) # Dia do Servidor Público
|
|
|
|
|
|
class BrazilMaranhaoTest(BrazilTest):
|
|
cal_class = BrazilMaranhao
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Adesão do Maranhão á independência do Brasil
|
|
self.assertIn(date(2017, 7, 28), holidays)
|
|
# Dia de Nossa Senhora da Conceição
|
|
self.assertIn(date(2017, 12, 8), holidays)
|
|
|
|
|
|
class BrazilMinasGeraisTest(BrazilTest):
|
|
cal_class = BrazilMinasGerais
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Aniversário de Minas Geraisl
|
|
self.assertIn(date(2017, 4, 21), holidays)
|
|
|
|
|
|
class BrazilMatoGrossoTest(BrazilTest):
|
|
cal_class = BrazilMatoGrosso
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 11, 29), holidays) # Consciência Negra
|
|
|
|
|
|
class BrazilMatoGrossoDoSulTest(BrazilTest):
|
|
cal_class = BrazilMatoGrossoDoSul
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 10, 11), holidays) # Criação do estado
|
|
|
|
|
|
class BrazilParaTest(BrazilTest):
|
|
cal_class = BrazilPara
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Adesão do Grão-Pará á independência do Brasil
|
|
self.assertIn(date(2017, 8, 15), holidays)
|
|
|
|
|
|
class BrazilParaibaTest(BrazilTest):
|
|
cal_class = BrazilParaiba
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 8, 5), holidays) # Fundação do Estado
|
|
# Homenagem à memória do ex-presidente João Pessoa
|
|
self.assertIn(date(2017, 7, 26), holidays)
|
|
|
|
|
|
class BrazilPernambucoTest(BrazilTest):
|
|
cal_class = BrazilPernambuco
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 6, 24), holidays) # São João
|
|
|
|
|
|
class BrazilPiauiTest(BrazilTest):
|
|
cal_class = BrazilPiaui
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Dia da Batalha do Jenipapo
|
|
self.assertIn(date(2017, 3, 13), holidays)
|
|
self.assertIn(date(2017, 10, 19), holidays) # Dia do Piauí
|
|
|
|
|
|
class BrazilParanaTest(BrazilTest):
|
|
cal_class = BrazilParana
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Aniversário do Paraná
|
|
self.assertIn(date(2017, 12, 19), holidays)
|
|
|
|
|
|
class BrazilRioDeJaneiroTest(BrazilTest):
|
|
cal_class = BrazilRioDeJaneiro
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 2, 28), holidays) # Carnaval
|
|
self.assertIn(date(2017, 4, 23), holidays) # Dia de São Jorge
|
|
self.assertIn(date(2017, 10, 16), holidays) # Dia do Comércio
|
|
# Dia do Funcionário Público
|
|
self.assertIn(date(2017, 10, 28), holidays)
|
|
# Dia da Consciência Negra
|
|
consciencia_negra = date(2017, 11, 20)
|
|
self.assertIn(consciencia_negra, holidays)
|
|
# check its label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(consciencia_negra),
|
|
"Dia da Consciência Negra",
|
|
)
|
|
|
|
# Dia de Nossa Senhora da Conceição
|
|
self.assertIn(date(2017, 12, 8), holidays)
|
|
|
|
def test_carnaval_label(self):
|
|
holidays = self.cal.holidays(2017)
|
|
holidays_dict = dict(holidays)
|
|
label_carnaval = holidays_dict[date(2017, 2, 28)]
|
|
self.assertEqual(label_carnaval, "Carnaval")
|
|
|
|
|
|
class BrazilRioGrandeDoNorteTest(BrazilTest):
|
|
cal_class = BrazilRioGrandeDoNorte
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Dua de São Pedro
|
|
sao_pedro = date(2017, 6, 29)
|
|
self.assertIn(sao_pedro, holidays)
|
|
# Check the label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(sao_pedro), "Dua de São Pedro"
|
|
)
|
|
# Mártires de Cunhaú e Uruaçuu
|
|
self.assertIn(date(2017, 10, 3), holidays)
|
|
|
|
|
|
class BrazilRioGrandeDoSulTest(BrazilTest):
|
|
cal_class = BrazilRioGrandeDoSul
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 9, 20), holidays) # Revolução Farroupilha
|
|
|
|
|
|
class BrazilRondoniaTest(BrazilTest):
|
|
cal_class = BrazilRondonia
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 1, 4), holidays) # Criação do estado
|
|
self.assertIn(date(2017, 6, 18), holidays) # Dia do Evangélico
|
|
|
|
|
|
class BrazilRoraimaTest(BrazilTest):
|
|
cal_class = BrazilRoraima
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 10, 5), holidays) # Criação de Roraima
|
|
|
|
|
|
class BrazilSantaCatarinaTest(BrazilTest):
|
|
cal_class = BrazilSantaCatarina
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Criação da capitania, separando-se de SP
|
|
self.assertIn(date(2017, 8, 11), holidays)
|
|
# Dia de Santa Catarina de Alexandria
|
|
self.assertIn(date(2017, 11, 25), holidays)
|
|
|
|
|
|
class SaoPauloStateTest(BrazilTest):
|
|
cal_class = BrazilSaoPauloState
|
|
|
|
def test_year_2013_state(self):
|
|
holidays = self.cal.holidays_set(2013)
|
|
# Revolução Constitucionalista de 1932
|
|
self.assertIn(date(2013, 7, 9), holidays)
|
|
# Revolução Constitucionalista de 1932
|
|
self.assertIn(date(2013, 7, 9), holidays)
|
|
|
|
|
|
class SaoPauloCityTest(SaoPauloStateTest):
|
|
cal_class = BrazilSaoPauloCity
|
|
|
|
def test_year_2013_city(self):
|
|
holidays = self.cal.holidays_set(2013)
|
|
# Aniversário da Cidade de São Paulo
|
|
self.assertIn(date(2013, 1, 25), holidays)
|
|
self.assertIn(date(2013, 2, 12), holidays) # Carnaval
|
|
# Dia da Consciência Negra
|
|
consciencia_negra = date(2013, 11, 20)
|
|
self.assertIn(consciencia_negra, holidays)
|
|
# check its label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(consciencia_negra),
|
|
"Dia da Consciência Negra",
|
|
)
|
|
self.assertIn(date(2013, 3, 31), holidays) # Páscoa
|
|
self.assertIn(date(2013, 5, 30), holidays) # Corpus Christi
|
|
|
|
# Variable day: Good Friday
|
|
good_friday = date(2013, 3, 29)
|
|
self.assertIn(good_friday, holidays) # Sexta-feira da Paixão
|
|
# Label test
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(good_friday),
|
|
"Sexta-feira da Paixão",
|
|
)
|
|
|
|
def test_carnaval_label(self):
|
|
holidays = self.cal.holidays(2013)
|
|
holidays_dict = dict(holidays)
|
|
label_carnaval = holidays_dict[date(2013, 2, 12)]
|
|
self.assertEqual(label_carnaval, "Carnaval")
|
|
|
|
|
|
class BrazilSergipeTest(BrazilTest):
|
|
cal_class = BrazilSergipe
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Autonomia política de Sergipe
|
|
self.assertIn(date(2017, 7, 8), holidays)
|
|
|
|
|
|
class BrazilTocantinsTest(BrazilTest):
|
|
cal_class = BrazilTocantins
|
|
|
|
def test_year_2017_state(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 1, 1), holidays) # Instalação de Tocantins
|
|
# Nossa Senhora da Natividade
|
|
self.assertIn(date(2017, 9, 8), holidays)
|
|
self.assertIn(date(2017, 10, 5), holidays) # Criação de Tocantins
|
|
# Autonomia do estado de Tocantins
|
|
self.assertIn(date(2017, 3, 18), holidays)
|
|
|
|
|
|
class BrazilVitoriaCityTest(BrazilEspiritoSantoTest):
|
|
"""
|
|
Vitória city is in the Espírito Santo state
|
|
"""
|
|
cal_class = BrazilVitoriaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
self.assertIn(date(2017, 4, 24), holidays) # Nossa Senhora da Penha
|
|
self.assertIn(date(2017, 9, 8), holidays) # Nossa Senhora da Vitória
|
|
|
|
# Variable days: Corpus Christie
|
|
corpus_christie = date(2017, 6, 15)
|
|
self.assertIn(corpus_christie, holidays)
|
|
|
|
# Variable days: Good friday
|
|
good_friday = date(2017, 4, 14)
|
|
self.assertIn(good_friday, holidays)
|
|
# Test label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(good_friday),
|
|
"Paixão do Cristo",
|
|
)
|
|
|
|
|
|
class BrazilVilaVelhaCityTest(BrazilEspiritoSantoTest):
|
|
"""
|
|
Vila Velha city is in the Espírito Santo state
|
|
"""
|
|
cal_class = BrazilVilaVelhaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Colonização do Solo Espírito-santense
|
|
self.assertIn(date(2017, 5, 23), holidays)
|
|
|
|
|
|
class BrazilCariacicaCityTest(BrazilEspiritoSantoTest):
|
|
"""
|
|
Cariacica city is in the Espírito Santo state
|
|
"""
|
|
cal_class = BrazilCariacicaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
self.assertIn(date(2017, 4, 13), holidays) # Nossa Senhora da Penha
|
|
# São João Batista / Aniversãrio de Cariacica
|
|
sao_joao = date(2017, 6, 24)
|
|
self.assertIn(sao_joao, holidays)
|
|
# Check São João label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(sao_joao),
|
|
"São João Batista / Aniversãrio de Cariacica"
|
|
)
|
|
|
|
# Variable days: Corpus Christie
|
|
corpus_christie = date(2017, 6, 15)
|
|
self.assertIn(corpus_christie, holidays)
|
|
|
|
# Variable days: Good friday
|
|
good_friday = date(2017, 4, 14)
|
|
self.assertIn(good_friday, holidays)
|
|
# Test label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(good_friday),
|
|
"Paixão do Cristo",
|
|
)
|
|
|
|
|
|
class BrazilGuarapariCityTest(BrazilEspiritoSantoTest):
|
|
"""
|
|
Guarapari city is in the Espírito Santo state
|
|
"""
|
|
cal_class = BrazilGuarapariCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 6, 29), holidays), # São Pedro
|
|
self.assertIn(date(2017, 9, 19), holidays), # Emancipação de Guarapari
|
|
self.assertIn(date(2017, 11, 29), holidays), # Consciência Negra
|
|
self.assertIn(date(2017, 12, 8), holidays), # Nossa Senhora Conceição
|
|
|
|
|
|
class BrazilSerraCityTest(BrazilEspiritoSantoTest):
|
|
"""
|
|
Serra city is in the Espírito Santo state
|
|
"""
|
|
cal_class = BrazilSerraCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
self.assertIn(date(2017, 6, 29), holidays) # São Pedro
|
|
self.assertIn(date(2017, 12, 8), holidays) # Nossa Senhora Conceição
|
|
self.assertIn(date(2017, 12, 26), holidays) # Dia do Serrano
|
|
|
|
# Variable days: Carnaval (Monday & Tuesday)
|
|
self.assertIn(date(2017, 2, 27), holidays) # Monday
|
|
self.assertIn(date(2017, 2, 28), holidays) # Tuesday
|
|
|
|
# Variable days: Ash Wednesday (Quarta-feira de cinzas)
|
|
ash_wednesday = date(2017, 3, 1)
|
|
self.assertIn(ash_wednesday, holidays)
|
|
# Test label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(ash_wednesday),
|
|
"Quarta-feira de cinzas",
|
|
)
|
|
|
|
# Variable days: Good Friday (Paixão de Cristo)
|
|
good_friday = date(2017, 4, 14)
|
|
self.assertIn(good_friday, holidays)
|
|
# Test label
|
|
self.assertEqual(
|
|
self.cal.get_holiday_label(good_friday),
|
|
"Paixão do Cristo",
|
|
)
|
|
|
|
def test_carnaval_label(self):
|
|
holidays = self.cal.holidays(2017)
|
|
holidays_dict = dict(holidays)
|
|
label_carnaval = holidays_dict[date(2017, 2, 28)]
|
|
self.assertEqual(label_carnaval, "Carnaval")
|
|
|
|
|
|
class BrazilRioBrancoCityTest(BrazilAcreTest):
|
|
"""
|
|
Rio Branco is in the Acre state
|
|
"""
|
|
cal_class = BrazilRioBrancoCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Rio Branco
|
|
self.assertIn(date(2017, 12, 28), holidays)
|
|
|
|
|
|
class BrazilMaceioCityTest(BrazilAlagoasTest):
|
|
"""
|
|
Maceió is in the Alagoas state
|
|
"""
|
|
cal_class = BrazilMaceioCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Maceió
|
|
self.assertIn(date(2017, 12, 5), holidays)
|
|
|
|
|
|
class BrazilManausCityTest(BrazilAmazonasTest):
|
|
"""
|
|
Manaus is in the Amazonas state
|
|
"""
|
|
cal_class = BrazilManausCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Manaus
|
|
self.assertIn(date(2017, 10, 24), holidays)
|
|
|
|
|
|
class BrazilMacapaCityTest(BrazilAmapaTest):
|
|
"""
|
|
Macapá is in the Amapá state
|
|
"""
|
|
cal_class = BrazilMacapaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Macapá
|
|
self.assertIn(date(2017, 2, 4), holidays)
|
|
|
|
|
|
class BrazilSalvadorCityTest(BrazilBahiaTest):
|
|
"""
|
|
Salvador is in the Bahia state
|
|
"""
|
|
cal_class = BrazilSalvadorCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Salvador
|
|
self.assertIn(date(2017, 3, 29), holidays)
|
|
|
|
|
|
class BrazilFortalezaCityTest(BrazilCearaTest):
|
|
"""
|
|
Fortaleza is in the Ceará state
|
|
"""
|
|
cal_class = BrazilFortalezaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Fortaleza
|
|
self.assertIn(date(2017, 4, 13), holidays)
|
|
|
|
|
|
class BrazilGoianiaCityTest(BrazilGoiasTest):
|
|
"""
|
|
Goiânia is in the Goiás state
|
|
"""
|
|
cal_class = BrazilGoianiaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Goiânia
|
|
self.assertIn(date(2017, 10, 24), holidays)
|
|
|
|
|
|
class BrazilBeloHorizonteCityTest(BrazilMinasGeraisTest):
|
|
"""
|
|
Belo Horizonte is in the Minas Gerais state
|
|
"""
|
|
cal_class = BrazilBeloHorizonteCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Belo Horizonte
|
|
self.assertIn(date(2017, 12, 12), holidays)
|
|
|
|
|
|
class BrazilCampoGrandeCityTest(BrazilMatoGrossoDoSulTest):
|
|
"""
|
|
Campo Grande is in the Mato Grosso do Sul state
|
|
"""
|
|
cal_class = BrazilCampoGrandeCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Campo Grande
|
|
self.assertIn(date(2017, 8, 26), holidays)
|
|
|
|
|
|
class BrazilCuiabaCityTest(BrazilMatoGrossoTest):
|
|
"""
|
|
Cuiabá is in the Mato Grosso state
|
|
"""
|
|
cal_class = BrazilCuiabaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Cuiabá
|
|
self.assertIn(date(2017, 4, 8), holidays)
|
|
|
|
|
|
class BrazilBelemCityTest(BrazilParaTest):
|
|
"""
|
|
Belém is in the Pará state
|
|
"""
|
|
cal_class = BrazilBelemCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Belém
|
|
self.assertIn(date(2017, 1, 12), holidays)
|
|
|
|
|
|
class BrazilJoaoPessoaCityTest(BrazilParaibaTest):
|
|
"""
|
|
João Pessoa is in the Paraíba state
|
|
"""
|
|
cal_class = BrazilJoaoPessoaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de João Pessoa
|
|
self.assertIn(date(2017, 8, 5), holidays)
|
|
|
|
|
|
class BrazilRecifeCityTest(BrazilPernambucoTest):
|
|
"""
|
|
Recife is in the Pernambuco state
|
|
"""
|
|
cal_class = BrazilRecifeCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Recife
|
|
self.assertIn(date(2017, 3, 12), holidays)
|
|
|
|
|
|
class BrazilTeresinaCityTest(BrazilPiauiTest):
|
|
"""
|
|
Teresina is in the Piauí state
|
|
"""
|
|
cal_class = BrazilTeresinaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Teresina
|
|
self.assertIn(date(2017, 8, 16), holidays)
|
|
|
|
|
|
class BrazilCuritibaCityTest(BrazilParanaTest):
|
|
"""
|
|
Curitiba is in the Paraná state
|
|
"""
|
|
cal_class = BrazilCuritibaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Curitiba
|
|
self.assertIn(date(2017, 3, 29), holidays)
|
|
|
|
|
|
class BrazilNatalCityTest(BrazilRioGrandeDoNorteTest):
|
|
"""
|
|
Natal is in the Rio Grande do Norte state
|
|
"""
|
|
cal_class = BrazilNatalCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Natal
|
|
self.assertIn(date(2017, 12, 25), holidays)
|
|
|
|
|
|
class BrazilPortoVelhoCityTest(BrazilRondoniaTest):
|
|
"""
|
|
Porto Velho is in the Rio Grande do Norte state
|
|
"""
|
|
cal_class = BrazilPortoVelhoCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Porto Velho
|
|
self.assertIn(date(2017, 10, 2), holidays)
|
|
|
|
|
|
class BrazilBoaVistaCityTest(BrazilRoraimaTest):
|
|
"""
|
|
Boa Vista is in the Roraima state
|
|
"""
|
|
cal_class = BrazilBoaVistaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Boa Vista
|
|
self.assertIn(date(2017, 6, 9), holidays)
|
|
|
|
|
|
class BrazilPortoAlegreCityTest(BrazilRioGrandeDoSulTest):
|
|
"""
|
|
Porto Alegre is in the Rio Grande do Sul state
|
|
"""
|
|
cal_class = BrazilPortoAlegreCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Porto Alegre
|
|
self.assertIn(date(2017, 3, 26), holidays)
|
|
|
|
|
|
class BrazilChapecoCityTest(BrazilSantaCatarinaTest):
|
|
"""
|
|
Chapecó is in the Santa Catarina state
|
|
"""
|
|
cal_class = BrazilChapecoCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Chapecó
|
|
self.assertIn(date(2017, 8, 25), holidays)
|
|
|
|
|
|
class BrazilFlorianopolisCityTest(BrazilSantaCatarinaTest):
|
|
"""
|
|
Florianópolis is in the Santa Catarina state
|
|
"""
|
|
cal_class = BrazilFlorianopolisCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Florianópolis
|
|
self.assertIn(date(2017, 3, 23), holidays)
|
|
|
|
|
|
class BrazilJoinvilleCityTest(BrazilSantaCatarinaTest):
|
|
"""
|
|
Joinville is in the Santa Catarina state
|
|
"""
|
|
cal_class = BrazilJoinvilleCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Joinville
|
|
self.assertIn(date(2017, 3, 9), holidays)
|
|
|
|
|
|
class BrazilAracajuCityTest(BrazilSergipeTest):
|
|
"""
|
|
Aracajú is in the Sergipe state
|
|
"""
|
|
cal_class = BrazilAracajuCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Aracajú
|
|
self.assertIn(date(2017, 3, 17), holidays)
|
|
|
|
|
|
class BrazilSorocabaCityTest(SaoPauloStateTest):
|
|
"""
|
|
Sorocaba is in the São Paulo state
|
|
"""
|
|
cal_class = BrazilSorocabaCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Sorocaba
|
|
self.assertIn(date(2017, 8, 15), holidays)
|
|
|
|
|
|
class BrazilPalmasCityTest(BrazilTocantinsTest):
|
|
"""
|
|
Palmas is in the Tocantins state
|
|
"""
|
|
cal_class = BrazilPalmasCity
|
|
|
|
def test_year_2017_city(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
# Fixed days
|
|
# Aniversário de Palmas
|
|
self.assertIn(date(2017, 5, 20), holidays)
|
|
|
|
|
|
class BrazilBankCalendarTest(BrazilTest):
|
|
cal_class = BrazilBankCalendar
|
|
|
|
def test_year_2017_holidays(self):
|
|
holidays = self.cal.holidays_set(2017)
|
|
self.assertIn(date(2017, 1, 1), holidays) # New year
|
|
self.assertIn(date(2017, 2, 27), holidays) # Monday carnaval
|
|
self.assertIn(date(2017, 2, 28), holidays) # Tuesday carnaval
|
|
self.assertIn(date(2017, 3, 1), holidays) # Ash wednesday
|
|
self.assertIn(date(2017, 4, 14), holidays) # Good friday
|
|
self.assertIn(date(2017, 4, 21), holidays) # Tiradentes
|
|
self.assertIn(date(2017, 5, 1), holidays) # Labour day
|
|
self.assertIn(date(2017, 6, 15), holidays) # Corpus Christi
|
|
self.assertIn(date(2017, 9, 7), holidays) # Independence day
|
|
self.assertIn(date(2017, 10, 12), holidays) # Our Lady Aparecida
|
|
self.assertIn(date(2017, 11, 2), holidays) # All Souls' Day
|
|
self.assertIn(date(2017, 11, 15), holidays) # Republic day
|
|
self.assertIn(date(2017, 12, 25), holidays) # Christmas Day
|
|
self.assertIn(date(2017, 12, 29), holidays) # Last working day of year
|
|
self.assertEquals(14, len(holidays))
|
|
|
|
def test_year_2017_find_next_working_day_for_new_year(self):
|
|
new_year = date(2017, 1, 1)
|
|
working_day = self.cal.find_following_working_day(new_year)
|
|
self.assertEquals(working_day, date(2017, 1, 2))
|
|
|
|
def test_year_2017_find_next_working_day_for_monday_carnaval(self):
|
|
monday_carnaval = date(2017, 2, 27)
|
|
working_day = self.cal.find_following_working_day(monday_carnaval)
|
|
self.assertEquals(working_day, date(2017, 3, 2))
|
|
|
|
def test_year_2017_find_next_working_day_for_tuesday_carnaval(self):
|
|
tuesday_carnaval = date(2017, 2, 28)
|
|
working_day = self.cal.find_following_working_day(tuesday_carnaval)
|
|
self.assertEquals(working_day, date(2017, 3, 2))
|
|
|
|
def test_year_2017_find_next_working_day_for_good_friday(self):
|
|
good_friday = date(2017, 4, 14)
|
|
working_day = self.cal.find_following_working_day(good_friday)
|
|
self.assertEquals(working_day, date(2017, 4, 17))
|
|
|
|
def test_year_2017_find_next_working_day_for_tiradentes(self):
|
|
tiradentes = date(2017, 4, 21)
|
|
working_day = self.cal.find_following_working_day(tiradentes)
|
|
self.assertEquals(working_day, date(2017, 4, 24))
|
|
|
|
def test_year_2017_find_next_working_day_for_labour_day(self):
|
|
labour_day = date(2017, 5, 1)
|
|
working_day = self.cal.find_following_working_day(labour_day)
|
|
self.assertEquals(working_day, date(2017, 5, 2))
|
|
|
|
def test_year_2017_find_next_working_day_for_corpus_christi(self):
|
|
corpus_christi = date(2017, 6, 15)
|
|
working_day = self.cal.find_following_working_day(corpus_christi)
|
|
self.assertEquals(working_day, date(2017, 6, 16))
|
|
|
|
def test_year_2017_find_next_working_day_for_independence_day(self):
|
|
independence_day = date(2017, 9, 7)
|
|
working_day = self.cal.find_following_working_day(independence_day)
|
|
self.assertEquals(working_day, date(2017, 9, 8))
|
|
|
|
def test_year_2017_find_next_working_day_for_our_lady_aparecida(self):
|
|
our_lady_aparecida = date(2017, 10, 12)
|
|
working_day = self.cal.find_following_working_day(our_lady_aparecida)
|
|
self.assertEquals(working_day, date(2017, 10, 13))
|
|
|
|
def test_year_2017_find_next_working_day_for_our_all_souls(self):
|
|
all_souls = date(2017, 11, 2)
|
|
working_day = self.cal.find_following_working_day(all_souls)
|
|
self.assertEquals(working_day, date(2017, 11, 3))
|
|
|
|
def test_year_2017_find_next_working_day_for_our_republic_day(self):
|
|
republic_day = date(2017, 11, 15)
|
|
working_day = self.cal.find_following_working_day(republic_day)
|
|
self.assertEquals(working_day, date(2017, 11, 16))
|
|
|
|
def test_year_2017_find_next_working_day_for_our_christmas_day(self):
|
|
christmas_day = date(2017, 12, 25)
|
|
working_day = self.cal.find_following_working_day(christmas_day)
|
|
self.assertEquals(working_day, date(2017, 12, 26))
|
|
|
|
def test_year_2017_find_next_working_day_for_last_day(self):
|
|
# last day of year for only internal bank transactions
|
|
last_day = date(2017, 12, 29)
|
|
working_day = self.cal.find_following_working_day(last_day)
|
|
self.assertEquals(working_day, date(2018, 1, 2))
|
|
|
|
def test_year_2017_find_next_working_day_for_already_working_day(self):
|
|
already_working_day = date(2017, 7, 25)
|
|
working_day = self.cal.find_following_working_day(already_working_day)
|
|
self.assertEquals(working_day, date(2017, 7, 25))
|
|
|
|
def test_carnaval_label(self):
|
|
holidays = self.cal.holidays(2017)
|
|
holidays_dict = dict(holidays)
|
|
label_carnaval = holidays_dict[date(2017, 2, 28)]
|
|
self.assertEqual(label_carnaval, "Tuesday carnaval")
|
|
|
|
|
|
class TestIBGERegister(TestCase):
|
|
|
|
def test_register_length(self):
|
|
# Each time another calendar will be added, this length should increase
|
|
# This also fails when a key appears twice (typo mistake?)
|
|
self.assertEqual(len(IBGE_REGISTER), len(IBGE_TUPLE))
|
|
|
|
def test_no_duplicate(self):
|
|
# Check if a class doesn't appear twice with different keys
|
|
values = set(IBGE_REGISTER.values())
|
|
self.assertEqual(len(IBGE_REGISTER.values()), len(values))
|
|
|
|
def test_all_are_brazilian_classes(self):
|
|
for key, value in IBGE_TUPLE:
|
|
self.assertTrue(issubclass(value, Brazil))
|