diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py new file mode 100644 index 0000000..ad0b781 --- /dev/null +++ b/exercicios/para-casa/Biblioteca.py @@ -0,0 +1,22 @@ +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): + if livro.emprestado == True: + return(f'O livro não está disponível') + elif livro.emprestado: + return(f'Este livro está disponível.') + else: + raise TypeError ('Não temos este livro') + diff --git a/exercicios/para-casa/Livro.py b/exercicios/para-casa/Livro.py new file mode 100644 index 0000000..88b8ae5 --- /dev/null +++ b/exercicios/para-casa/Livro.py @@ -0,0 +1,8 @@ +class Livro: + def __init__(self, nome, autor, emprestado = False, disponivel = True): + self.nome = nome + self.autor = autor + self.emprestado = False + self.disponivel = True + + 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..473ec0d --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.py @@ -0,0 +1,43 @@ +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(self.biblioteca): + #Arrange + lista = Biblioteca() + #Act + return lista diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..d798b28 --- /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.emprestado) + + + 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