Skip to content

Commit 2fcd03a

Browse files
authored
test: use Faker (#6919)
* test: use Faker * chore: snake case
1 parent 3c3a496 commit 2fcd03a

File tree

6 files changed

+49
-27
lines changed

6 files changed

+49
-27
lines changed

tests-functional/clients/services/wakuext.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
from enum import Enum
12
from typing import TypedDict, Union
3+
24
from clients.rpc import RpcClient
35
from clients.services.service import Service
46
from resources.enums import MessageContentType
5-
from enum import Enum
67

78

89
class PushNotificationRegistrationTokenType(Enum):
@@ -205,8 +206,8 @@ def send_group_chat_invitation_rejection(self, invitation_request_id: str):
205206
response = self.rpc_request("sendGroupChatInvitationRejection", params)
206207
return response
207208

208-
def create_community(self, name, color="#ffffff", membership=3):
209-
params = [{"membership": membership, "name": name, "color": color, "description": name}]
209+
def create_community(self, name, description, color="#ffffff", membership=3):
210+
params = [{"membership": membership, "name": name, "color": color, "description": description}]
210211
response = self.rpc_request("createCommunity", params)
211212
return response
212213

tests-functional/clients/status_backend.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
11
import json
22
import logging
3-
import string
3+
import os
44
import tempfile
55
import time
6-
import random
76
import uuid
8-
import requests
9-
import os
107

8+
import requests
119
from tenacity import retry, stop_after_delay, wait_fixed
1210

1311
import resources.constants as constants
14-
from clients.services.wallet import WalletService
15-
from clients.services.wakuext import WakuextService, PushNotificationRegistrationTokenType
12+
from clients.api import ApiClient
13+
from clients.expvar import ExpvarClient
14+
from clients.metrics import Events, StatusGoMetrics
15+
from clients.rpc import RpcClient
1616
from clients.services.accounts import AccountService
17-
from clients.services.settings import SettingsService
1817
from clients.services.connector import ConnectorService
18+
from clients.services.settings import SettingsService
19+
from clients.services.wakuext import (
20+
WakuextService,
21+
PushNotificationRegistrationTokenType,
22+
)
23+
from clients.services.wallet import WalletService
1924
from clients.signals import SignalClient, SignalType
20-
from clients.rpc import RpcClient
21-
from clients.api import ApiClient
22-
from clients.metrics import Events, StatusGoMetrics
23-
from clients.expvar import ExpvarClient
2425
from clients.statusgo_container import StatusBackendContainer
25-
from utils.config import Config
2626
from resources.constants import USE_IPV6, user_1, ANVIL_NETWORK_ID, Account
27+
from utils import fake
2728
from utils import keys
29+
from utils.config import Config
2830

2931
NANOSECONDS_PER_SECOND = 1_000_000_000
3032

@@ -234,10 +236,7 @@ def import_data(self, src_path: str, dest_path: str):
234236
dst.write(src.read())
235237

236238
def _set_display_name(self, **kwargs):
237-
self.display_name = kwargs.get(
238-
"display_name",
239-
f"DISP_NAME_{''.join(random.choices(string.ascii_letters + string.digits + '_-', k=10))}",
240-
)
239+
self.display_name = kwargs.get("display_name", fake.profile_name())
241240

242241
def _create_account_request(self, user, **kwargs):
243242
self.password = kwargs.get("password", user.password)

tests-functional/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ pytest-xdist~=3.6.1
1212
pytest-rerunfailures==13.0
1313
web3~=7.9.0
1414
matplotlib>=3.5.0
15-
eth-typing~=5.2.1
15+
eth-typing~=5.2.1
16+
faker~=37.6.0

tests-functional/steps/messenger.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# pyright: reportOptionalMemberAccess=false
22
# pyright: reportAttributeAccessIssue=false
33
import logging
4-
import random
5-
import string
64
import time
75
from uuid import uuid4
6+
87
import pytest
98
from tenacity import retry, stop_after_delay, wait_fixed
9+
1010
from clients.signals import SignalType
1111
from resources.enums import MessageContentType
1212
from steps.network_conditions import NetworkConditionsSteps
13+
from utils import fake
1314

1415

1516
class MessengerSteps(NetworkConditionsSteps):
@@ -146,8 +147,7 @@ def join_private_group(self, admin=None, member=None) -> str:
146147
return response.get("chats", [])[0].get("id")
147148

148149
def create_community(self, node):
149-
name = f"vac_qa_community_{''.join(random.choices(string.ascii_letters, k=10))}"
150-
response = node.wakuext_service.create_community(name)
150+
response = node.wakuext_service.create_community(fake.community_name(), fake.community_description())
151151
self.community_id = response.get("communities", [{}])[0].get("id")
152152
return self.community_id
153153

tests-functional/tests/test_password.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import logging
2-
import random
32
import re
4-
import string
53

64
import pytest
5+
76
from clients.api import ApiResponseError
87
from clients.signals import SignalType
98
from resources.constants import Account
9+
from utils import fake
1010

1111

1212
@pytest.mark.rpc
@@ -33,7 +33,7 @@ def test_verify_wrong_password(self, password, backend_new_profile):
3333
assert response is False
3434

3535
def test_change_password(self, backend_new_profile):
36-
new_password = "".join(random.choices(string.ascii_letters + string.digits, k=8))
36+
new_password = fake.profile_password(8)
3737
backend = backend_new_profile("user")
3838

3939
# Try a wrong password

tests-functional/utils/fake.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from faker import Faker
2+
3+
# Use a single English locale to minimize provider loading
4+
_faker = Faker("en")
5+
6+
7+
def community_name() -> str:
8+
return _faker.company()
9+
10+
11+
def community_description() -> str:
12+
return _faker.sentence()
13+
14+
15+
def profile_name() -> str:
16+
return _faker.user_name()
17+
18+
19+
def profile_password(length: int = 8) -> str:
20+
# Letters + digits; no special characters to keep compatibility
21+
return _faker.password(length=length, special_chars=False)

0 commit comments

Comments
 (0)