Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Projeto 2 #15

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
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
28 changes: 28 additions & 0 deletions exercicios/para-casa/Biblioteca.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

from Livro import Livro

class Biblioteca:

def __init__(self):
#self.livros = [], mudou pra:
nome_livro = 'initNome'
autor_livro = 'initAutor'
livro = Livro(nome_livro, autor_livro)
self.livros = [livro.nome]
#testar

def adicionar_livro(self, livro: Livro):
if (not isinstance(livro, Livro)):
raise TypeError(f'Esperado Livro, obtido valor {livro} do tipo {type(livro)}')
self.livros.append(livro)


def exibir_livro(self):
lista_livros = self.livros
print(lista_livros)

def emprestar_livro(self, nome_livro):
for livro in self.livros:
if livro['nome'] == nome_livro:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Olá, Taianne
Massa demais que fez as lógicas propostas. Nessa linha tem um pequeno erro em livro['nome']
o seu livro já é um objeto livro por isso ele já tem as propriedades livro.nome e livro.esta_emprestado

livro['emprestado'] = True
break
5 changes: 5 additions & 0 deletions exercicios/para-casa/Livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class Livro:
def __init__(self, nome, autor):
self.nome = nome
self.autor = autor
self.esta_emprestado = False
14 changes: 14 additions & 0 deletions exercicios/para-casa/entregaprojeto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@


class ExibirLivros:
def _init_(self, Biblioteca):
self.Biblioteca = Biblioteca

def listar_livros(self):
livros = self.Biblioteca.exibir_livros()
if not livros:
raise ValueError("A biblioteca está vazia. Não há livros para exibir.")

for livro in livros:
print(livro)

1 change: 1 addition & 0 deletions exercicios/para-casa/on26-python-s08-projeto-guiado-II
Submodule on26-python-s08-projeto-guiado-II added at 4831f0
96 changes: 96 additions & 0 deletions exercicios/para-casa/testBiblioteca.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@

from unittest import TestCase
from Biblioteca import Biblioteca
from Livro import Livro

#atualizações na classe testBiblioteca de segunda

class testBiblioteca(TestCase):

def setUp(self):
self.biblioteca = Biblioteca()

def test_init_deve_passar(self):

#Arrange/Act
#biblioteca = Biblioteca()

#Assert
self.assertIsInstance(self.biblioteca.livros, list)

def test_adicionar_livros_deve_passar(self):

#Arrange
#biblioteca = Biblioteca()
nome_livro = 'O mito da beleza'
autor_livro = 'Naomi Wolf'
livro = Livro(nome_livro, autor_livro)

#Act
self.biblioteca.adicionar_livro(livro)

#Assert
self.assertEqual(2, len(self.biblioteca.livros))

def test_adicionar_livro_nao_deve_inserir_numero(self):

#Arrange
#biblioteca = Biblioteca()
livro = 1988

#Act
#biblioteca.adicionar_livro(livro)

#Assert
with self.assertRaises(TypeError):
self.biblioteca.adicionar_livro(livro)



def test_exibir_livro_deve_passar(self):
Copy link
Collaborator

Choose a reason for hiding this comment

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

A partir dessa linha o código não está indentado, acho que é por isso que o teste estava cinza ontem na apresentação e não executava. Vc pode usar os atalhos do VS code para formatar o arquivo ou ir no menu View > Command Palette > Format


#Arrange
#biblioteca = Biblioteca()
nome_livro = 'O mito da beleza'
autor_livro = 'Naomi Wolf'
lista_livros = self.biblioteca.livros
#livro = Livro(nome_livro, autor_livro)

#Act
self.biblioteca.exibir_livro()

#Assert
self.assertEqual(self.biblioteca.exibir_livro(), print(lista_livros))

def test_emprestar_livro_naLista_deve_passar(self):

#Arrange
nome = 'python guia pratico do básico ao avançado'
autor = 'Rafael FVC Santos'
livro = Livro(nome, autor)
self.biblioteca.livros = ['Psicologia Financeira', 'Dom Casmurro', 'O pequeno principe']
lista_livros = self.biblioteca.livros

#Act
self.biblioteca.emprestar_livro(livro)

#Assert
self.assertTrue(livro.nome not in lista_livros)


# Adiciona alguns livros à biblioteca
livro1 = Livro("Livro 1", "Autor 1")
livro2 = Livro("Livro 2", "Autor 2")
Biblioteca.adicionar_livro(livro1)
Biblioteca.adicionar_livro(livro2)

# Verifica que os livros não estão emprestados inicialmente
self.assertFalse(livro1.emprestado)
self.assertFalse(livro2.emprestado)

# Empresta um livro
Biblioteca.emprestar_livro("Livro 1")

# Verifica que apenas o livro emprestado foi atualizado
self.assertTrue(livro1.emprestado)
self.assertFalse(livro2.emprestado)
16 changes: 16 additions & 0 deletions exercicios/para-casa/testLivro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from unittest import TestCase
from Livro import Livro

class TestLivro(TestCase):
def test_init_deve_passar(self):
# Arrange
nome = "Calibã e a bruxa"
autor = "Silvia Federici"

# Act
livro = Livro(nome, autor)

# Assert
self.assertEqual(nome, livro.nome)
self.assertEqual(autor, livro.autor)
self.assertEqual(False, livro.esta_emprestado)
3 changes: 3 additions & 0 deletions exercicios/para-casa/testentregaprojeto
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from unittest import TestCase
from Biblioteca import Biblioteca