21
21
BaseProvider ,
22
22
ExpirableValue ,
23
23
)
24
- from aws_lambda_powertools .utilities .parameters .ssm import (
25
- DEFAULT_MAX_AGE_SECS ,
26
- SSMProvider ,
27
- )
28
- from aws_lambda_powertools .utilities .parameters .types import TransformOptions
24
+ from aws_lambda_powertools .utilities .parameters .ssm import SSMProvider
29
25
30
26
31
27
@pytest .fixture (scope = "function" )
@@ -1715,18 +1711,14 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1715
1711
assert value == mock_value
1716
1712
1717
1713
1718
- def test_get_parameters_by_name (monkeypatch , mock_name , mock_value ):
1714
+ def test_get_parameters_by_name (monkeypatch , mock_name , mock_value , config ):
1719
1715
params = {mock_name : {}}
1720
1716
1721
1717
class TestProvider (SSMProvider ):
1722
- def get_parameters_by_name (
1723
- self ,
1724
- parameters : Dict [str , Dict ],
1725
- transform : TransformOptions = None ,
1726
- decrypt : bool = False ,
1727
- max_age : int = DEFAULT_MAX_AGE_SECS ,
1728
- raise_on_error : bool = True ,
1729
- ) -> Dict [str , str ] | Dict [str , bytes ] | Dict [str , dict ]:
1718
+ def __init__ (self , config : Config = config , ** kwargs ):
1719
+ super ().__init__ (config , ** kwargs )
1720
+
1721
+ def get_parameters_by_name (self , * args , ** kwargs ) -> Dict [str , str ] | Dict [str , bytes ] | Dict [str , dict ]:
1730
1722
return {mock_name : mock_value }
1731
1723
1732
1724
monkeypatch .setitem (parameters .base .DEFAULT_PROVIDERS , "ssm" , TestProvider ())
@@ -1737,7 +1729,7 @@ def get_parameters_by_name(
1737
1729
assert values [mock_name ] == mock_value
1738
1730
1739
1731
1740
- def test_get_parameters_by_name_with_decrypt_override (monkeypatch , mock_name , mock_value ):
1732
+ def test_get_parameters_by_name_with_decrypt_override (monkeypatch , mock_name , mock_value , config ):
1741
1733
# GIVEN 2 out of 3 parameters have decrypt override
1742
1734
decrypt_param = "/api_key"
1743
1735
decrypt_param_two = "/another/secret"
@@ -1746,15 +1738,16 @@ def test_get_parameters_by_name_with_decrypt_override(monkeypatch, mock_name, mo
1746
1738
params = {mock_name : {}, ** decrypt_params }
1747
1739
1748
1740
class TestProvider (SSMProvider ):
1741
+ def __init__ (self , config : Config = config , ** kwargs ):
1742
+ super ().__init__ (config , ** kwargs )
1743
+
1749
1744
def _get (self , name : str , decrypt : bool = False , ** sdk_options ) -> str :
1750
1745
# THEN params with `decrypt` override should use GetParameter` (`_get`)
1751
1746
assert name in decrypt_params
1752
1747
assert decrypt
1753
1748
return decrypted_response
1754
1749
1755
- def _get_parameters_by_name (
1756
- self , parameters : Dict [str , Dict ], raise_on_error : bool = True , decrypt : bool = False
1757
- ) -> Tuple [Dict [str , Any ], List [str ]]:
1750
+ def _get_parameters_by_name (self , * args , ** kwargs ) -> Tuple [Dict [str , Any ], List [str ]]:
1758
1751
return {mock_name : mock_value }, []
1759
1752
1760
1753
monkeypatch .setitem (parameters .base .DEFAULT_PROVIDERS , "ssm" , TestProvider ())
@@ -1769,12 +1762,15 @@ def _get_parameters_by_name(
1769
1762
assert values [decrypt_param_two ] == decrypted_response
1770
1763
1771
1764
1772
- def test_get_parameters_by_name_with_override_and_explicit_global (monkeypatch , mock_name , mock_value ):
1765
+ def test_get_parameters_by_name_with_override_and_explicit_global (monkeypatch , mock_name , mock_value , config ):
1773
1766
# GIVEN a parameter overrides a default setting
1774
1767
default_cache_period = 500
1775
1768
params = {mock_name : {"max_age" : 0 }, "no-override" : {}}
1776
1769
1777
1770
class TestProvider (SSMProvider ):
1771
+ def __init__ (self , config : Config = config , ** kwargs ):
1772
+ super ().__init__ (config , ** kwargs )
1773
+
1778
1774
# NOTE: By convention, we check at `_get_parameters_by_name`
1779
1775
# as that's right before we call SSM, and when options have been merged
1780
1776
# def _get_parameters_by_name(self, parameters: Dict[str, Dict], raise_on_error: bool = True) -> Dict[str, Any]:
@@ -1793,11 +1789,14 @@ def _get_parameters_by_name(
1793
1789
parameters .get_parameters_by_name (parameters = params , max_age = default_cache_period )
1794
1790
1795
1791
1796
- def test_get_parameters_by_name_with_max_batch (monkeypatch , mock_value ):
1792
+ def test_get_parameters_by_name_with_max_batch (monkeypatch , config ):
1797
1793
# GIVEN a batch of 20 parameters
1798
1794
params = {f"param_{ i } " : {} for i in range (20 )}
1799
1795
1800
1796
class TestProvider (SSMProvider ):
1797
+ def __init__ (self , config : Config = config , ** kwargs ):
1798
+ super ().__init__ (config , ** kwargs )
1799
+
1801
1800
def _get_parameters_by_name (
1802
1801
self , parameters : Dict [str , Dict ], raise_on_error : bool = True , decrypt : bool = False
1803
1802
) -> Tuple [Dict [str , Any ], List [str ]]:
@@ -1811,15 +1810,16 @@ def _get_parameters_by_name(
1811
1810
parameters .get_parameters_by_name (parameters = params )
1812
1811
1813
1812
1814
- def test_get_parameters_by_name_cache (monkeypatch , mock_name , mock_value ):
1813
+ def test_get_parameters_by_name_cache (monkeypatch , mock_name , mock_value , config ):
1815
1814
# GIVEN we have a parameter to fetch but is already in cache
1816
1815
params = {mock_name : {}}
1817
1816
cache_key = (mock_name , None )
1818
1817
1819
1818
class TestProvider (SSMProvider ):
1820
- def _get_parameters_by_name (
1821
- self , parameters : Dict [str , Dict ], raise_on_error : bool = True , ** kwargs
1822
- ) -> Dict [str , Any ]:
1819
+ def __init__ (self , config : Config = config , ** kwargs ):
1820
+ super ().__init__ (config , ** kwargs )
1821
+
1822
+ def _get_parameters_by_name (self , * args , ** kwargs ) -> Tuple [Dict [str , Any ], List [str ]]:
1823
1823
raise RuntimeError ("Should not be called if it's in cache" )
1824
1824
1825
1825
provider = TestProvider ()
@@ -1834,12 +1834,13 @@ def _get_parameters_by_name(
1834
1834
assert provider .has_not_expired_in_cache (key = cache_key )
1835
1835
1836
1836
1837
- def test_get_parameters_by_name_empty_batch (monkeypatch , mock_name , mock_value ):
1837
+ def test_get_parameters_by_name_empty_batch (monkeypatch , config ):
1838
1838
# GIVEN we have an empty dictionary
1839
1839
params = {}
1840
1840
1841
1841
class TestProvider (SSMProvider ):
1842
- ...
1842
+ def __init__ (self , config : Config = config , ** kwargs ):
1843
+ super ().__init__ (config , ** kwargs )
1843
1844
1844
1845
monkeypatch .setitem (parameters .base .DEFAULT_PROVIDERS , "ssm" , TestProvider ())
1845
1846
@@ -1937,13 +1938,16 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1937
1938
assert value == mock_value
1938
1939
1939
1940
1940
- def test_get_parameters_by_name_new (monkeypatch , mock_name , mock_value ):
1941
+ def test_get_parameters_by_name_new (monkeypatch , mock_name , mock_value , config ):
1941
1942
"""
1942
1943
Test get_parameters_by_name() without a default provider
1943
1944
"""
1944
1945
params = {mock_name : {}}
1945
1946
1946
1947
class TestProvider (SSMProvider ):
1948
+ def __init__ (self , config : Config = config , ** kwargs ):
1949
+ super ().__init__ (config , ** kwargs )
1950
+
1947
1951
def get_parameters_by_name (self , * args , ** kwargs ) -> Dict [str , str ] | Dict [str , bytes ] | Dict [str , dict ]:
1948
1952
return {mock_name : mock_value }
1949
1953
0 commit comments