-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconftest.py
More file actions
48 lines (38 loc) · 1.27 KB
/
Copy pathconftest.py
File metadata and controls
48 lines (38 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
from urllib.parse import urlencode
import requests
from data.endpoints import Endpoints
from data.generator.generator import Generator
import pytest
from dotenv import load_dotenv
from modules.registered_module import RegisteredModule
from utils.schemas.registered_schema.request_schema import RegisteredRequestSchema
load_dotenv()
BASE_URL = os.getenv("BASE_URL")
generator = Generator()
module = RegisteredModule()
endpoint = Endpoints()
@pytest.fixture(scope="session")
def get_auth_token():
user_info = next(generator.registered_data())
request_body = module.prepare_data(
schema=RegisteredRequestSchema,
data=user_info
)
response = requests.post(
url=f"{endpoint.base_url}{endpoint.api_client_url}",
data=request_body
)
token = response.json()["accessToken"]
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {token}"
}
return headers
@pytest.fixture
def create_endpoint():
def _build_endpoint(path: str, **kwargs):
url = fr"{BASE_URL}{path}"
params = {key: value for key, value in kwargs.items() if value is not None}
return f"{url}?{urlencode(params, doseq=True)}" if params else url
return _build_endpoint