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
Empty file added __init__.py
Empty file.
Empty file added exercicios/__init__.py
Empty file.
Empty file.
31 changes: 31 additions & 0 deletions exercicios/para-casa/biblioteca.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from livro import Livro

class Biblioteca:
def __init__(self):
self.livro = []

def add_livro(self, livro: Livro):
if (isinstance(livro,Livro) == False):
raise TypeError(f"Esperado Livro obtido valor {livro} do tipo{type(livro)}")
self.livro.append(livro)

def exibir_livros(self):
if len(self.livro) == 0: #verifica se a list esta vzia
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Que arraso essa validação!

raise TypeError("Lista Vazia")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Apenas uma sugestão] Que acha de no lugar de TypeError usar o IndexError

"O que é um IndexError em Python?
IndexError é uma exceção em python que ocorre quando tentamos acessar um elemento de uma lista ou tupla de um índice que não está presente na lista."

Python For Beginners

else: return self.livro

def emprestar_livro(self, livro: Livro):
if(livro.emprestado == True):
raise TypeError("Esse livro ja esta emprestado")
else:
livro.emprestado = True
return livro

def devolver_livro(self, livro: Livro):
if(livro.emprestado == False):
raise TypeError("Este livro encotra-se na biblioteca")
else:
livro.emprestado = False
return livro


8 changes: 8 additions & 0 deletions exercicios/para-casa/livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
class Livro:
def __init__(self, nome, autor, emprestado):
#raise NotImplementedError #bota-se enquanto nao configura-se o teste
self.nome = nome
self.autor = autor
self.emprestado = emprestado


22 changes: 22 additions & 0 deletions exercicios/para-casa/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from biblioteca import Biblioteca
from livro import Livro
from testBiblioteca import TestBiblioteca


livro_objeto = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False)
livro2_objeto = Livro(nome="Entendendo algoritmo", autor="Aditya", emprestado=False)
biblioteca_objeto = Biblioteca()
lista = [livro_objeto,livro2_objeto]
for livro in lista:
biblioteca_objeto.add_livro(livro)


for livros in biblioteca_objeto.exibir_livros():
print(f"Nome: {livros.nome} Autor: {livros.autor} Emprestado: {livros.emprestado}")

emprestar = biblioteca_objeto.emprestar_livro(livro_objeto)
if(emprestar.emprestado == True):
print(f"O Livro: {emprestar.nome} foi emprestado com sucesso")



55 changes: 55 additions & 0 deletions exercicios/para-casa/testBiblioteca.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from unittest import TestCase
from biblioteca import Biblioteca
from livro import Livro


class TestBiblioteca(TestCase):

def setUp(self):
self.biblioteca = Biblioteca() #com o self. na frente é comunicado que agora biblioteca é uma variável da classe


def test_init_deve_passar(self):
# Arrange / Act
#biblioteca = Biblioteca()
# Assert
self.assertIsInstance(self.biblioteca.livro, list) #biblioteca.livros diz que a biclioteca contem os livros


def test_add_livro_deve_passar(self):
#Arrange
#biblioteca = Biblioteca()
livro = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False)
#Act
self.biblioteca.add_livro(livro)
#Assert
self.assertEqual(1, len(self.biblioteca.livro))

def test_exibir_livro_deve_passar(self):
#Arrange
#biblioteca = Biblioteca()
livro1 = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False)
livro2 = Livro(nome="Entendendo algoritmo", autor="Aditya", emprestado=False)

for livro in [livro1,livro2]:
self.biblioteca.add_livro(livro)

self.assertEqual(2, len(self.biblioteca.exibir_livros()))


def test_emprestar_livro_deve_passar(self):
#Arrange
#biblioteca = Biblioteca()
livro_objeto = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False)
self.assertEqual(True, self.biblioteca.emprestar_livro(livro_objeto).emprestado)

def test_add_livro_nao_deve_inserir_num(self):
#Arrange
#biblioteca = Biblioteca()
livro = 1989
#Assert / Act
with self.assertRaises(TypeError):
self.biblioteca.add_livro(livro)



18 changes: 18 additions & 0 deletions exercicios/para-casa/testLivro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from unittest import TestCase
from livro import Livro


class TestLivro(TestCase):
def test_init_deve_passar(self):
#Arrange
nome = "Torto Arado"
autor ="Itamar Vieira"
#Act
livro = Livro(nome, autor,False)
#Assert
self.assertEqual(nome, livro.nome)
self.assertEqual(autor, livro.autor)
self.assertEqual(False, livro.emprestado)