-
Notifications
You must be signed in to change notification settings - Fork 249
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
35 changed files
with
1,183 additions
and
398 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"include": ["tests-functional"], | ||
"reportMissingImports": true, | ||
"reportOptionalMemberAccess": false, | ||
"reportGeneralTypeIssues": false, | ||
"reportInvalidStringEscapeSequence": false, | ||
"reportWildcardImportFromLibrary": false, | ||
"venvPath": ".", | ||
"venv": ".venv", | ||
"typeCheckingMode": "off" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
repos: | ||
- repo: https://github.com/psf/black | ||
rev: 23.7.0 | ||
hooks: | ||
- id: black | ||
args: [--line-length=150] | ||
|
||
- repo: https://github.com/RobertCraigie/pyright-python | ||
rev: v1.1.326 | ||
hooks: | ||
- id: pyright |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import os | ||
import random | ||
from dataclasses import dataclass | ||
import uuid | ||
|
||
|
||
def create_unique_data_dir(base_dir: str, index: int) -> str: | ||
unique_id = str(uuid.uuid4())[:8] | ||
unique_dir = os.path.join(base_dir, f"data_{index}_{unique_id}") | ||
os.makedirs(unique_dir, exist_ok=True) | ||
return unique_dir | ||
|
||
|
||
@dataclass | ||
class Account: | ||
address: str | ||
private_key: str | ||
password: str | ||
passphrase: str | ||
|
||
|
||
user_1 = Account( | ||
address="0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", | ||
private_key="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", | ||
password="Strong12345", | ||
passphrase="test test test test test test test test test test test junk", | ||
) | ||
user_2 = Account( | ||
address="0x70997970c51812dc3a010c7d01b50e0d17dc79c8", | ||
private_key="0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", | ||
password="Strong12345", | ||
passphrase="test test test test test test test test test test nest junk", | ||
) | ||
|
||
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")) | ||
STATUS_BACKEND_URL = os.getenv("STATUS_BACKEND_URL", "http://127.0.0.1") | ||
API_REQUEST_TIMEOUT = int(os.getenv("API_REQUEST_TIMEOUT", "15")) | ||
|
||
SOURCE_DIR = os.path.join(PROJECT_ROOT, "build/bin") | ||
DEST_DIR = os.path.join(PROJECT_ROOT, "tests-functional") | ||
BINARY_PATH = os.path.join(SOURCE_DIR, "status-backend") | ||
DATA_DIR = os.path.join(PROJECT_ROOT, "tests-functional/local") | ||
SIGNALS_DIR = os.path.join(DEST_DIR, "signals") | ||
LOCAL_DATA_DIR1 = create_unique_data_dir(DATA_DIR, random.randint(1, 100)) | ||
LOCAL_DATA_DIR2 = create_unique_data_dir(DATA_DIR, random.randint(1, 100)) | ||
RESOURCES_FOLDER = os.path.join(PROJECT_ROOT, "resources") | ||
|
||
ACCOUNT_PAYLOAD_DEFAULTS = { | ||
"displayName": "user", | ||
"password": "test_password", | ||
"customizationColor": "primary", | ||
} | ||
|
||
NUM_CONTACT_REQUESTS = int(os.getenv("NUM_CONTACT_REQUESTS", "5")) | ||
NUM_MESSAGES = int(os.getenv("NUM_MESSAGES", "20")) | ||
DELAY_BETWEEN_MESSAGES = int(os.getenv("NUM_MESSAGES", "1")) | ||
EVENT_SIGNAL_TIMEOUT_SEC = int(os.getenv("EVENT_SIGNAL_TIMEOUT_SEC", "5")) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import requests | ||
import json | ||
from tenacity import retry, stop_after_delay, wait_fixed | ||
from src.libs.custom_logger import get_custom_logger | ||
|
||
logger = get_custom_logger(__name__) | ||
|
||
|
||
class BaseAPIClient: | ||
def __init__(self, base_url): | ||
self.base_url = base_url | ||
|
||
@retry(stop=stop_after_delay(10), wait=wait_fixed(0.5), reraise=True) | ||
def send_post_request(self, endpoint, payload=None, headers=None, timeout=10): | ||
if headers is None: | ||
headers = {"Content-Type": "application/json"} | ||
if payload is None: | ||
payload = {} | ||
|
||
url = f"{self.base_url}/{endpoint}" | ||
logger.info(f"Sending POST request to {url} with payload: {json.dumps(payload)}") | ||
try: | ||
response = requests.post(url, headers=headers, data=json.dumps(payload), timeout=timeout) | ||
response.raise_for_status() | ||
logger.info(f"Response received: {response.status_code} - {response.text}") | ||
return response.json() | ||
except requests.exceptions.RequestException as e: | ||
logger.error(f"Request to {url} failed: {str(e)}") | ||
raise |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import json | ||
from time import sleep | ||
from src.libs.custom_logger import get_custom_logger | ||
import subprocess | ||
import shutil | ||
import os | ||
from datetime import datetime | ||
from src.constants import PROJECT_ROOT, BINARY_PATH, DEST_DIR, SIGNALS_DIR | ||
from pathlib import Path | ||
|
||
|
||
logger = get_custom_logger(__name__) | ||
Path(SIGNALS_DIR).mkdir(parents=True, exist_ok=True) | ||
|
||
|
||
def delay(num_seconds): | ||
logger.debug(f"Sleeping for {num_seconds} seconds") | ||
sleep(num_seconds) | ||
|
||
|
||
def write_signal_to_file(signal_data): | ||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") | ||
signal_file_path = os.path.join(SIGNALS_DIR, f"signals_log_{timestamp}.json") | ||
with open(signal_file_path, "a+") as file: | ||
json.dump(signal_data, file) | ||
file.write("\n") | ||
|
||
|
||
def build_and_copy_binary(): | ||
logger.info(f"Building status-backend binary in {PROJECT_ROOT}") | ||
result = subprocess.run(["make", "status-backend"], cwd=PROJECT_ROOT, capture_output=True, text=True) | ||
|
||
if result.returncode != 0: | ||
logger.info("Build failed with the following output:") | ||
logger.info(result.stderr) | ||
return False | ||
|
||
if not os.path.exists(BINARY_PATH): | ||
logger.info("Binary build failed or not found! Exiting.") | ||
return False | ||
|
||
logger.info(f"Copying binary to {DEST_DIR}") | ||
shutil.copy(BINARY_PATH, DEST_DIR) | ||
|
||
if os.path.exists(os.path.join(DEST_DIR, "status-backend")): | ||
logger.info("Binary successfully copied to tests-functional directory.") | ||
return True | ||
else: | ||
logger.info("Failed to copy binary to the tests-functional directory.") | ||
return False |
Oops, something went wrong.