Skip to content

Commit 21fb67b

Browse files
committed
Update tdd-com-python-e-flask.md
1 parent d08c3cc commit 21fb67b

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

content/tdd-com-python-e-flask.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Linkedin: cuducos
1515
1616
A ideia desse exercício é introduzir a ideia de _test driven development_ (TDD) usando [Python](http://http://python.org) e [Flask](http://flask.pocoo.org/) — digo isso pois a aplicação final desse “tutorial” não é nada avançada, tampouco funcional. E isso se explica por dois motivos: primeiro, o foco é sentir o que é o _driven_ do TDD, ou seja, como uma estrutura de _tests first_ (sempre começar escrevendo os testes, e não a aplicação) pode guiar o processo de desenvolvimento; e, segundo, ser uma atividade rápida, de mais ou menos 1h.
1717

18-
Em outras palavras, não espere aprender muito de Python ou Flask. Aqui se concentre em sentir a diferença de utilizar uma método de programar. Todo o resto é secundário.
18+
Em outras palavras, não espere aprender muito de Python ou Flask. Aqui se concentre em sentir a diferença de utilizar um método de programar. Todo o resto é secundário.
1919

2020
## 1. Preparando o ambiente
2121

@@ -60,7 +60,7 @@ Successfully installed Flask-0.10.1 Jinja2-2.8 MarkupSafe-0.23 Werkzeug-0.11.4 i
6060

6161
Vamos usar, nesse exercício, basicamente 2 arquivos:
6262

63-
* `app.py`: onde criamos nossa aplicação web;;
63+
* `app.py`: onde criamos nossa aplicação web;
6464
* `tests.py`: onde escrevemos os testes que guiarão o desenvolvimento da aplicação, e que, também, garantirão que ela funcione.
6565

6666

@@ -70,7 +70,7 @@ No arquivo `tests.py` vamos usar o módulo [unittest](https://docs.python.org/3.
7070

7171
Criaremos uma estrutura básica para que, toda vez que esse arquivo seja executado, o `unittest` se encarregue de encontrar todos os nossos testes e rodá-los.
7272

73-
Vamos começar escrevendo com uma exemplo fictício: testes para um método que ainda não criamos, um método que calcule números fatoriais. A ideia é só entender como escreveremos testes em um arquivo (`tests.py`) para testar o que escreveremos no outro arquivo (`app.py`).
73+
Vamos começar escrevendo com um exemplo fictício: testes para um método que ainda não criamos, um método que calcule números fatoriais. A ideia é só entender como escreveremos testes em um arquivo (`tests.py`) para testar o que escreveremos no outro arquivo (`app.py`).
7474

7575
A estrutura básica a seguir cria um caso de teste da `unittest` e, quando executada, teste nosso método `fatorial(numero)` para todos os números de 0 até 6:
7676

@@ -179,7 +179,7 @@ Esse arquivo agora faz quatro coisas referentes a nossa aplicação web:
179179
1. Tenta acessar a “raíz” da nossa aplicação — ou seja, se essa aplicação web estivesse no servidor `pythonclub.com.br` estaríamos acessando [http://pythonclub.com.br/](http://pythonclub.com.br/).
180180
1. Verifica se, ao acessar esse endereço, ou seja, se ao fazer a requisição HTTP para essa URL, temos como resposta o código 200, que representa sucesso.
181181

182-
Os códigos de status de requisição HTTP mais comuns são o `200` (sucesso), `404` (página não encontrada) e `302` (redirecionamento) — mas a [lista de completa](https://pt.wikipedia.org/wiki/Lista_de_códigos_de_status_HTTP) é muito maior que isso.
182+
Os códigos de status de requisição HTTP mais comuns são o `200` (sucesso), `404` (página não encontrada) e `302` (redirecionamento) — mas a [lista completa](https://pt.wikipedia.org/wiki/Lista_de_códigos_de_status_HTTP) é muito maior que isso.
183183

184184
De qualquer forma não conseguiremos rodar esses testes. O interpretador do Python vai nos retornar um erro:
185185

@@ -280,7 +280,7 @@ app = meu_web_app.test_client()
280280
response = app.get('/')
281281
```
282282

283-
Podemos usar um método especial da classe `unittest.TestCase` para reaporiveitar essas linhas. O método `TestCase.setUp()` é executado ao iniciar cada teste, e através do `self` podemos acessar objetos de um método a partir de outro método:
283+
Podemos usar um método especial da classe `unittest.TestCase` para reaproveitar essas linhas. O método `TestCase.setUp()` é executado ao iniciar cada teste, e através do `self` podemos acessar objetos de um método a partir de outro método:
284284

285285
```python
286286
class TestHome(unittest.TestCase):
@@ -396,7 +396,7 @@ Vamos começar com um HTML básico, criando a pasta `templates` e dentro dela o
396396
</html>
397397
```
398398

399-
Se a gente abrir essa página no navegador já podemos ver que ela é um pouco menos do que o que a gente tinha antes. Então vamos alterar nosso `test_content()` para garantir que ao invés de termos somente a _string_ com nosso nome na aplicação, tempos esse templete renderizado:
399+
Se a gente abrir essa página no navegador já podemos ver que ela é um pouco menos do que o que a gente tinha antes. Então vamos alterar nosso `test_content()` para garantir que ao invés de termos somente a _string_ com nosso nome na aplicação, tempos esse template renderizado:
400400

401401
```python
402402
def test_content(self):
@@ -498,7 +498,7 @@ OK
498498

499499
### Passando variáveis para o contexto do template
500500

501-
O problema da nossa página é que ela é estática. Vamos usar o Python e o Flask para que quando a gente acesse `/cuducos` a gente veja a minha página, com meus dados. Mas caso a gente acesse `/z4r4tu5tr4`, a gente o conteúdo referente ao outro Eduardo que palestrou no Grupy comigo.
501+
O problema da nossa página é que ela é estática. Vamos usar o Python e o Flask para que quando a gente acesse `/cuducos` a gente veja a minha página, com meus dados. Mas caso a gente acesse `/z4r4tu5tr4`, a gente veja o conteúdo referente ao outro Eduardo que palestrou comigo no Grupy.
502502

503503
Antes de mudar nossas URLS, vamos refatorar nossa aplicação e — importantíssimo! — os testes tem que continuar passando. A ideia é evitar que o conteúdo esteja “fixo” no template. Vamos fazer o conteúdo ser passado do método `pagina_principal()` para o template.
504504

@@ -543,7 +543,7 @@ Por fim, vamor utilizar, ao invés das minhas informações, a variável `perfil
543543
</html>
544544
```
545545

546-
Feito isso, temos todas as informações disponíveis no nosso ambinete Python, e não mais no HTML. E os testes nos garantem que no final das contas, para o usuário, a página não mudou — ou seja, estamos mostrando as informações corretamente.
546+
Feito isso, temos todas as informações disponíveis no nosso ambiente Python, e não mais no HTML. E os testes nos garantem que no final das contas, para o usuário, a página não mudou — ou seja, estamos mostrando as informações corretamente.
547547

548548
### Criando conteúdo dinâmico
549549

@@ -672,7 +672,7 @@ def pagina_inicial(perfil):
672672
return render_template('home.html', perfil=perfil)
673673
```
674674

675-
Agora o Flask recebe uma variável `perfil` depois da `/` (e sabemos que é uma variável pois envolvemos o nome `perfil` entre os sinais de `<` e `>`). E utilizamos essa variável para escolhar qual perfil passar para nosso tempate.
675+
Agora o Flask recebe uma variável `perfil` depois da `/` (e sabemos que é uma variável pois envolvemos o nome `perfil` entre os sinais de `<` e `>`). E utilizamos essa variável para escolher qual perfil passar para nosso tempate.
676676

677677
## Considerações finais
678678

0 commit comments

Comments
 (0)