import httpx from app import cnpj_lookup def test_documento_com_tamanho_errado_nao_consulta(monkeypatch): chamou = {} monkeypatch.setattr(cnpj_lookup.httpx, "get", lambda *a, **k: chamou.setdefault("ok", True)) assert cnpj_lookup.consultar_cnpj("123") is None assert "ok" not in chamou def test_consulta_com_sucesso_mapeia_campos(monkeypatch): class _RespostaFalsa: status_code = 200 def json(self): return { "razao_social": "EMPRESA TESTE LTDA", "nome_fantasia": "EMPRESA TESTE", "logradouro": "RUA TESTE", "numero": "123", "bairro": "CENTRO", "municipio": "FEIRA DE SANTANA", "uf": "BA", "cep": "44000000", "ddd_telefone_1": "7533334444", "email": "contato@empresateste.com", } monkeypatch.setattr(cnpj_lookup.httpx, "get", lambda url, timeout=None: _RespostaFalsa()) resultado = cnpj_lookup.consultar_cnpj("11222333000181") assert resultado == { "RAZAO": "EMPRESA TESTE LTDA", "FANTASIA": "EMPRESA TESTE", "ENDERECO": "RUA TESTE, 123", "CIDADE": "FEIRA DE SANTANA", "BAIRRO": "CENTRO", "UF": "BA", "CEP": "44000000", "TELEFONE": "7533334444", "EMAIL": "contato@empresateste.com", } def test_consulta_nao_encontrada_retorna_none(monkeypatch): class _RespostaFalsa: status_code = 404 def json(self): return {} monkeypatch.setattr(cnpj_lookup.httpx, "get", lambda url, timeout=None: _RespostaFalsa()) assert cnpj_lookup.consultar_cnpj("11222333000181") is None def test_falha_de_rede_retorna_none(monkeypatch): def _get_com_erro(url, timeout=None): raise httpx.ConnectError("falhou") monkeypatch.setattr(cnpj_lookup.httpx, "get", _get_com_erro) assert cnpj_lookup.consultar_cnpj("11222333000181") is None def test_sem_nome_fantasia_usa_razao_social(monkeypatch): class _RespostaFalsa: status_code = 200 def json(self): return {"razao_social": "EMPRESA TESTE LTDA", "nome_fantasia": None} monkeypatch.setattr(cnpj_lookup.httpx, "get", lambda url, timeout=None: _RespostaFalsa()) resultado = cnpj_lookup.consultar_cnpj("11222333000181") assert resultado["FANTASIA"] == "EMPRESA TESTE LTDA"