1616
1717
1818DEFAULT_SSL_CONFIG = RedshiftSSLConfig ().to_dict ()
19+ DEFAULT_TCP_KEEPALIVE_CONFIG = {"tcp_keepalive" : True }
1920
2021
2122class AuthMethod (TestCase ):
@@ -61,9 +62,9 @@ def adapter(self):
6162class TestInvalidMethod (AuthMethod ):
6263 def test_invalid_auth_method (self ):
6364 # we have to set method this way, otherwise it won't validate
64- self .config .credentials .method = "badmethod"
65+ self .config .credentials .method = "badmethod" # type: ignore
6566 with self .assertRaises (FailedToConnectError ) as context :
66- connect_method_factory = get_connection_method (self .config .credentials )
67+ connect_method_factory = get_connection_method (self .config .credentials ) # type: ignore
6768 connect_method_factory .get_connect_method ()
6869 self .assertTrue ("badmethod" in context .exception .msg )
6970
@@ -144,6 +145,7 @@ def test_default(self):
144145 region = None ,
145146 is_serverless = False ,
146147 ** DEFAULT_SSL_CONFIG ,
148+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
147149 )
148150
149151 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -164,6 +166,7 @@ def test_explicit_auth_method(self):
164166 timeout = None ,
165167 is_serverless = False ,
166168 ** DEFAULT_SSL_CONFIG ,
169+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
167170 )
168171
169172 def test_database_verification_is_case_insensitive (self ):
@@ -258,6 +261,7 @@ def test_default(self):
258261 serverless_work_group = None ,
259262 serverless_acct_id = None ,
260263 ** DEFAULT_SSL_CONFIG ,
264+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
261265 )
262266
263267 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -289,6 +293,7 @@ def test_profile(self):
289293 serverless_work_group = None ,
290294 serverless_acct_id = None ,
291295 ** DEFAULT_SSL_CONFIG ,
296+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
292297 )
293298
294299 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -321,6 +326,7 @@ def test_explicit(self):
321326 serverless_work_group = None ,
322327 serverless_acct_id = None ,
323328 ** DEFAULT_SSL_CONFIG ,
329+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
324330 )
325331
326332 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -357,6 +363,7 @@ def test_explicit_workgroup_name(self):
357363 serverless_work_group = "my_workgroup" ,
358364 serverless_acct_id = "0123456789" ,
359365 ** DEFAULT_SSL_CONFIG ,
366+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
360367 )
361368
362369
@@ -389,6 +396,7 @@ def test_profile_default_region(self):
389396 serverless_work_group = None ,
390397 serverless_acct_id = None ,
391398 ** DEFAULT_SSL_CONFIG ,
399+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
392400 )
393401
394402 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -420,6 +428,7 @@ def test_profile_explicit_serverless(self):
420428 serverless_work_group = None ,
421429 serverless_acct_id = None ,
422430 ** DEFAULT_SSL_CONFIG ,
431+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
423432 )
424433
425434 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -451,6 +460,7 @@ def test_profile_explicit_region(self):
451460 serverless_work_group = None ,
452461 serverless_acct_id = None ,
453462 ** DEFAULT_SSL_CONFIG ,
463+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
454464 )
455465
456466 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -478,6 +488,7 @@ def test_profile_invalid_serverless(self):
478488 port = 5439 ,
479489 timeout = None ,
480490 ** DEFAULT_SSL_CONFIG ,
491+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
481492 )
482493 self .assertTrue ("'host' must be provided" in context .exception .msg )
483494
@@ -518,6 +529,7 @@ def test_default(self):
518529 serverless_work_group = None ,
519530 serverless_acct_id = None ,
520531 ** DEFAULT_SSL_CONFIG ,
532+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
521533 )
522534
523535 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -548,6 +560,7 @@ def test_profile(self):
548560 serverless_work_group = None ,
549561 serverless_acct_id = None ,
550562 ** DEFAULT_SSL_CONFIG ,
563+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
551564 )
552565
553566
@@ -582,6 +595,7 @@ def test_profile_default_region(self):
582595 serverless_work_group = None ,
583596 serverless_acct_id = None ,
584597 ** DEFAULT_SSL_CONFIG ,
598+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
585599 )
586600
587601 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -613,6 +627,7 @@ def test_profile_ignore_cluster(self):
613627 serverless_work_group = None ,
614628 serverless_acct_id = None ,
615629 ** DEFAULT_SSL_CONFIG ,
630+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
616631 )
617632
618633 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -645,6 +660,7 @@ def test_profile_explicit_region(self):
645660 serverless_work_group = None ,
646661 serverless_acct_id = None ,
647662 ** DEFAULT_SSL_CONFIG ,
663+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
648664 )
649665
650666 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -676,6 +692,7 @@ def test_profile_invalid_serverless(self):
676692 serverless_work_group = None ,
677693 serverless_acct_id = None ,
678694 ** DEFAULT_SSL_CONFIG ,
695+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
679696 )
680697 self .assertTrue ("'host' must be provided" in context .exception .msg )
681698
@@ -716,6 +733,7 @@ def test_profile_idc_browser_all_fields(self):
716733 idc_region = "us-east-1" ,
717734 issuer_url = "https://identitycenter.amazonaws.com/ssoins-randomchars" ,
718735 listen_port = 1111 ,
736+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
719737 )
720738
721739 @mock .patch ("redshift_connector.connect" , MagicMock ())
@@ -750,6 +768,7 @@ def test_profile_idc_browser_required_fields_only(self):
750768 idc_client_display_name = "Amazon Redshift driver" ,
751769 idc_region = "us-east-1" ,
752770 issuer_url = "https://identitycenter.amazonaws.com/ssoins-randomchars" ,
771+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
753772 )
754773
755774 def test_invalid_adapter_missing_fields (self ):
@@ -779,6 +798,7 @@ def test_invalid_adapter_missing_fields(self):
779798 listen_port = 1111 ,
780799 idp_response_timeout = 60 ,
781800 idc_client_display_name = "my display" ,
801+ ** DEFAULT_TCP_KEEPALIVE_CONFIG ,
782802 )
783803
784804 assert (
0 commit comments