From b5f77a21a2b42971155567e00dc17964e38fd2d2 Mon Sep 17 00:00:00 2001 From: JessicaFerreira Date: Wed, 27 Sep 2023 18:11:48 -0300 Subject: [PATCH] Projeto guiado 2 --- exercicios/__init__.py | 0 exercicios/para-casa/__init__.py | 0 exercicios/para-casa/biblioteca_pg2.py | 37 +++++++++++ exercicios/para-casa/livro.py | 5 ++ exercicios/para-casa/main.py | 19 ++++++ exercicios/para-casa/test_livro.py | 16 +++++ exercicios/para-casa/teste_biblioteca.py | 82 ++++++++++++++++++++++++ 7 files changed, 159 insertions(+) create mode 100644 exercicios/__init__.py create mode 100644 exercicios/para-casa/__init__.py create mode 100644 exercicios/para-casa/biblioteca_pg2.py create mode 100644 exercicios/para-casa/livro.py create mode 100644 exercicios/para-casa/main.py create mode 100644 exercicios/para-casa/test_livro.py create mode 100644 exercicios/para-casa/teste_biblioteca.py diff --git a/exercicios/__init__.py b/exercicios/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exercicios/para-casa/__init__.py b/exercicios/para-casa/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exercicios/para-casa/biblioteca_pg2.py b/exercicios/para-casa/biblioteca_pg2.py new file mode 100644 index 0000000..2dafc6f --- /dev/null +++ b/exercicios/para-casa/biblioteca_pg2.py @@ -0,0 +1,37 @@ +from livro import Livro + +class Biblioteca: + def __init__(self): + self.livros = [] + + 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_livros(self, livro: Livro): + #if + return self.livros + + def emprestar_livro(self, livro): + if livro in self.livros: + return True + else: + return False + +""" + def buscar_livro(self, livro: Livro): + if(not isinstance(livro, Livro)): + raise TypeError("Esse livro não faz parte do nosso acervo") + return self.livros + + + + def buscar_livros(self): + id_livro = input("Digite o nome do livro desejado:") + for livro in self.livros: + if livro["nome"] == id_livro: + print(f"O livro xxx de id xxx, está na rua xx, prateleira x.") + return + print("Não possuimos este livro em nossa biblioteca.") + """ \ No newline at end of file diff --git a/exercicios/para-casa/livro.py b/exercicios/para-casa/livro.py new file mode 100644 index 0000000..511863d --- /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 \ No newline at end of file diff --git a/exercicios/para-casa/main.py b/exercicios/para-casa/main.py new file mode 100644 index 0000000..c1f987b --- /dev/null +++ b/exercicios/para-casa/main.py @@ -0,0 +1,19 @@ +""" +from Biblioteca import Biblioteca +from Livro import Livro + +nome_livro = "O mito da beleza" +autor_livro = "Naomi Wolf" +livro_objeto = Livro(nome = nome_livro,autor = autor_livro) + +biblioteca_objeto = Biblioteca() + + +print(biblioteca_objeto.livros) + +biblioteca_objeto.adicionar_livro(livro_objeto) + +for livro in biblioteca_objeto.livros: + print(livro.nome) + print(livro.autor) +""" \ No newline at end of file diff --git a/exercicios/para-casa/test_livro.py b/exercicios/para-casa/test_livro.py new file mode 100644 index 0000000..65dd081 --- /dev/null +++ b/exercicios/para-casa/test_livro.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/teste_biblioteca.py b/exercicios/para-casa/teste_biblioteca.py new file mode 100644 index 0000000..1cedb16 --- /dev/null +++ b/exercicios/para-casa/teste_biblioteca.py @@ -0,0 +1,82 @@ +from unittest import TestCase +from biblioteca_pg2 import Biblioteca +from livro import Livro + +class TestBiblioteca(TestCase): + def setUp(self): + self.biblioteca = Biblioteca() + + def test_init_deve_passar(self): + # Arrange / Act + + # Assert + self.assertIsInstance(self.biblioteca.livros, list) + + def test_adicionar_livro_deve_passar(self): + + #Arrange / organizar os valores p/serem testados + nome_livro = "O mito da beleza" + autor_livro = "Naomi Wolf" + livro = Livro(nome_livro, autor_livro) + + #Act / chamar a função q qro testar + self.biblioteca.adicionar_livro(livro) + + # Assert / comparar o resultado da função com o valor q eu vou informar + self.assertEqual(1, len(self.biblioteca.livros)) + + + def test_adicionar_livro_nao_deve_inserir_numero(self): + #arrange + + livro = 1988 + + #assert/act + with self.assertRaises(TypeError): + self.biblioteca.adicionar_livro(livro) + + def test_exibir_livros_deve_passar(self): + # Arrange + self.biblioteca.livros = ["Jessica"] + nome_livro = "Jessica" + autor_livro = "yy" + livro = Livro(nome_livro , autor_livro) + + # Act + self.biblioteca.exibir_livros(livro) + + # Assert + self.assertEqual(["Jessica"], self.biblioteca.livros) #comparação do livro com biblioteca + + def test_emprestar_livro_deve_passar_ou_nao(self): + #Arrange / organizar os valores p/serem testados + self.biblioteca.livros = ["xxx"] + nome_livro = "xxx" + autor_livro = "RJ" + livro = Livro(nome_livro, autor_livro) + + # Act / chamar a função q qro testar + self.biblioteca.emprestar_livro(Livro) + + # Assert / comparar o resultado da função com o valor q eu vou informar + self.assertTrue + self.assertFalse + + """ + def test_buscar_livro_deve_passar_ou_nao(self): + + #Arrange / organizar os valores p/serem testados + self.biblioteca.livros = ["WWW"] + nome_livro = "WWW" + autor_livro = "JR" + livro = Livro(nome_livro, autor_livro) + + # Act / chamar a função q qro testar + self.biblioteca.buscar_livro(self, livro, Livro) + + # Assert / comparar o resultado da função com o valor q eu vou informar + self.assertIsInstance(self.biblioteca.livros, list) + + with self.assertRaises(TypeError): + self.biblioteca.buscar_livro(livro) +""" \ No newline at end of file