diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py new file mode 100644 index 0000000..b123086 --- /dev/null +++ b/exercicios/para-casa/Biblioteca.py @@ -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: + livro['emprestado'] = True + break diff --git a/exercicios/para-casa/Livro.py b/exercicios/para-casa/Livro.py new file mode 100644 index 0000000..7c7092c --- /dev/null +++ b/exercicios/para-casa/Livro.py @@ -0,0 +1,5 @@ +class Livro: + def __init__(self, nome, autor): + self.nome = nome + self.autor = autor + self.esta_emprestado = False diff --git a/exercicios/para-casa/entregaprojeto b/exercicios/para-casa/entregaprojeto new file mode 100644 index 0000000..7429bd0 --- /dev/null +++ b/exercicios/para-casa/entregaprojeto @@ -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) + diff --git a/exercicios/para-casa/on26-python-s08-projeto-guiado-II b/exercicios/para-casa/on26-python-s08-projeto-guiado-II new file mode 160000 index 0000000..4831f05 --- /dev/null +++ b/exercicios/para-casa/on26-python-s08-projeto-guiado-II @@ -0,0 +1 @@ +Subproject commit 4831f0540239abc4ad89ee48719fa76f2c64b077 diff --git a/exercicios/para-casa/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py new file mode 100644 index 0000000..7da1719 --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.py @@ -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): + + #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) \ No newline at end of file diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..12f781d --- /dev/null +++ b/exercicios/para-casa/testLivro.py @@ -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) \ No newline at end of file diff --git a/exercicios/para-casa/testentregaprojeto b/exercicios/para-casa/testentregaprojeto new file mode 100644 index 0000000..f143b41 --- /dev/null +++ b/exercicios/para-casa/testentregaprojeto @@ -0,0 +1,3 @@ +from unittest import TestCase +from Biblioteca import Biblioteca +