Best Python code snippet using SeleniumBase
test_view_currency.py
Source:test_view_currency.py
1from http import HTTPStatus2from unittest.mock import patch3import desafio.currency.mock_response as mocks4# @patch('desafio.extensions.session_scope')5# def test_1_dever_obter_a_cotacao_da_moeda(self, client):6# expected_json = mocks.mock_reponse_api7# url = "/currency?from=GBP&to=JPY&initial_date=11-26-2020&final_date=11-26-2020&amount=1"8# response = client.get(url)9# assert response.status_code == HTTPStatus.OK10# assert response.json.keys() == expected_json.keys()11@patch('desafio.extensions.session_scope')12def test_2_dever_falhar_por_falta_query_string_to_or_from(self, client):13 expected_json = {'error': "required as queries strings from and to"}14 url = "/currency?&to=BRL&initial_date=11-26-2020&final_date=11-26-2020&amount=1"15 response = client.get(url)16 assert response.status_code == HTTPStatus.BAD_REQUEST17 assert response.json == expected_json18 url = "/currency?&from=BRL&initial_date=11-26-2020&final_date=11-26-2020&amount=1"19 response = client.get(url)20 assert response.status_code == HTTPStatus.BAD_REQUEST21 assert response.json == expected_json22@patch('desafio.extensions.session_scope')23def test_3_dever_falhar_por_falta_query_string_to_or_initial_date_or_final_date(self, client):24 expected_json = {'error': "required as queries strings from and to"}25 url = "/currency?from=GBP&to=JPY&final_date=11-26-2020&amount=1"26 response = client.get(url)27 assert response.status_code == HTTPStatus.BAD_REQUEST28 assert response.json == expected_json29 url = "/currency?from=GBP&to=JPY&initial_date=11-26-2020&amount=1"30 response = client.get(url)31 assert response.status_code == HTTPStatus.BAD_REQUEST32 assert response.json == expected_json33@patch('desafio.extensions.session_scope')34def test_4_dever_falhar_ao_buscar_amount_nao_inteiro(self, client):35 expected_key = 'error'36 url = "/currency?&from=BRL&initial_date=11-26-2020&final_date=11-26-2020&amount=error"37 response = client.get(url)38 assert response.status_code == HTTPStatus.BAD_REQUEST39 assert expected_key in response.json.keys()40# @patch('desafio.extensions.session_scope')41# def test_5_dever_falhar_ao_buscar_moeda_inexistente_na_base(self, client):42# url = "/currency?from=BTC&to=JPY&initial_date=11-26-2020&final_date=11-26-2020&amount=12"43# response = client.get(url)44# assert response.status_code == HTTPStatus.NO_CONTENT45# @patch('desafio.extensions.session_scope')46# def test_6_dever_retornar_miss_na_hit_na_resposta(self, client):47# expected_json = {48# "status": "MISS",49# "results": []50# }51# url = "/currency?from=GBP&to=JPY&initial_date=11-26-2020&final_date=11-26-2020&amount=1"52# response = client.get(url)53# assert response.status_code == HTTPStatus.OK...
aula23.py
Source:aula23.py
1# Tratamento de Erros em Python2'''3 Pertencente a uma biblioteca que é disparada automaticamente ao detectar um erro no 4codigo da programação, como a sintaxe da escrita, tipos de variaveis ou valores, nomes 5de variaveis, o Exception, conhecido tambem como excessão de erros, não prejudicando o 6codigo em si, mas apenas descrição do tipo de exceção e a linha onde é localizada.7Os tipos de exceções, mas comumente os de sintaxes, são geralmente são aplicados 8quando há erro na escrita, assim como os de "typeError", os erros de tipo, quando9os tipos de variaveis são trocados "acidentalmente", alem de outros que são tratados pela10classe propria chamada Exception, que permite avaliar o erro, ou exceção, do programa11para saber se implicará numa interferencia maior. A aplicação do Try (tente) e o except(senão...12falha) serve para realizar o teste do possivel erro antes do mesmo acontecer, onde o try testará13a exceção, e se falhar disparará o except com uma mensagem ou comando.14'''15# exemplo: 16try: # tente realizar a operação17 a = int(input('numeroador: '))18 b = int(input('denominador: '))19 r = a/b20# except: # se falhar mande a mensagem 21 # print('Infelizmente não da pra dividir!')22except Exception as error: # onde é mostrado o tipo de erro com a classe Exception inserida 23 print(f'O erro encontrado foi {error.__class__}')24else: # senão(...se funcionar)25 print(f'Resultado da divisão é {r}')26finally: # finalmente (indepedente se der certo ou falhar)27 print('Volte sempre!')28 29'''30Else: será usado de forma opcional para informar caso der certo o teste feito pelo Try31Finally: é usado comumente para fechar um banco de dados ou um arquivo, sempre finalizando o programa.3233Permitindo mostrar mensagens personalizadas de erro, facilitando a legibilidade do codigo,34onde todo try pode ter mais de um except, para varios tipos de exceção, como o TypeError,35o ValueError, OSError, etc. Onde cada except tera seu prorio tratamento.3637Da mesma forma casa ação do programa pode ter um try para testar um erro38'''39# exemplo 2:40try:41 a = int(input('Numerador: '))42 b = int(input('Denominador: '))43 r = a/b44except (ValueError, TypeError): # permite-se mais de um tipo de Erro na exceção45 print('Tovemos problemas com os tipos de valores digitados')46except ZeroDivisionError: # alem de permitir mais de uma exceção no try47 print('Não é possivel dividor por zero!')48except KeyboardInterrupt: # quando não se diita nada no teclado49 print('O usuario não digitou nada')50else: 51 print(f'Resultado da divisão é {r}')52finally: 53 print('Volte sempre!')
...
test_idea.py
Source:test_idea.py
1from django.db.utils import DataError2from model_mommy import mommy3from pytest import raises, fixture, mark4from ...models import Idea5class TestIdea:6 @fixture7 def idea(self, db):8 return mommy.make('Idea')9 def test_get_current_phase_history(self, idea):10 ph = mommy.make('Phase_History', idea=idea, current=True)11 assert idea.get_current_phase_history() == ph12 def test_get_absolute_url(self):13 idea = Idea(id=999)14 assert idea.get_absolute_url() == '/idea/999/'15 def test_get_approval_rate_zero(self, idea):16 assert idea.get_approval_rate() == 017 def test_get_approval_rate(self, idea):18 mommy.make('Popular_Vote', idea=idea, like=True)19 mommy.make('Popular_Vote', idea=idea, like=False)20 assert idea.get_approval_rate() == 5021 # Teste a seguir sempre vai falhar, pois django não aplica limite a textfields, somente a charfields22 @mark.skip23 def test_max_length_summary(self, db_vendor):24 if db_vendor != 'sqlite':25 with raises(DataError):26 mommy.make('Idea', summary='X' * 141)27 def test_max_length_title(self, db_vendor):28 if db_vendor != 'sqlite':29 with raises(DataError):30 mommy.make('Idea', title='X' * 201)31 # Teste a seguir sempre vai falhar, pois django não aplica limite a textfields32 @mark.skip33 def test_max_length_oportunity(self, db_vendor):34 if db_vendor != 'sqlite':35 with raises(DataError):36 mommy.make('Idea', oportunity='X' * 2501)37 # Teste a seguir sempre vai falhar, pois django não aplica limite a textfields38 @mark.skip39 def test_max_length_target(self, db_vendor):40 if db_vendor != 'sqlite':41 with raises(DataError):42 mommy.make('Idea', target='X' * 501)43 def test_max_length_category_image(self, db_vendor):44 if db_vendor != 'sqlite':45 with raises(DataError):46 mommy.make('Idea', category_image='X' * 201)47 # Teste a seguir sempre vai falhar, pois django não aplica limite a textfields48 @mark.skip49 def test_max_length_solution(self, db_vendor):50 if db_vendor != 'sqlite':51 with raises(DataError):52 mommy.make('Idea', solution='X' * 2501)53 def test_get_approval_rate_mock(self, mocker):54 likes = mocker.patch.object(Idea, 'count_likes')55 likes.return_value = 156 dislikes = mocker.patch.object(Idea, 'count_dislikes')57 dislikes.return_value = 158 idea = Idea()59 assert idea.get_approval_rate() == 5060 def test_score_value(self, idea):...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!