Olá, Bruno!
Pelo que entendi, você está utilizando os métodos startswith
e endswith
da classe str
em Python para validar URLs. Isso é uma ótima prática, pois ajuda a garantir que a URL esteja no formato esperado.
No entanto, notei que você está adicionando "https://" à URL caso ela não comece com essa string. Isso pode ser problemático se a URL original começar com "http://", pois você estará adicionando "https://" no início, resultando em "https://http://restodaurl".
Uma solução para isso seria verificar se a URL começa com "http://" ou "https://", e adicionar "https://" apenas se nenhuma dessas condições for atendida. Aqui está um exemplo de como você poderia fazer isso:
def valida_url(self):
if not self.url:
raise ValueError("A URL está vazia!")
if not self.get_url_base().endswith("/cambio"):
raise ValueError("URL inválida!")
if not (self.get_url_base().startswith("https://") or self.get_url_base().startswith("http://")):
self.url = "https://" + self.url
Dessa forma, você está garantindo que a URL comece com "http://" ou "https://", e não está adicionando "https://" a URLs que já começam com "http://".
Espero ter ajudado e bons estudos!