Skip to content

Instantly share code, notes, and snippets.

@bltavares
Created June 12, 2012 00:46
Show Gist options
  • Save bltavares/2913714 to your computer and use it in GitHub Desktop.
Save bltavares/2913714 to your computer and use it in GitHub Desktop.
First Remote Spooning
#encoding: utf-8
import unittest
import re
class TestAutores(unittest.TestCase):
def test_recebe_nome_simples(self):
nome = "Manolo"
nome_correto = mostrar_nome(nome)
assert nome_correto == "MANOLO"
def test_recebe_nome_composto(self):
nome = "Bruno Lara"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LARA, Bruno"
def test_recebe_nome_com_filho(self):
nome = "Mauricio Luiz Filho"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ FILHO, Mauricio"
def test_recebe_nome_simples_com_filho(self):
nome = "Mauricio Filho"
nome_correto = mostrar_nome(nome)
assert nome_correto == "FILHO, Mauricio"
def test_recebe_nome_com_neto(self):
nome = "Mauricio Luiz Neto"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ NETO, Mauricio"
def test_recebe_nome_com_sobrinho(self):
nome = "Mauricio Luiz Sobrinho"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ SOBRINHO, Mauricio"
def test_recebe_nome_com_junior(self):
nome = "Mauricio Luiz Junior"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ JUNIOR, Mauricio"
def test_recebe_nome_com_neta(self):
nome = "Maria Luiz Neta"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ NETA, Maria"
def test_recebe_nome_com_filha(self):
nome = "Maria Luiz Filha"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ FILHA, Maria"
def test_recebe_nome_com_sobrinha(self):
nome = "Maria Luiz Sobrinha"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ SOBRINHA, Maria"
def test_recebe_nome_minusculo(self):
nome = "maria luiz sobrinha"
nome_correto = mostrar_nome(nome)
assert nome_correto == "LUIZ SOBRINHA, Maria"
def test_recebe_nome_minusculo(self):
nome = "glauco vinicius argentino de oliveira junior"
nome_correto = mostrar_nome(nome)
assert nome_correto == "OLIVEIRA JUNIOR, Glauco Vinicius Argentino de"
def test_recebe_nome_com_da(self):
nome = "joão da silva"
nome_correto = mostrar_nome(nome)
assert nome_correto == "SILVA, João da"
def test_recebe_nome_com_das(self):
nome = u"Maria das Graças"
nome_correto = mostrar_nome(nome)
assert nome_correto == u"GRAÇAS, Maria das"
def test_recebe_nome_com_dos(self):
nome = u"Maria dos Graças"
nome_correto = mostrar_nome(nome)
assert nome_correto == u"GRAÇAS, Maria dos"
def test_recebe_nome_com_do(self):
nome = u"Maria do Graças"
nome_correto = mostrar_nome(nome)
assert nome_correto == u"GRAÇAS, Maria do"
def test_recebe_nome_com_de(self):
nome = u"Maria de Graças"
nome_correto = mostrar_nome(nome)
assert nome_correto == u"GRAÇAS, Maria de"
def mostrar_nome(nome):
nomes_especiais = "(Filh[ao]|Net[ao]|Sobrinh[ao]|Junior)"
nomes = [capitalize(x) for x in nome.split(" ")]
if(len(nomes) == 1):
return nome.upper()
if(len(nomes) > 2 and re.match(nomes_especiais, nomes[-1])):
return nomes[-2].upper() + " " + nomes[-1].upper() + ", " + " ".join(nomes[0:-2])
return nomes[-1].upper() + ", " + " ".join(nomes[0:-1])
def capitalize(string):
if(re.match("d(a|as|os|o|e)", string)):
return string
return string[0].upper() + "".join(string[1:]).lower()
if __name__ == "__main__":
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment