Depois de entrar no grupo da hashtag #100daysofcode acabei achando esse desafio do Dev.to e aproveitei para usar ao meu favor.
O post desse desafio para quem ainda não conhece:
Vamos ao código!
def stringpeeler(entrada):
saida = entrada[1:len(entrada)-1]
return saida
Como achei o desafio simples demais, acabei aproveitando pra aprender um pouco de TDD e mexer com a biblioteca pytest.
# Dev.to Daily Challenge #1 - String Peeler
# https://dev.to/thepracticaldev/daily-challenge-1-string-peeler-4nep
# stringpeeler.py
import pytest
def stringpeeler(entrada):
if not isinstance(entrada, str):
raise TypeError('A entrada deve ser uma string')
if len(entrada)<3:
return ValueError('A entrada deve ter no mÃnimo 3 caracteres')
saida = entrada[1:len(entrada)-1]
return saida
E o arquivo de testes:
# Dev.to Daily Challenge #1 - String Peeler
# https://dev.to/thepracticaldev/daily-challenge-1-string-peeler-4nep
import pytest
from stringpeeler import stringpeeler
#TDD Training
NOT_STRING = 3524
EMPTY_STRING = ""
TOO_SHORT_STRING = "ab"
TEST_STRING = "zabcdey"
def test_ifString():
with pytest.raises(TypeError):
value = stringpeeler(NOT_STRING)
def test_emptyString():
with pytest.raises(ValueError):
value = stringpeeler(EMPTY_STRING)
def test_tooShortString():
with pytest.raises(ValueError):
value = stringpeeler(TOO_SHORT_STRING)
def test_stringPeeler():
assert stringpeeler(TEST_STRING) == "abcde"
Usei como referência essa série de posts de TDD em pytest para iniciantes, que é bem educativo e fácil de acompanhar.
Python TDD with Pytest -- Getting Started
Kinyanjui Wangonya ・ Jan 28 '19 ・ 2 min read
Não sei se vou conseguir fazer todo dia, mas estou me divertindo por enquanto. Espero ficar craque em TDD até o último desafio!
Top comments (1)
Parabéns Carol, boa sorte nos desafios, continue com a disciplina!