def test_quando_CriarLivrosTitulosIguais_DisparaException( self, colecao_de_livro, hoje_em_string): titulo = "Machine Learning em COBOL" livro1 = Livro(titulo, 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') livro2 = Livro(titulo, 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '753-3-16-148410-0', hoje_em_string, 'Machine Learning') colecao_de_livro.incluir(livro1) with pytest.raises(Exception): colecao_de_livro.incluir(livro2)
def addLivro(self, livro: Livro) -> None: if not isinstance(livro, Livro): raise Exception("Nao eh objeto da classe Livro") self.__lista[livro] = self.__lista[livro] + 1 self.__total += livro.get_preco()
def test_quando_CriarMultiplosLivros_NaoDisparaException( self, colecao_de_livro, hoje_em_string): livro1 = Livro("Machine Learning em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') livro2 = Livro("Data Science em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '123-3-16-148410-0', hoje_em_string, 'Data Science') livro3 = Livro("Mobile em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '456-3-16-148410-0', hoje_em_string, 'Mobile') colecao_de_livro.incluir(livro1) colecao_de_livro.incluir(livro2) colecao_de_livro.incluir(livro3) assert 3 == len(colecao_de_livro.lista)
def test_qdo_CriaLivroPrecoNulo_dispara_Exception(self, colecao_autores): preco = None # Obrigatorio with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], preco, colecao_autores['num_paginas'], colecao_autores['isbn'], colecao_autores['data'], colecao_autores['categoria'])
def test_qdo_CriaLivroIsbnNaoFormatado_NaoDispara_Exception( self, colecao_autores): isbn = '9783161484100' # formato livre Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], isbn, colecao_autores['data'], colecao_autores['categoria'])
def test_qdo_CriaLivroIsbnNulo_dispara_Exception(self, colecao_autores): isbn = None # obrigatorio with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], isbn, colecao_autores['data'], colecao_autores['categoria'])
def test_qdo_CriaLivroPreenorQue20_dispara_Exception( self, colecao_autores): preco = 19.99 # a partir de 20 with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], preco, colecao_autores['num_paginas'], colecao_autores['isbn'], colecao_autores['data'], colecao_autores['categoria'])
def test_qdo_CriaLivroResumoMais500Chars_dispara_Exception( self, colecao_autores): resumo = 'M' * 501 # Até 500 with pytest.raises(Exception): Livro(colecao_autores['titulo'], resumo, colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], colecao_autores['isbn'], colecao_autores['data'], colecao_autores['categoria'])
def test_qdo_CriaLivroCategoriaNulo_dispara_Exception( self, colecao_autores): categoria = None # nao nula with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], colecao_autores['isbn'], colecao_autores['data'], categoria)
def test_qdo_CriaLivroNumDePagMenorQue100_dispara_Exception( self, colecao_autores): num_paginas = 99 # a partir de 100 with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], num_paginas, colecao_autores['isbn'], colecao_autores['data'], colecao_autores['categoria'])
def colecao_de_livro(self): colecao_de_livro = ColecaoDeLivro() hoje_em_string = datetime.today().date().strftime('%d/%m/%Y') livro1 = Livro("Machine Learning em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 30.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') livro2 = Livro("Data Science em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 29.80, 150, '123-3-16-148410-0', hoje_em_string, 'Data Science') livro3 = Livro("Mobile em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 55.20, 150, '456-3-16-148410-0', hoje_em_string, 'Mobile') colecao_de_livro.incluir(livro1) colecao_de_livro.incluir(livro2) colecao_de_livro.incluir(livro3) return colecao_de_livro
def test_qdo_CriaLivroDataMenorDataAtual_dispara_Exception( self, colecao_autores): hoje = datetime.today().date() ontem = hoje - timedelta(days=1) data = ontem.strftime('%d/%m/%Y') # data futuro with pytest.raises(Exception): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], colecao_autores['isbn'], data, colecao_autores['categoria'])
def test_quando_BuscaTituloIncompleto_RetornaMultLivro( self, colecao_de_livro, hoje_em_string): livro1 = Livro("Machine Learning em COBOL", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') livro2 = Livro("Machine Learning em Go", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '123-3-16-148410-0', hoje_em_string, 'Data Science') livro3 = Livro("Machine Learning em Python", 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '456-3-16-148410-0', hoje_em_string, 'Mobile') colecao_de_livro.incluir(livro1) colecao_de_livro.incluir(livro2) colecao_de_livro.incluir(livro3) titulo_incompleto = "Machine" livro_retornado = colecao_de_livro.busca_livro(titulo_incompleto) assert 3 == len(livro_retornado)
def test_qdo_BuscaLivroCadastrado_RetornaLivro(self, colecao_de_livro, hoje_em_string): titulo = "Machine Learning em COBOL" livro1 = Livro(titulo, 'M' * 500, '<br> **** \n <html>' * 50, 50.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') colecao_de_livro.incluir(livro1) livro_retornado = colecao_de_livro.busca_livro(titulo).pop() assert titulo == livro_retornado.get_titulo()
def test_qdo_CriarLivro_NaoDispara_Exception(self, colecao_autores): Livro(colecao_autores['titulo'], colecao_autores['resumo'], colecao_autores['sumario'], colecao_autores['preco'], colecao_autores['num_paginas'], colecao_autores['isbn'], colecao_autores['data'], colecao_autores['categoria'])
from src.livro import Livro from src.colecaoLivro import ColecaoDeLivro from src.carrinho import Carrinho from src.cupons import Cupons from datetime import datetime colecao_de_livro = ColecaoDeLivro() hoje_em_string = datetime.today().date().strftime('%d/%m/%Y') livro1 = Livro("Machine Learning em COBOL", 'M'*500, '<br> **** \n <html>'*50, 30.20, 150, '978-3-16-148410-0', hoje_em_string, 'Machine Learning') livro2 = Livro("Data Science em COBOL", 'M'*500, '<br> **** \n <html>'*50, 29.80, 150, '123-3-16-148410-0', hoje_em_string, 'Data Science') livro3 = Livro("Mobile em COBOL", 'M'*500, '<br> **** \n <html>'*50, 55.20, 150, '456-3-16-148410-0', hoje_em_string, 'Mobile') colecao_de_livro.incluir(livro1) colecao_de_livro.incluir(livro2) colecao_de_livro.incluir(livro3) carrinho = Carrinho(Cupons()) titulo1 = "Machine Learning em COBOL"