@@ -73,65 +73,6 @@ def test_database_instance(self):
7373 self .assertTrue (isinstance (db_translated , MySQLDatabase ))
7474 self .assertEqual (db_translated .ssl_connection , True )
7575
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-
13576 def test_mysql_config_options (self ):
13677 """
13778 Test that MySQL configuration options can be retrieved
@@ -1320,15 +1261,86 @@ def test_postgresql_config_options(self):
13201261 self .assertFalse (config ["work_mem" ]["requires_restart" ])
13211262 self .assertEqual ("integer" , config ["work_mem" ]["type" ])
13221263
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 ()
13231269
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 )
13281340
1329- def test_get_instances (self ):
1341+ def test_get_postgresql_instances (self ):
13301342 """
1331- Test that database types are properly handled
1343+ Test that postgresql instances can be retrieved properly
13321344 """
13331345 dbs = self .client .database .postgresql_instances ()
13341346
@@ -1350,31 +1362,93 @@ def test_get_instances(self):
13501362 self .assertEqual (dbs [0 ].updates .duration , 3 )
13511363 self .assertEqual (dbs [0 ].version , "13.2" )
13521364
1353- def test_create (self ):
1354- """
1355- Test that PostgreSQL databases can be created
1356- """
1365+ print (dbs [0 ].engine_config .pg .__dict__ )
13571366
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