Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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):
"""Voce e 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 eh feliz mesmo trabalhando em um ambiente livre sem supervisores no pe """
assert True # bonus
def test_linguagem_programacao(self):
""" Voce nao eh 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("Nuvems 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 'Opaaaa, voce passou! Agora o que fazer?'
print "1. Envie seu curriculo para jobs@orygens.com"
print "2. Se voce acreditar ser um bom candidato nos iremos entrar em contato."
print ""
print 'Atenciosamente, Orygens.com !'
@rodrigoalvesvieira

This comment has been minimized.

Copy link

@rodrigoalvesvieira rodrigoalvesvieira commented Sep 13, 2010

Puts! Que show!

@fernandobrito

This comment has been minimized.

Copy link

@fernandobrito fernandobrito commented Sep 13, 2010

Muito interessante, mas contém alguns erros de formatação e de escrita.

@diofeher

This comment has been minimized.

Copy link

@diofeher diofeher commented Sep 13, 2010

Po, ficou maneiro! hehe

@felipebueno

This comment has been minimized.

Copy link

@felipebueno felipebueno commented Feb 22, 2011

Muito bacana divulgar a vaga desta maneira. Eu rodei aqui mas, infelizmente, não tenho a experiência exigida rss.

@joaodubas

This comment has been minimized.

Copy link

@joaodubas joaodubas commented Feb 22, 2011

Demais... Grande forma de executar uma entrevista!

@diegoguimaraes

This comment has been minimized.

Copy link

@diegoguimaraes diegoguimaraes commented Feb 22, 2011

muito bem bolado!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment