@@ -25,6 +25,11 @@ def clean_name(s):
2525 return re .sub (r'[^\w]' , r'-' , s ).replace ('_' , '-' ).lower ()
2626
2727
28+ def shared_database_name (s ):
29+ """Return a shared database name. Cannot contain special characters except -"""
30+ return re .sub (r'[^\w]' , '' , s ).replace ('-' , '_' ).lower ()
31+
32+
2833@pytest .mark .management
2934class TestCluster (unittest .TestCase ):
3035
@@ -370,39 +375,31 @@ class TestStarterWorkspace(unittest.TestCase):
370375
371376 manager = None
372377 starter_workspace = None
373- starter_workspace_user = {
374- 'username' : 'starter_user' ,
375- 'password' : None ,
376- }
377-
378- @property
379- def starter_username (self ):
380- """Return the username for the starter workspace user."""
381- return self .starter_workspace_user ['username' ]
382-
383- @property
384- def password (self ):
385- """Return the password for the starter workspace user."""
386- return self .starter_workspace_user ['password' ]
387378
388379 @classmethod
389380 def setUpClass (cls ):
390381 cls .manager = s2 .manage_workspaces ()
391382
392- shared_tier_regions = [
383+ shared_tier_regions : NamedList [ Region ] = [
393384 x for x in cls .manager .shared_tier_regions if 'US' in x .name
394385 ]
395- cls .password = secrets .token_urlsafe (20 ) + '-x&$'
386+ cls .starter_username = 'starter_user'
387+ cls .password = secrets .token_urlsafe (20 )
396388
397- name = clean_name (secrets .token_urlsafe (20 )[:20 ])
389+ name = shared_database_name (secrets .token_urlsafe (20 )[:20 ])
390+
391+ cls .database_name = f'starter_db_{ name } '
392+
393+ shared_tier_region : Region = random .choice (shared_tier_regions )
394+
395+ if not shared_tier_region :
396+ raise ValueError ('No shared tier regions found' )
398397
399398 cls .starter_workspace = cls .manager .create_starter_workspace (
400399 f'starter-ws-test-{ name } ' ,
401- database_name = f'starter_db_{ name } ' ,
402- workspace_group = {
403- 'name' : f'starter-wg-test-{ name } ' ,
404- 'cell_id' : random .choice (shared_tier_regions ).id ,
405- },
400+ database_name = cls .database_name ,
401+ provider = shared_tier_region .provider ,
402+ region_name = shared_tier_region .region_name ,
406403 )
407404
408405 cls .starter_workspace .create_user (
@@ -470,14 +467,14 @@ def test_connect(self):
470467 ) as conn :
471468 with conn .cursor () as cur :
472469 cur .execute ('show databases' )
473- assert 'starter_db' in [x [0 ] for x in list (cur )]
470+ assert self . database_name in [x [0 ] for x in list (cur )]
474471
475472 # Test missing endpoint
476473 workspace = self .manager .get_starter_workspace (self .starter_workspace .id )
477474 workspace .endpoint = None
478475
479476 with self .assertRaises (s2 .ManagementError ) as cm :
480- workspace .connect (user = 'admin' , password = self .password )
477+ workspace .connect (user = self . starter_username , password = self .password )
481478
482479 assert 'endpoint' in cm .exception .msg , cm .exception .msg
483480
0 commit comments