Created
September 13, 2010 04:01
-
-
Save marcelcaraciolo/576783 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import unittest | |
from datetime import date, timedelta | |
''' | |
Vaga para Desenvolvedor Web na empresa Orygens | |
Script inspirado http://github.com/praekelt/careers/raw/master/software_engineer.py | |
''' | |
class WebDeveloperTestCase(unittest.TestCase): | |
""" | |
Se voce passar neste teste entao provavelmente nos estamos procurando voce. | |
""" | |
def test_experiencia(self): | |
""" 2 anos de experiencia com desenvolvimento de software. """ | |
assert candidato.results['comecou_a_programar'] <= anos_atras(2) | |
def test_python_experiencia(self): | |
""" 1 ano de experiencia com Python """ | |
assert candidato.results['comecou_programar_python'] <= anos_atras(1) | |
def test_web_experiencia(self): | |
""" Experiencia Solida com Frameworks /Web """ | |
assert candidato.results['web_experiencia'] >= 6 | |
def test_django_experiencia(self): | |
""" Experiencia Solida com Frameworks Django""" | |
assert candidato.results['django_experiencia'] >= 6 | |
def test_js_experiencia(self): | |
""" Experiencia Solida com JavaScript/Jquery """ | |
assert candidato.results['javascript_experiencia'] >= 5 | |
def test_git_experiencia(self): | |
"""A palavra fork deveria fazer lembra-lo de codigo fonte e colaboracao""" | |
assert candidato.results['forks_nao_sao_para_comida'] == 'sim' | |
def test_scrum(self): | |
"""Sabe ou aprecia as artes de metodologias ageis""" | |
assert candidato.results['usa_metodologia_agil'] == 'sim' | |
def test_tdd(self): | |
"""Sabe ou aprecia as artes de tdd""" | |
assert True #Bonus | |
def test_linux(self): | |
"""Familiar com os pinguims""" | |
assert candidato.results['linux'] == 'sim' | |
def test_open_source(self): | |
"""Voce tem projetos open-source (big plus)""" | |
assert True #Bonus | |
def test_cloud_experiencia(self): | |
"""A palavra nuvem deve faze-lo lembrar de computacao nas nuvens.""" | |
assert candidato.results['nuvems_sao_para_chuvas'] == 'nao' | |
def test_independencia(self): | |
""" Voce e feliz mesmo trabalhando em um ambiente livre sem supervisores ao seu redor """ | |
assert True # bonus | |
def test_linguagem_programacao(self): | |
""" Voce nao e preso a uma linguagem/plataforma """ | |
assert True #bonus | |
def prompt(question): | |
return raw_input("%s : " %question).strip() | |
def anos_atras(numero): | |
return date.today() - timedelta(days=numero * 365) | |
class Candidato(object): | |
def __init__(self): | |
self.results = {} | |
def entrevista(self): | |
for attribute in dir(self): | |
if attribute.startswith('ask'): | |
_,attribute_name = attribute.split("_",1) | |
attribute_function = getattr(self,attribute) | |
self.results[attribute_name] = attribute_function() | |
def ask_comecou_a_programar(self): | |
year = prompt("Em que ano voce comecou a programar ? (2008,2009, etc...)") | |
return date(year=int(year),month=1,day=1) | |
def ask_comecou_programar_python(self): | |
year = prompt("Em que ano voce comecou a programar Python ? (2008,2009, etc...)") | |
return date(year=int(year),month=1,day=1) | |
def ask_web_experiencia(self): | |
experience = prompt("Numa escala de 1 a 10, 1 equivale a nenhuma experiencia " \ | |
"e 10 muito experiente, em que nivel voce se colocaria em" \ | |
"experiencia com Web ?") | |
return int(experience) | |
def ask_django_experiencia(self): | |
experience = prompt("Numa escala de 1 a 10, 1 equivale a nenhuma experiencia " \ | |
"e 10 muito experiente, em que nivel voce se colocaria em" \ | |
"experiencia com Django ?") | |
return int(experience) | |
def ask_javascript_experiencia(self): | |
experience = prompt("Numa escala de 1 a 10, 1 equivale a nenhuma experiencia " \ | |
"e 10 muito experiente, em que nivel voce se colocaria em" \ | |
"experiencia com JavaScript/JQuery ?") | |
return int(experience) | |
def ask_nuvems_sao_para_chuvas(self): | |
return prompt("Nuvens te lembram primeiramente de chuva ? (sim ou nao)") | |
def ask_forks_nao_sao_para_comida(self): | |
return prompt("A palavra 'forks checkout push pull' se relacionam? (sim ou nao)") | |
def ask_usa_metodologia_agil(self): | |
return prompt("A palavra 'Poker' te lembra algo alem de jogo ? (sim ou nao)") | |
def ask_linux(self): | |
return prompt('Voce sabe se pinguins tem algo haver com sistemas operacionais ? (sim ou nao)') | |
def ask_open_source(self): | |
return prompt('Voce tem projetos open-source ?') | |
def ask_independencia(self): | |
return prompt('Voce curte trabalhar independente ?') | |
def ask_linguagem_programacao(self): | |
return prompt('Voce curte programar em mais de uma linguagem de programacao ?') | |
def ask_tdd(self): | |
return prompt('Voce curte desenvolvimento com testes ?') | |
class CandidatoTestProgram(unittest.TestProgram): | |
def runTests(self): | |
self.result = unittest.TextTestRunner().run(self.test) | |
if __name__ == '__main__': | |
candidato = Candidato() | |
candidato.entrevista() | |
test_program = CandidatoTestProgram() | |
print '\n\n' | |
if not test_program.result.wasSuccessful(): | |
print 'Desculpe-me mas voce nao passou' | |
else: | |
print 'Opa, voce passou! Agora o que fazer?' | |
print "1. Envie seu curriculo para [email protected]" | |
print "2. Se voce acreditar ser um bom candidato, nos iremos entrar em contato." | |
print "" | |
print 'Atenciosamente, Orygens.com !' | |
Muito interessante, mas contém alguns erros de formatação e de escrita.
Po, ficou maneiro! hehe
Muito bacana divulgar a vaga desta maneira. Eu rodei aqui mas, infelizmente, não tenho a experiência exigida rss.
Demais... Grande forma de executar uma entrevista!
muito bem bolado!!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Puts! Que show!