Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"python.testing.pytestArgs": [
"."
],
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true
}
76 changes: 75 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,75 @@
# pytest-example
# Pilha com Pytest

Este projeto é um exemplo de implementação de pilha com realizações de testes usando o Framework Pytest.

As seguintes ações são testadas:
- Pilha vazia
- Elemento inserido
- Comprimento da pilha
- O primeiro elemento da pilha
- Número total de elementos
- Retirar elementos da pilha


### Instalar o Pytest:

$ pip install -U pytest

### Executar o código:

$ pytest ex1_test.py

### Sobre o código:

Esse método verfica se está vazia.
O .fixture é chamado durante a realização do teste.

```python
@pytest.fixture
def pilha():
return Pilha()

def test_isEmpty(pilha):
pilha.isEmpty()
assert True == pilha.isEmpty()
```


Esse método verifica se o elemento está sendo inserido na pilha.
```python
def test_push(pilha):
pilha.push(32)
assert 32 == pilha.items[0]
```

Esse método verifica o comprimento da pilha, mas somente na primeira dimensão (quando se trabalha com matrizes).
```python
def test_pop(pilha): pilha.push(3)
pilha.push(18)
pilha.pop()
assert 1 == len(pilha.items)
```

Esse método verifica se o último elemento inserido na pilha é o primeiro elemento da pilha.
```python
def test_peek(pilha):
pilha.push(15)
pilha.push(0)
assert 0 == pilha.peek()
```

Esse método verifica o número total de elementos na pilha.
```python
def test_size(pilha):
pilha.push(11)
pilha.push(4)
assert 2 == pilha.size()
```

Esse método verifica se pode retirar elementos da pilha quando a pilha está vazia.
```python
def test_pop_empty(pilha):
with pytest.raises(IndexError):
pilha.pop()
```

35 changes: 35 additions & 0 deletions ex1_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import pytest
from src.ClassPilha import Pilha

@pytest.fixture
def pilha():
return Pilha()

def test_isEmpty(pilha): # verfica se está vazia
pilha.isEmpty()
assert True == pilha.isEmpty()

def test_push(pilha): # verifica o primeiro elemento inserido
pilha.push(32)
assert 32 == pilha.items[0]

def test_pop(pilha): # verifica o comprimento da pilha somente na primeira dimensão (quando se trabalha com matrizes)
pilha.push(3)
pilha.push(18)
pilha.pop()
assert 1 == len(pilha.items)

def test_peek(pilha): # verifica o primeiro elemento da pilha
pilha.push(15)
pilha.push(0)
assert 0 == pilha.peek()

def test_size(pilha): # verifica o número total de elementos na pilha
pilha.push(11)
pilha.push(4)
assert 2 == pilha.size()

def test_pop_empty(pilha): # verfica se pode retirar elementos quando não há nada na pilha
with pytest.raises(IndexError):
pilha.pop()

18 changes: 18 additions & 0 deletions src/ClassPilha.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
class Pilha:
def __init__(self):
self.items = []

def isEmpty(self):
return self.items == []

def push(self, item):
self.items.append(item)

def pop(self):
return self.items.pop()

def peek(self):
return self.items[len(self.items)-1]

def size(self):
return len(self.items)