77from feast .infra .online_stores .dynamodb import (
88 DynamoDBOnlineStore ,
99 DynamoDBOnlineStoreConfig ,
10+ DynamoDBTable ,
1011)
1112from feast .repo_config import RepoConfig
1213from tests .utils .online_store_utils import (
@@ -50,6 +51,18 @@ def test_online_store_config_default():
5051 assert dynamodb_store_config .table_name_template == "{project}.{table_name}"
5152
5253
54+ def test_dynamodb_table_default_params ():
55+ """Test DynamoDBTable default parameters."""
56+ tbl_name = "dynamodb-test"
57+ aws_region = "us-west-2"
58+ dynamodb_table = DynamoDBTable (tbl_name , aws_region )
59+ assert dynamodb_table .name == tbl_name
60+ assert dynamodb_table .region == aws_region
61+ assert dynamodb_table .endpoint_url is None
62+ assert dynamodb_table ._dynamodb_client is None
63+ assert dynamodb_table ._dynamodb_resource is None
64+
65+
5366def test_online_store_config_custom_params ():
5467 """Test DynamoDBOnlineStoreConfig custom parameters."""
5568 aws_region = "us-west-2"
@@ -72,6 +85,19 @@ def test_online_store_config_custom_params():
7285 assert dynamodb_store_config .table_name_template == table_name_template
7386
7487
88+ def test_dynamodb_table_custom_params ():
89+ """Test DynamoDBTable custom parameters."""
90+ tbl_name = "dynamodb-test"
91+ aws_region = "us-west-2"
92+ endpoint_url = "http://localhost:8000"
93+ dynamodb_table = DynamoDBTable (tbl_name , aws_region , endpoint_url )
94+ assert dynamodb_table .name == tbl_name
95+ assert dynamodb_table .region == aws_region
96+ assert dynamodb_table .endpoint_url == endpoint_url
97+ assert dynamodb_table ._dynamodb_client is None
98+ assert dynamodb_table ._dynamodb_resource is None
99+
100+
75101def test_online_store_config_dynamodb_client ():
76102 """Test DynamoDBOnlineStoreConfig configure DynamoDB client with endpoint_url."""
77103 aws_region = "us-west-2"
@@ -87,6 +113,19 @@ def test_online_store_config_dynamodb_client():
87113 assert dynamodb_client .meta .endpoint_url == endpoint_url
88114
89115
116+ def test_dynamodb_table_dynamodb_client ():
117+ """Test DynamoDBTable configure DynamoDB client with endpoint_url."""
118+ tbl_name = "dynamodb-test"
119+ aws_region = "us-west-2"
120+ endpoint_url = "http://localhost:8000"
121+ dynamodb_table = DynamoDBTable (tbl_name , aws_region , endpoint_url )
122+ dynamodb_client = dynamodb_table ._get_dynamodb_client (
123+ dynamodb_table .region , dynamodb_table .endpoint_url
124+ )
125+ assert dynamodb_client .meta .region_name == aws_region
126+ assert dynamodb_client .meta .endpoint_url == endpoint_url
127+
128+
90129def test_online_store_config_dynamodb_resource ():
91130 """Test DynamoDBOnlineStoreConfig configure DynamoDB Resource with endpoint_url."""
92131 aws_region = "us-west-2"
@@ -102,6 +141,19 @@ def test_online_store_config_dynamodb_resource():
102141 assert dynamodb_resource .meta .client .meta .endpoint_url == endpoint_url
103142
104143
144+ def test_dynamodb_table_dynamodb_resource ():
145+ """Test DynamoDBTable configure DynamoDB resource with endpoint_url."""
146+ tbl_name = "dynamodb-test"
147+ aws_region = "us-west-2"
148+ endpoint_url = "http://localhost:8000"
149+ dynamodb_table = DynamoDBTable (tbl_name , aws_region , endpoint_url )
150+ dynamodb_resource = dynamodb_table ._get_dynamodb_resource (
151+ dynamodb_table .region , dynamodb_table .endpoint_url
152+ )
153+ assert dynamodb_resource .meta .client .meta .region_name == aws_region
154+ assert dynamodb_resource .meta .client .meta .endpoint_url == endpoint_url
155+
156+
105157@mock_dynamodb2
106158@pytest .mark .parametrize ("n_samples" , [5 , 50 , 100 ])
107159def test_online_read (repo_config , n_samples ):
0 commit comments