Skip to content

Commit 2e24f03

Browse files
committed
Client class can use a different base url
1 parent b5e5c6d commit 2e24f03

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

example/example_client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77

88
API_KEY = decouple.config("API_KEY")
9-
CLIENT = Client(api_key=API_KEY)
9+
BASE_URL = decouple.config("LEAKIX_HOST", default=None)
10+
CLIENT = Client(api_key=API_KEY, base_url=BASE_URL)
1011

1112

1213
def example_get_host_filter_plugin():

leakix/client.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ class HostResult(Model):
2525

2626

2727
class Client:
28-
BASE_URL = "https://leakix.net"
29-
30-
def __init__(self, api_key: Optional[str] = None):
28+
def __init__(self,
29+
api_key: Optional[str] = None,
30+
base_url: Optional[str] = "https://leakix.net"):
3131
self.api_key = api_key
32+
self.base_url = base_url
3233
self.headers = {
3334
"Accept": "application/json",
3435
"User-agent": "leakix-client-python/%s" % __VERSION__,
@@ -43,7 +44,7 @@ def get(self, scope: Scope, queries: Optional[List[Query]] = None):
4344
serialized_query = [q.serialize() for q in queries]
4445
serialized_query = " ".join(serialized_query)
4546
serialized_query = "%s" % serialized_query
46-
url = "%s/search" % self.BASE_URL
47+
url = "%s/search" % self.base_url
4748
r = requests.get(
4849
url,
4950
params={"scope": scope.value, "q": serialized_query},
@@ -74,7 +75,7 @@ def get_leak(self, queries: Optional[List[Query]] = None):
7475
return r
7576

7677
def get_host(self, ipv4: str):
77-
url = "%s/host/%s" % (self.BASE_URL, ipv4)
78+
url = "%s/host/%s" % (self.base_url, ipv4)
7879
r = requests.get(url, headers=self.headers)
7980
if r.status_code == 200:
8081
response_json = r.json()

tests/test_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_get_host_success(client):
3030
# remove .json
3131
ipv4 = f.name[:-5]
3232
with requests_mock.Mocker() as m:
33-
url = "%s/host/%s" % (client.BASE_URL, ipv4)
33+
url = "%s/host/%s" % (client.base_url, ipv4)
3434
m.get(url, json=res_json, status_code=200)
3535
response = client.get_host(ipv4)
3636
assert response.is_success()
@@ -47,7 +47,7 @@ def test_get_host_404(client):
4747
ipv4 = f.name[:-5]
4848
client = Client()
4949
with requests_mock.Mocker() as m:
50-
url = "%s/host/%s" % (client.BASE_URL, ipv4)
50+
url = "%s/host/%s" % (client.base_url, ipv4)
5151
m.get(url, json=res_json, status_code=404)
5252
response = client.get_host(ipv4)
5353
assert response.is_error()
@@ -60,7 +60,7 @@ def test_get_host_429(client, fake_ipv4):
6060
status_code = 429
6161
res_json = {"reason": "rate-limit", "status": "error"}
6262
with requests_mock.Mocker() as m:
63-
url = "%s/host/%s" % (client.BASE_URL, fake_ipv4)
63+
url = "%s/host/%s" % (client.base_url, fake_ipv4)
6464
m.get(url, json=res_json, status_code=status_code)
6565
response = client.get_host(fake_ipv4)
6666
assert response.is_error()

0 commit comments

Comments
 (0)