Skip to content

Commit 5c9b841

Browse files
Use RNG from b2sdk for bucket name generation in tests
1 parent c1e7885 commit 5c9b841

File tree

2 files changed

+3
-55
lines changed

2 files changed

+3
-55
lines changed

test/integration/conftest.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import pytest
2525
from b2sdk.v3 import B2_ACCOUNT_INFO_ENV_VAR, XDG_CONFIG_HOME_ENV_VAR
26-
from b2sdk.v3.testing import random_token
26+
from b2sdk.v3.testing import NODE_DESCRIPTION, RNG_SEED, random_token
2727

2828
from b2._internal.version_listing import (
2929
CLI_VERSIONS,
@@ -33,7 +33,7 @@
3333
)
3434

3535
from ..helpers import b2_uri_args_v3, b2_uri_args_v4
36-
from .helpers import NODE_DESCRIPTION, RNG_SEED, CommandLine, bucket_name_part
36+
from .helpers import CommandLine
3737
from .persistent_bucket import (
3838
PersistentBucketAggregate,
3939
get_or_create_persistent_bucket,
@@ -221,11 +221,6 @@ def general_bucket_name_prefix():
221221
return GENERAL_BUCKET_NAME_PREFIX
222222

223223

224-
@pytest.fixture(scope='session')
225-
def bucket_name_prefix(general_bucket_name_prefix):
226-
return f'{general_bucket_name_prefix}{bucket_name_part(8)}'
227-
228-
229224
@pytest.fixture(scope='session')
230225
def bucket_manager(
231226
bucket_manager,

test/integration/helpers.py

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -14,65 +14,34 @@
1414
import os
1515
import pathlib
1616
import platform
17-
import random
1817
import re
19-
import secrets
2018
import shutil
21-
import string
2219
import subprocess
2320
import sys
2421
import threading
25-
import time
2622
import warnings
2723
from collections.abc import Iterable
28-
from hashlib import sha256
2924
from os import environ, linesep
3025
from pathlib import Path
3126
from tempfile import mkdtemp, mktemp
3227
from typing import TypeVar
3328

3429
from b2sdk.v3 import (
3530
ALL_CAPABILITIES,
36-
BUCKET_NAME_CHARS_UNIQ,
3731
EncryptionAlgorithm,
3832
EncryptionKey,
3933
EncryptionMode,
4034
EncryptionSetting,
4135
fix_windows_path_limit,
4236
)
43-
from b2sdk.v3.testing import ONE_HOUR_MILLIS, BucketManager
37+
from b2sdk.v3.testing import ONE_HOUR_MILLIS, RNG, BucketManager
4438

4539
from b2._internal.console_tool import Command
4640

4741
logger = logging.getLogger(__name__)
4842

4943
ONE_DAY_MILLIS = ONE_HOUR_MILLIS * 24
5044

51-
NODE_DESCRIPTION = f'{platform.node()}: {platform.platform()} {platform.python_version()}'
52-
53-
54-
def get_seed() -> str:
55-
"""
56-
Get seed for random number generator.
57-
58-
The `WORKFLOW_ID` variable has to be set in the CI to uniquely identify
59-
the current workflow (including the attempt)
60-
"""
61-
seed = ''.join(
62-
(
63-
os.getenv('WORKFLOW_ID', secrets.token_hex(8)),
64-
NODE_DESCRIPTION,
65-
str(time.time_ns()),
66-
os.getenv('PYTEST_XDIST_WORKER', 'gw0'),
67-
)
68-
)
69-
return sha256(seed.encode()).hexdigest()[:16]
70-
71-
72-
RNG_SEED = get_seed()
73-
RNG = random.Random(RNG_SEED)
74-
RNG_COUNTER = 0
75-
7645
SSE_NONE = EncryptionSetting(
7746
mode=EncryptionMode.NONE,
7847
)
@@ -93,22 +62,6 @@ def get_seed() -> str:
9362
)
9463

9564

96-
def random_token(length: int, chars=string.ascii_letters) -> str:
97-
return ''.join(RNG.choice(chars) for _ in range(length))
98-
99-
100-
def bucket_name_part(length: int) -> str:
101-
assert length >= 1
102-
global RNG_COUNTER
103-
RNG_COUNTER += 1
104-
name_part = random_token(length, BUCKET_NAME_CHARS_UNIQ)
105-
logger.info('RNG_SEED: %s', RNG_SEED)
106-
logger.info('RNG_COUNTER: %i, length: %i', RNG_COUNTER, length)
107-
logger.info('name_part: %s', name_part)
108-
logger.info('WORKFLOW_ID: %s', os.getenv('WORKFLOW_ID'))
109-
return name_part
110-
111-
11265
T = TypeVar('T')
11366

11467

0 commit comments

Comments
 (0)