From fd7e322a82090bf83745ca04d1c9a1eef67c6e34 Mon Sep 17 00:00:00 2001 From: maricarvi Date: Wed, 27 Sep 2023 20:00:08 -0300 Subject: [PATCH 1/3] Tentativa de resposta ao projeto de casa --- exercicios/para-casa/Biblioteca.py | 24 ++++++++ exercicios/para-casa/Livro.py | 7 +++ exercicios/para-casa/__init__.py | 0 exercicios/para-casa/testBiblioteca.py | 80 ++++++++++++++++++++++++++ exercicios/para-casa/testLivro.py | 19 ++++++ material/anotacoes.md | 13 +++++ 6 files changed, 143 insertions(+) create mode 100644 exercicios/para-casa/Biblioteca.py create mode 100644 exercicios/para-casa/Livro.py create mode 100644 exercicios/para-casa/__init__.py create mode 100644 exercicios/para-casa/testBiblioteca.py create mode 100644 exercicios/para-casa/testLivro.py create mode 100644 material/anotacoes.md diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py new file mode 100644 index 0000000..50cbb6c --- /dev/null +++ b/exercicios/para-casa/Biblioteca.py @@ -0,0 +1,24 @@ +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): + return self.livros + + def emprestar_livro(self, livro: Livro): + lista_livros = self.livros + if livro.nome not in lista_livros: + print(f'Este livro não existe em nossa lista.') + else: + if livro.estaEmprestado == True: + print(f'{livro.nome} já está emprestado.') + else: + print(f'{livro} está disponível. Obrigada por utilizar nossos serviços!') + livro.estaEmprestado = True \ 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..e1ed1ff --- /dev/null +++ b/exercicios/para-casa/Livro.py @@ -0,0 +1,7 @@ +class Livro: + def __init__(self, nome, autor): + self.nome = nome + self.autor = autor + self.estaEmprestado = False + + \ No newline at end of file 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/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py new file mode 100644 index 0000000..e5f1b8b --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.py @@ -0,0 +1,80 @@ +from unittest import TestCase +from Biblioteca import Biblioteca +from Livro import Livro + +class TestBiblioteca(TestCase): + + def setUp(self): + self.biblioteca = Biblioteca() + + def test_init_deve_passar(self): + # Arrange / Act + biblioteca = Biblioteca() + + # Assert + self.assertIsInstance(biblioteca.livros, list) + + def test_adicionarlivro_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(1, len(biblioteca.livros)) + + def test_adicionar_livro_não_aceita_num(self): + # Arrange + biblioteca = Biblioteca() + livro = 1988 + + # Act / Assert + with self.assertRaises(TypeError): + biblioteca.adicionar_livro(livro) + + def test_exibir_livros_deve_passar(self): + #Arrange + biblioteca.livros = ['O Método Fair Play'] + lista = self.biblioteca.livros + + #Act + self.biblioteca.exibir_livros() + + #Assert + self.assertEqual(lista,['O Método Fair Play']) + + def test_emprestar_livro_naLista_deve_passar(self): + + #Arrange + nome = 'O mito da beleza' + autor = 'Igea Martins' + livro = Livro(nome, autor) + self.biblioteca.livros = ['O mito da beleza', 'Eram os deuses astronautas', 'Tarântula'] + lista_livros = self.biblioteca.livros + + #Act + self.biblioteca.emprestar_livro(livro) + + #Assert + self.assertTrue(livro.nome in lista_livros) + + def test_emprestar_livro_inexistente_deve_passar(self): + + #Arrange + nome = 'Pururuca' + autor = 'Igea Martins' + livro = Livro(nome, autor) + self.biblioteca.livros = ['O mito da beleza', 'Eram os deuses astronautas', 'Tarântula'] + lista_livros = self.biblioteca.livros + + #Act + self.biblioteca.emprestar_livro(livro) + + #Assert + self.assertTrue(livro.nome not in lista_livros) + + diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..75b8384 --- /dev/null +++ b/exercicios/para-casa/testLivro.py @@ -0,0 +1,19 @@ +from unittest import TestCase +from Livro import Livro + +class TestLivro(TestCase): + def test_init_deve_passar(self): + # Arrange + nome = 'O caminho' + autor = 'Peter Mallouk' + + # Act + livro = Livro(nome, autor) + + # Assert + self.assertEqual(nome, livro.nome) + self.assertEqual(autor, livro.autor) + self.assertEqual(False, livro.estaEmprestado) + + + diff --git a/material/anotacoes.md b/material/anotacoes.md new file mode 100644 index 0000000..a0c31c3 --- /dev/null +++ b/material/anotacoes.md @@ -0,0 +1,13 @@ +raise - estoura uma exceção + +duas formas de importar: +1. import tananana +2. from tanana import tanana + +entender o conceito de self pelo amor de deus? + +quando rodamos testes não é o python que está usando é a biblioteca que vai rodar os testes +então ao invés do run vamos em + +-m unittest testBiblioteca.py +-m unittest testLivro.py From fee9a0cae41fd191c200a2adba6413924be1e34f Mon Sep 17 00:00:00 2001 From: maricarvi Date: Thu, 28 Sep 2023 18:48:12 -0300 Subject: [PATCH 2/3] =?UTF-8?q?Altera=C3=A7=C3=B5es=20no=20c=C3=B3digo=20d?= =?UTF-8?q?o=20exerc=C3=ADcio=20para=20casa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercicios/para-casa/Biblioteca.py | 14 +++++------ exercicios/para-casa/Livro.py | 9 +++---- exercicios/para-casa/testBiblioteca.py | 33 +------------------------- 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py index 50cbb6c..ba6d23a 100644 --- a/exercicios/para-casa/Biblioteca.py +++ b/exercicios/para-casa/Biblioteca.py @@ -13,12 +13,10 @@ def exibir_livros(self): return self.livros def emprestar_livro(self, livro: Livro): - lista_livros = self.livros - if livro.nome not in lista_livros: - print(f'Este livro não existe em nossa lista.') + if livro.emprestado == True: + return(f'O livro não está disponível') + elif livro.emprestado: + return(f'Este livro está disponível.') else: - if livro.estaEmprestado == True: - print(f'{livro.nome} já está emprestado.') - else: - print(f'{livro} está disponível. Obrigada por utilizar nossos serviços!') - livro.estaEmprestado = True \ No newline at end of file + raise TypeError ('Não temos este livro') + diff --git a/exercicios/para-casa/Livro.py b/exercicios/para-casa/Livro.py index e1ed1ff..88b8ae5 100644 --- a/exercicios/para-casa/Livro.py +++ b/exercicios/para-casa/Livro.py @@ -1,7 +1,8 @@ class Livro: - def __init__(self, nome, autor): + def __init__(self, nome, autor, emprestado = False, disponivel = True): self.nome = nome self.autor = autor - self.estaEmprestado = False - - \ No newline at end of file + self.emprestado = False + self.disponivel = True + + diff --git a/exercicios/para-casa/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py index e5f1b8b..95fad66 100644 --- a/exercicios/para-casa/testBiblioteca.py +++ b/exercicios/para-casa/testBiblioteca.py @@ -36,7 +36,7 @@ def test_adicionar_livro_não_aceita_num(self): with self.assertRaises(TypeError): biblioteca.adicionar_livro(livro) - def test_exibir_livros_deve_passar(self): + def test_exibirlivros(self): #Arrange biblioteca.livros = ['O Método Fair Play'] lista = self.biblioteca.livros @@ -47,34 +47,3 @@ def test_exibir_livros_deve_passar(self): #Assert self.assertEqual(lista,['O Método Fair Play']) - def test_emprestar_livro_naLista_deve_passar(self): - - #Arrange - nome = 'O mito da beleza' - autor = 'Igea Martins' - livro = Livro(nome, autor) - self.biblioteca.livros = ['O mito da beleza', 'Eram os deuses astronautas', 'Tarântula'] - lista_livros = self.biblioteca.livros - - #Act - self.biblioteca.emprestar_livro(livro) - - #Assert - self.assertTrue(livro.nome in lista_livros) - - def test_emprestar_livro_inexistente_deve_passar(self): - - #Arrange - nome = 'Pururuca' - autor = 'Igea Martins' - livro = Livro(nome, autor) - self.biblioteca.livros = ['O mito da beleza', 'Eram os deuses astronautas', 'Tarântula'] - lista_livros = self.biblioteca.livros - - #Act - self.biblioteca.emprestar_livro(livro) - - #Assert - self.assertTrue(livro.nome not in lista_livros) - - From 9a3770322eda4b9729fc98b42036bad99d5a9d48 Mon Sep 17 00:00:00 2001 From: maricarvi Date: Thu, 28 Sep 2023 19:15:42 -0300 Subject: [PATCH 3/3] Nem sei mais --- exercicios/para-casa/Biblioteca.py | 2 +- exercicios/para-casa/testBiblioteca.py | 12 +++--------- exercicios/para-casa/testLivro.py | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py index ba6d23a..ad0b781 100644 --- a/exercicios/para-casa/Biblioteca.py +++ b/exercicios/para-casa/Biblioteca.py @@ -10,7 +10,7 @@ def adicionar_livro(self, livro: Livro): self.livros.append(livro) def exibir_livros(self): - return self.livros + return self.livros def emprestar_livro(self, livro: Livro): if livro.emprestado == True: diff --git a/exercicios/para-casa/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py index 95fad66..473ec0d 100644 --- a/exercicios/para-casa/testBiblioteca.py +++ b/exercicios/para-casa/testBiblioteca.py @@ -36,14 +36,8 @@ def test_adicionar_livro_não_aceita_num(self): with self.assertRaises(TypeError): biblioteca.adicionar_livro(livro) - def test_exibirlivros(self): + def test_exibir_livros(self.biblioteca): #Arrange - biblioteca.livros = ['O Método Fair Play'] - lista = self.biblioteca.livros - + lista = Biblioteca() #Act - self.biblioteca.exibir_livros() - - #Assert - self.assertEqual(lista,['O Método Fair Play']) - + return lista diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py index 75b8384..d798b28 100644 --- a/exercicios/para-casa/testLivro.py +++ b/exercicios/para-casa/testLivro.py @@ -13,7 +13,7 @@ def test_init_deve_passar(self): # Assert self.assertEqual(nome, livro.nome) self.assertEqual(autor, livro.autor) - self.assertEqual(False, livro.estaEmprestado) + self.assertEqual(False, livro.emprestado)