16
16
from botocore .config import Config
17
17
from boto3 .session import Session
18
18
19
- from pyqldb .driver .qldb_driver import QldbDriver
19
+ from pyqldb .driver .qldb_driver import QldbDriver , SERVICE_DESCRIPTION
20
20
from pyqldb .errors import DriverClosedError
21
21
from pyqldb .session .qldb_session import QldbSession
22
22
27
27
DEFAULT_BACKOFF_BASE = 10
28
28
DEFAULT_TIMEOUT_SECONDS = 0.001
29
29
EMPTY_STRING = ''
30
- MOCK_CONFIG = Config ()
30
+ MOCK_CONFIG = Config (user_agent_extra = 'user_agent' )
31
31
MOCK_LEDGER_NAME = 'QLDB'
32
32
MOCK_MESSAGE = 'message'
33
33
MOCK_BOTO3_SESSION = Session ()
@@ -39,22 +39,18 @@ class TestQldbDriver(TestCase):
39
39
@patch ('pyqldb.driver.qldb_driver.AtomicInteger' )
40
40
@patch ('pyqldb.driver.qldb_driver.BoundedSemaphore' )
41
41
@patch ('pyqldb.driver.qldb_driver.client' )
42
- @patch ('pyqldb.driver.qldb_driver.Config.merge' )
43
- def test_constructor_with_valid_config (self , mock_config_merge , mock_client , mock_bounded_semaphore ,
42
+ def test_constructor_with_valid_config (self , mock_client , mock_bounded_semaphore ,
44
43
mock_atomic_integer , mock_queue ):
45
44
mock_queue .return_value = mock_queue
46
45
mock_atomic_integer .return_value = mock_atomic_integer
47
46
mock_bounded_semaphore .return_value = mock_bounded_semaphore
48
47
mock_client .return_value = mock_client
49
- mock_config_merge .return_value = mock_config_merge
50
- mock_config_merge .max_pool_connections = DEFAULT_MAX_CONCURRENT_TRANSACTIONS
51
48
52
49
qldb_driver = QldbDriver (MOCK_LEDGER_NAME , config = MOCK_CONFIG )
53
50
54
- mock_config_merge .assert_called_once ()
55
51
mock_client .assert_called_once_with (DEFAULT_SESSION_NAME , aws_access_key_id = None ,
56
52
aws_secret_access_key = None , aws_session_token = None ,
57
- config = mock_config_merge , endpoint_url = None , region_name = None , verify = None )
53
+ config = MOCK_CONFIG , endpoint_url = None , region_name = None , verify = None )
58
54
self .assertEqual (qldb_driver ._ledger_name , MOCK_LEDGER_NAME )
59
55
self .assertEqual (qldb_driver ._retry_config .retry_limit , DEFAULT_RETRY_LIMIT )
60
56
self .assertEqual (qldb_driver ._retry_config .base , DEFAULT_BACKOFF_BASE )
@@ -77,26 +73,22 @@ def test_constructor_with_invalid_config(self, mock_client):
77
73
@patch ('pyqldb.driver.qldb_driver.AtomicInteger' )
78
74
@patch ('pyqldb.driver.qldb_driver.BoundedSemaphore' )
79
75
@patch ('pyqldb.driver.qldb_driver.client' )
80
- @patch ('pyqldb.driver.qldb_driver.Config.merge' )
81
- def test_default_constructor_with_parameters (self , mock_config_merge , mock_client , mock_bounded_semaphore ,
76
+ def test_default_constructor_with_parameters (self , mock_client , mock_bounded_semaphore ,
82
77
mock_atomic_integer , mock_queue ):
83
78
mock_queue .return_value = mock_queue
84
79
mock_atomic_integer .return_value = mock_atomic_integer
85
80
mock_bounded_semaphore .return_value = mock_bounded_semaphore
86
81
mock_client .return_value = mock_client
87
- mock_config_merge .return_value = mock_config_merge
88
- mock_config_merge .max_pool_connections = DEFAULT_MAX_CONCURRENT_TRANSACTIONS
89
82
90
83
qldb_driver = QldbDriver (MOCK_LEDGER_NAME , region_name = EMPTY_STRING , verify = EMPTY_STRING ,
91
84
endpoint_url = EMPTY_STRING , aws_access_key_id = EMPTY_STRING ,
92
85
aws_secret_access_key = EMPTY_STRING , aws_session_token = EMPTY_STRING ,
93
86
config = MOCK_CONFIG )
94
87
95
- mock_config_merge .assert_called_once ()
96
88
mock_client .assert_called_once_with (DEFAULT_SESSION_NAME , region_name = EMPTY_STRING , verify = EMPTY_STRING ,
97
89
endpoint_url = EMPTY_STRING , aws_access_key_id = EMPTY_STRING ,
98
90
aws_secret_access_key = EMPTY_STRING , aws_session_token = EMPTY_STRING ,
99
- config = mock_config_merge )
91
+ config = MOCK_CONFIG )
100
92
self .assertEqual (qldb_driver ._ledger_name , MOCK_LEDGER_NAME )
101
93
self .assertEqual (qldb_driver ._retry_config .retry_limit , DEFAULT_RETRY_LIMIT )
102
94
self .assertEqual (qldb_driver ._retry_config .base , DEFAULT_BACKOFF_BASE )
@@ -108,28 +100,22 @@ def test_default_constructor_with_parameters(self, mock_config_merge, mock_clien
108
100
mock_atomic_integer .assert_called_once_with (DEFAULT_MAX_CONCURRENT_TRANSACTIONS )
109
101
mock_queue .assert_called_once_with ()
110
102
111
- @patch ('pyqldb.driver.qldb_driver.Config.merge' )
112
- def test_constructor_with_boto3_session (self , mock_config_merge ):
103
+ def test_constructor_with_boto3_session (self ):
113
104
mock_session = Mock (spec = MOCK_BOTO3_SESSION )
114
- mock_config_merge .return_value = mock_config_merge
115
- mock_config_merge .max_pool_connections = DEFAULT_MAX_CONCURRENT_TRANSACTIONS
116
105
117
106
qldb_driver = QldbDriver (MOCK_LEDGER_NAME , boto3_session = mock_session , config = MOCK_CONFIG )
118
- mock_session .client .assert_called_once_with (DEFAULT_SESSION_NAME , config = mock_config_merge , endpoint_url = None ,
107
+ mock_session .client .assert_called_once_with (DEFAULT_SESSION_NAME , config = MOCK_CONFIG , endpoint_url = None ,
119
108
verify = None )
120
109
self .assertEqual (qldb_driver ._client , mock_session .client ())
110
+ self .assertTrue (SERVICE_DESCRIPTION in qldb_driver ._config .user_agent_extra )
121
111
122
112
@patch ('pyqldb.driver.qldb_driver.logger.warning' )
123
- @patch ('pyqldb.driver.qldb_driver.Config.merge' )
124
- def test_constructor_with_boto3_session_and_parameters_that_may_overwrite (self , mock_config_merge ,
125
- mock_logger_warning ):
113
+ def test_constructor_with_boto3_session_and_parameters_that_may_overwrite (self , mock_logger_warning ):
126
114
mock_session = Mock (spec = MOCK_BOTO3_SESSION )
127
- mock_config_merge .return_value = mock_config_merge
128
- mock_config_merge .max_pool_connections = DEFAULT_MAX_CONCURRENT_TRANSACTIONS
129
115
region_name = 'region_name'
130
116
qldb_driver = QldbDriver (MOCK_LEDGER_NAME , boto3_session = mock_session , config = MOCK_CONFIG ,
131
117
region_name = region_name )
132
- mock_session .client .assert_called_once_with (DEFAULT_SESSION_NAME , config = mock_config_merge , endpoint_url = None ,
118
+ mock_session .client .assert_called_once_with (DEFAULT_SESSION_NAME , config = MOCK_CONFIG , endpoint_url = None ,
133
119
verify = None )
134
120
self .assertEqual (qldb_driver ._client , mock_session .client ())
135
121
mock_logger_warning .assert_called_once ()
0 commit comments