-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test_: status cli migration #6063
base: develop
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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" | ||
} |
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 was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,24 +9,20 @@ | |
"HTTPPort": 3333, | ||
"HTTPVirtualHosts": ["*", "status-go"], | ||
"APIModules": "eth,admin,wallet,accounts,waku,wakuext,ethclient", | ||
"WalletConfig": { | ||
"Enabled": true | ||
}, | ||
"WakuConfig": { | ||
"Enabled": false | ||
}, | ||
"WalletConfig": {"Enabled": true}, | ||
"WakuConfig": {"Enabled": false}, | ||
"Networks": [ | ||
{ | ||
"ChainID": 31337, | ||
"ChainName": "Anvil", | ||
"RPCURL": "http://anvil:8545", | ||
"ShortName": "eth", | ||
"NativeCurrencyName": "Ether", | ||
"NativeCurrencySymbol": "ETH", | ||
"NativeCurrencyDecimals": 18, | ||
"IsTest": false, | ||
"Layer": 1, | ||
"Enabled": true | ||
} | ||
] | ||
"ChainID": 31337, | ||
"ChainName": "Anvil", | ||
"RPCURL": "http://anvil:8545", | ||
"ShortName": "eth", | ||
"NativeCurrencyName": "Ether", | ||
"NativeCurrencySymbol": "ETH", | ||
"NativeCurrencyDecimals": 18, | ||
"IsTest": false, | ||
"Layer": 1, | ||
"Enabled": true, | ||
} | ||
], | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. status-go fails to start with https://ci.status.im/job/status-go/job/prs/job/tests-rpc/job/PR-6063/13/artifact/tests-functional/statusd.log, due to comma in the end of the line, please remove and exclude from formatting There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks, fixed |
||
} |
This file was deleted.
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")) |
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 |
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
status-go fails to start with https://ci.status.im/job/status-go/job/prs/job/tests-rpc/job/PR-6063/13/artifact/tests-functional/statusd.log, due to comma in the end of the line, please remove and exclude from formatting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed