@@ -73,65 +73,6 @@ def test_database_instance(self):
73
73
self .assertTrue (isinstance (db_translated , MySQLDatabase ))
74
74
self .assertEqual (db_translated .ssl_connection , True )
75
75
76
-
77
- class MySQLDatabaseTest (ClientBaseCase ):
78
- """
79
- Tests methods of the MySQLDatabase class
80
- """
81
-
82
- def test_get_instances (self ):
83
- """
84
- Test that database types are properly handled
85
- """
86
- dbs = self .client .database .mysql_instances ()
87
-
88
- self .assertEqual (len (dbs ), 1 )
89
- self .assertEqual (dbs [0 ].allow_list [1 ], "192.0.1.0/24" )
90
- self .assertEqual (dbs [0 ].cluster_size , 3 )
91
- self .assertEqual (dbs [0 ].encrypted , False )
92
- self .assertEqual (dbs [0 ].engine , "mysql" )
93
- self .assertEqual (
94
- dbs [0 ].hosts .primary ,
95
- "lin-123-456-mysql-mysql-primary.servers.linodedb.net" ,
96
- )
97
- self .assertEqual (
98
- dbs [0 ].hosts .secondary ,
99
- "lin-123-456-mysql-primary-private.servers.linodedb.net" ,
100
- )
101
- self .assertEqual (dbs [0 ].id , 123 )
102
- self .assertEqual (dbs [0 ].region , "us-east" )
103
- self .assertEqual (dbs [0 ].updates .duration , 3 )
104
- self .assertEqual (dbs [0 ].version , "8.0.26" )
105
-
106
- def test_create (self ):
107
- """
108
- Test that MySQL databases can be created
109
- """
110
-
111
- with self .mock_post ("/databases/mysql/instances" ) as m :
112
- # We don't care about errors here; we just want to
113
- # validate the request.
114
- try :
115
- self .client .database .mysql_create (
116
- "cool" ,
117
- "us-southeast" ,
118
- "mysql/8.0.26" ,
119
- "g6-standard-1" ,
120
- cluster_size = 3 ,
121
- )
122
- except Exception as e :
123
- logger .warning (
124
- "An error occurred while validating the request: %s" , e
125
- )
126
-
127
- self .assertEqual (m .method , "post" )
128
- self .assertEqual (m .call_url , "/databases/mysql/instances" )
129
- self .assertEqual (m .call_data ["label" ], "cool" )
130
- self .assertEqual (m .call_data ["region" ], "us-southeast" )
131
- self .assertEqual (m .call_data ["engine" ], "mysql/8.0.26" )
132
- self .assertEqual (m .call_data ["type" ], "g6-standard-1" )
133
- self .assertEqual (m .call_data ["cluster_size" ], 3 )
134
-
135
76
def test_mysql_config_options (self ):
136
77
"""
137
78
Test that MySQL configuration options can be retrieved
@@ -1320,15 +1261,86 @@ def test_postgresql_config_options(self):
1320
1261
self .assertFalse (config ["work_mem" ]["requires_restart" ])
1321
1262
self .assertEqual ("integer" , config ["work_mem" ]["type" ])
1322
1263
1264
+ def test_get_mysql_instances (self ):
1265
+ """
1266
+ Test that mysql instances can be retrieved properly
1267
+ """
1268
+ dbs = self .client .database .mysql_instances ()
1323
1269
1324
- class PostgreSQLDatabaseTest (ClientBaseCase ):
1325
- """
1326
- Tests methods of the PostgreSQLDatabase class
1327
- """
1270
+ self .assertEqual (len (dbs ), 1 )
1271
+ self .assertEqual (dbs [0 ].allow_list [1 ], "192.0.1.0/24" )
1272
+ self .assertEqual (dbs [0 ].cluster_size , 3 )
1273
+ self .assertEqual (dbs [0 ].encrypted , False )
1274
+ self .assertEqual (dbs [0 ].engine , "mysql" )
1275
+ self .assertEqual (
1276
+ dbs [0 ].hosts .primary ,
1277
+ "lin-123-456-mysql-mysql-primary.servers.linodedb.net" ,
1278
+ )
1279
+ self .assertEqual (
1280
+ dbs [0 ].hosts .secondary ,
1281
+ "lin-123-456-mysql-primary-private.servers.linodedb.net" ,
1282
+ )
1283
+ self .assertEqual (dbs [0 ].id , 123 )
1284
+ self .assertEqual (dbs [0 ].region , "us-east" )
1285
+ self .assertEqual (dbs [0 ].updates .duration , 3 )
1286
+ self .assertEqual (dbs [0 ].version , "8.0.26" )
1287
+ self .assertEqual (dbs [0 ].engine_config .binlog_retention_period , 600 )
1288
+ self .assertEqual (dbs [0 ].engine_config .mysql .connect_timeout , 10 )
1289
+ self .assertEqual (dbs [0 ].engine_config .mysql .default_time_zone , "+03:00" )
1290
+ self .assertEqual (dbs [0 ].engine_config .mysql .group_concat_max_len , 1024 )
1291
+ self .assertEqual (
1292
+ dbs [0 ].engine_config .mysql .information_schema_stats_expiry , 86400
1293
+ )
1294
+ self .assertEqual (
1295
+ dbs [0 ].engine_config .mysql .innodb_change_buffer_max_size , 30
1296
+ )
1297
+ self .assertEqual (dbs [0 ].engine_config .mysql .innodb_flush_neighbors , 0 )
1298
+ self .assertEqual (dbs [0 ].engine_config .mysql .innodb_ft_min_token_size , 3 )
1299
+ self .assertEqual (
1300
+ dbs [0 ].engine_config .mysql .innodb_ft_server_stopword_table ,
1301
+ "db_name/table_name" ,
1302
+ )
1303
+ self .assertEqual (
1304
+ dbs [0 ].engine_config .mysql .innodb_lock_wait_timeout , 50
1305
+ )
1306
+ self .assertEqual (
1307
+ dbs [0 ].engine_config .mysql .innodb_log_buffer_size , 16777216
1308
+ )
1309
+ self .assertEqual (
1310
+ dbs [0 ].engine_config .mysql .innodb_online_alter_log_max_size ,
1311
+ 134217728 ,
1312
+ )
1313
+ self .assertEqual (dbs [0 ].engine_config .mysql .innodb_read_io_threads , 10 )
1314
+ self .assertTrue (dbs [0 ].engine_config .mysql .innodb_rollback_on_timeout )
1315
+ self .assertEqual (
1316
+ dbs [0 ].engine_config .mysql .innodb_thread_concurrency , 10
1317
+ )
1318
+ self .assertEqual (dbs [0 ].engine_config .mysql .innodb_write_io_threads , 10 )
1319
+ self .assertEqual (dbs [0 ].engine_config .mysql .interactive_timeout , 3600 )
1320
+ self .assertEqual (
1321
+ dbs [0 ].engine_config .mysql .internal_tmp_mem_storage_engine ,
1322
+ "TempTable" ,
1323
+ )
1324
+ self .assertEqual (
1325
+ dbs [0 ].engine_config .mysql .max_allowed_packet , 67108864
1326
+ )
1327
+ self .assertEqual (
1328
+ dbs [0 ].engine_config .mysql .max_heap_table_size , 16777216
1329
+ )
1330
+ self .assertEqual (dbs [0 ].engine_config .mysql .net_buffer_length , 16384 )
1331
+ self .assertEqual (dbs [0 ].engine_config .mysql .net_read_timeout , 30 )
1332
+ self .assertEqual (dbs [0 ].engine_config .mysql .net_write_timeout , 30 )
1333
+ self .assertEqual (dbs [0 ].engine_config .mysql .sort_buffer_size , 262144 )
1334
+ self .assertEqual (
1335
+ dbs [0 ].engine_config .mysql .sql_mode , "ANSI,TRADITIONAL"
1336
+ )
1337
+ self .assertTrue (dbs [0 ].engine_config .mysql .sql_require_primary_key )
1338
+ self .assertEqual (dbs [0 ].engine_config .mysql .tmp_table_size , 16777216 )
1339
+ self .assertEqual (dbs [0 ].engine_config .mysql .wait_timeout , 28800 )
1328
1340
1329
- def test_get_instances (self ):
1341
+ def test_get_postgresql_instances (self ):
1330
1342
"""
1331
- Test that database types are properly handled
1343
+ Test that postgresql instances can be retrieved properly
1332
1344
"""
1333
1345
dbs = self .client .database .postgresql_instances ()
1334
1346
@@ -1350,31 +1362,93 @@ def test_get_instances(self):
1350
1362
self .assertEqual (dbs [0 ].updates .duration , 3 )
1351
1363
self .assertEqual (dbs [0 ].version , "13.2" )
1352
1364
1353
- def test_create (self ):
1354
- """
1355
- Test that PostgreSQL databases can be created
1356
- """
1365
+ print (dbs [0 ].engine_config .pg .__dict__ )
1357
1366
1358
- with self .mock_post ("/databases/postgresql/instances" ) as m :
1359
- # We don't care about errors here; we just want to
1360
- # validate the request.
1361
- try :
1362
- self .client .database .postgresql_create (
1363
- "cool" ,
1364
- "us-southeast" ,
1365
- "postgresql/13.2" ,
1366
- "g6-standard-1" ,
1367
- cluster_size = 3 ,
1368
- )
1369
- except Exception as e :
1370
- logger .warning (
1371
- "An error occurred while validating the request: %s" , e
1372
- )
1373
-
1374
- self .assertEqual (m .method , "post" )
1375
- self .assertEqual (m .call_url , "/databases/postgresql/instances" )
1376
- self .assertEqual (m .call_data ["label" ], "cool" )
1377
- self .assertEqual (m .call_data ["region" ], "us-southeast" )
1378
- self .assertEqual (m .call_data ["engine" ], "postgresql/13.2" )
1379
- self .assertEqual (m .call_data ["type" ], "g6-standard-1" )
1380
- self .assertEqual (m .call_data ["cluster_size" ], 3 )
1367
+ self .assertTrue (dbs [0 ].engine_config .pg_stat_monitor_enable )
1368
+ self .assertEqual (
1369
+ dbs [0 ].engine_config .pglookout .max_failover_replication_time_lag ,
1370
+ 1000 ,
1371
+ )
1372
+ self .assertEqual (dbs [0 ].engine_config .shared_buffers_percentage , 41.5 )
1373
+ self .assertEqual (dbs [0 ].engine_config .work_mem , 4 )
1374
+ self .assertEqual (
1375
+ dbs [0 ].engine_config .pg .autovacuum_analyze_scale_factor , 0.5
1376
+ )
1377
+ self .assertEqual (
1378
+ dbs [0 ].engine_config .pg .autovacuum_analyze_threshold , 100
1379
+ )
1380
+ self .assertEqual (dbs [0 ].engine_config .pg .autovacuum_max_workers , 10 )
1381
+ self .assertEqual (dbs [0 ].engine_config .pg .autovacuum_naptime , 100 )
1382
+ self .assertEqual (
1383
+ dbs [0 ].engine_config .pg .autovacuum_vacuum_cost_delay , 50
1384
+ )
1385
+ self .assertEqual (
1386
+ dbs [0 ].engine_config .pg .autovacuum_vacuum_cost_limit , 100
1387
+ )
1388
+ self .assertEqual (
1389
+ dbs [0 ].engine_config .pg .autovacuum_vacuum_scale_factor , 0.5
1390
+ )
1391
+ self .assertEqual (
1392
+ dbs [0 ].engine_config .pg .autovacuum_vacuum_threshold , 100
1393
+ )
1394
+ self .assertEqual (dbs [0 ].engine_config .pg .bgwriter_delay , 200 )
1395
+ self .assertEqual (dbs [0 ].engine_config .pg .bgwriter_flush_after , 512 )
1396
+ self .assertEqual (dbs [0 ].engine_config .pg .bgwriter_lru_maxpages , 100 )
1397
+ self .assertEqual (dbs [0 ].engine_config .pg .bgwriter_lru_multiplier , 2.0 )
1398
+ self .assertEqual (dbs [0 ].engine_config .pg .deadlock_timeout , 1000 )
1399
+ self .assertEqual (
1400
+ dbs [0 ].engine_config .pg .default_toast_compression , "lz4"
1401
+ )
1402
+ self .assertEqual (
1403
+ dbs [0 ].engine_config .pg .idle_in_transaction_session_timeout , 100
1404
+ )
1405
+ self .assertTrue (dbs [0 ].engine_config .pg .jit )
1406
+ self .assertEqual (dbs [0 ].engine_config .pg .max_files_per_process , 100 )
1407
+ self .assertEqual (dbs [0 ].engine_config .pg .max_locks_per_transaction , 100 )
1408
+ self .assertEqual (
1409
+ dbs [0 ].engine_config .pg .max_logical_replication_workers , 32
1410
+ )
1411
+ self .assertEqual (dbs [0 ].engine_config .pg .max_parallel_workers , 64 )
1412
+ self .assertEqual (
1413
+ dbs [0 ].engine_config .pg .max_parallel_workers_per_gather , 64
1414
+ )
1415
+ self .assertEqual (
1416
+ dbs [0 ].engine_config .pg .max_pred_locks_per_transaction , 1000
1417
+ )
1418
+ self .assertEqual (dbs [0 ].engine_config .pg .max_replication_slots , 32 )
1419
+ self .assertEqual (dbs [0 ].engine_config .pg .max_slot_wal_keep_size , 100 )
1420
+ self .assertEqual (dbs [0 ].engine_config .pg .max_stack_depth , 3507152 )
1421
+ self .assertEqual (
1422
+ dbs [0 ].engine_config .pg .max_standby_archive_delay , 1000
1423
+ )
1424
+ self .assertEqual (
1425
+ dbs [0 ].engine_config .pg .max_standby_streaming_delay , 1000
1426
+ )
1427
+ self .assertEqual (dbs [0 ].engine_config .pg .max_wal_senders , 32 )
1428
+ self .assertEqual (dbs [0 ].engine_config .pg .max_worker_processes , 64 )
1429
+ self .assertEqual (
1430
+ dbs [0 ].engine_config .pg .password_encryption , "scram-sha-256"
1431
+ )
1432
+ self .assertEqual (dbs [0 ].engine_config .pg .pg_partman_bgw_interval , 3600 )
1433
+ self .assertEqual (
1434
+ dbs [0 ].engine_config .pg .pg_partman_bgw_role , "myrolename"
1435
+ )
1436
+ self .assertFalse (
1437
+ dbs [0 ].engine_config .pg .pg_stat_monitor_pgsm_enable_query_plan
1438
+ )
1439
+ self .assertEqual (
1440
+ dbs [0 ].engine_config .pg .pg_stat_monitor_pgsm_max_buckets , 10
1441
+ )
1442
+ self .assertEqual (
1443
+ dbs [0 ].engine_config .pg .pg_stat_statements_track , "top"
1444
+ )
1445
+ self .assertEqual (dbs [0 ].engine_config .pg .temp_file_limit , 5000000 )
1446
+ self .assertEqual (dbs [0 ].engine_config .pg .timezone , "Europe/Helsinki" )
1447
+ self .assertEqual (
1448
+ dbs [0 ].engine_config .pg .track_activity_query_size , 1024
1449
+ )
1450
+ self .assertEqual (dbs [0 ].engine_config .pg .track_commit_timestamp , "off" )
1451
+ self .assertEqual (dbs [0 ].engine_config .pg .track_functions , "all" )
1452
+ self .assertEqual (dbs [0 ].engine_config .pg .track_io_timing , "off" )
1453
+ self .assertEqual (dbs [0 ].engine_config .pg .wal_sender_timeout , 60000 )
1454
+ self .assertEqual (dbs [0 ].engine_config .pg .wal_writer_delay , 50 )
0 commit comments