44from pytest_httpx import HTTPXMock
55
66from firebolt .common import Settings
7- from firebolt .common .exception import NoAttachedDatabaseError
7+ from firebolt .common .exception import FireboltError , NoAttachedDatabaseError
88from firebolt .model .engine import Engine
99from firebolt .model .instance_type import InstanceType
10+ from firebolt .model .region import Region
1011from firebolt .service .manager import ResourceManager
1112
1213
@@ -16,8 +17,8 @@ def test_engine_create(
1617 auth_url : str ,
1718 provider_callback : Callable ,
1819 provider_url : str ,
19- instance_type_callback : Callable ,
20- instance_type_url : str ,
20+ instance_type_region_1_callback : Callable ,
21+ instance_type_region_1_url : str ,
2122 region_callback : Callable ,
2223 region_url : str ,
2324 settings : Settings ,
@@ -32,7 +33,9 @@ def test_engine_create(
3233):
3334 httpx_mock .add_callback (auth_callback , url = auth_url )
3435 httpx_mock .add_callback (provider_callback , url = provider_url )
35- httpx_mock .add_callback (instance_type_callback , url = instance_type_url )
36+ httpx_mock .add_callback (
37+ instance_type_region_1_callback , url = instance_type_region_1_url
38+ )
3639 httpx_mock .add_callback (account_id_callback , url = account_id_url )
3740 httpx_mock .add_callback (auth_callback , url = auth_url )
3841 httpx_mock .add_callback (region_callback , url = region_url )
@@ -44,14 +47,44 @@ def test_engine_create(
4447 assert engine .name == engine_name
4548
4649
50+ def test_engine_create_no_available_types (
51+ httpx_mock : HTTPXMock ,
52+ auth_callback : Callable ,
53+ auth_url : str ,
54+ provider_callback : Callable ,
55+ provider_url : str ,
56+ instance_type_empty_callback : Callable ,
57+ instance_type_region_2_url : str ,
58+ settings : Settings ,
59+ mock_instance_types : List [InstanceType ],
60+ engine_name : str ,
61+ account_id_callback : Callable ,
62+ account_id_url : str ,
63+ engine_url : str ,
64+ region_2 : Region ,
65+ ):
66+ httpx_mock .add_callback (auth_callback , url = auth_url )
67+ httpx_mock .add_callback (provider_callback , url = provider_url )
68+ httpx_mock .add_callback (
69+ instance_type_empty_callback , url = instance_type_region_2_url
70+ )
71+ httpx_mock .add_callback (account_id_callback , url = account_id_url )
72+ httpx_mock .add_callback (auth_callback , url = auth_url )
73+
74+ manager = ResourceManager (settings = settings )
75+
76+ with raises (FireboltError ):
77+ manager .engines .create (name = engine_name , region = region_2 )
78+
79+
4780def test_engine_no_attached_database (
4881 httpx_mock : HTTPXMock ,
4982 auth_callback : Callable ,
5083 auth_url : str ,
5184 provider_callback : Callable ,
5285 provider_url : str ,
53- instance_type_callback : Callable ,
54- instance_type_url : str ,
86+ instance_type_region_1_callback : Callable ,
87+ instance_type_region_1_url : str ,
5588 region_callback : Callable ,
5689 region_url : str ,
5790 settings : Settings ,
@@ -72,7 +105,9 @@ def test_engine_no_attached_database(
72105):
73106 httpx_mock .add_callback (auth_callback , url = auth_url )
74107 httpx_mock .add_callback (provider_callback , url = provider_url )
75- httpx_mock .add_callback (instance_type_callback , url = instance_type_url )
108+ httpx_mock .add_callback (
109+ instance_type_region_1_callback , url = instance_type_region_1_url
110+ )
76111 httpx_mock .add_callback (account_id_callback , url = account_id_url )
77112 httpx_mock .add_callback (auth_callback , url = auth_url )
78113 httpx_mock .add_callback (region_callback , url = region_url )
@@ -92,8 +127,8 @@ def test_engine_start_binding_to_missing_database(
92127 auth_url : str ,
93128 provider_callback : Callable ,
94129 provider_url : str ,
95- instance_type_callback : Callable ,
96- instance_type_url : str ,
130+ instance_type_region_1_callback : Callable ,
131+ instance_type_region_1_url : str ,
97132 region_callback : Callable ,
98133 region_url : str ,
99134 settings : Settings ,
@@ -112,7 +147,9 @@ def test_engine_start_binding_to_missing_database(
112147):
113148 httpx_mock .add_callback (auth_callback , url = auth_url )
114149 httpx_mock .add_callback (provider_callback , url = provider_url )
115- httpx_mock .add_callback (instance_type_callback , url = instance_type_url )
150+ httpx_mock .add_callback (
151+ instance_type_region_1_callback , url = instance_type_region_1_url
152+ )
116153 httpx_mock .add_callback (account_id_callback , url = account_id_url )
117154 httpx_mock .add_callback (auth_callback , url = auth_url )
118155 httpx_mock .add_callback (region_callback , url = region_url )
@@ -133,8 +170,8 @@ def test_get_connection(
133170 auth_url : str ,
134171 provider_callback : Callable ,
135172 provider_url : str ,
136- instance_type_callback : Callable ,
137- instance_type_url : str ,
173+ instance_type_region_1_callback : Callable ,
174+ instance_type_region_1_url : str ,
138175 region_callback : Callable ,
139176 region_url : str ,
140177 settings : Settings ,
@@ -154,7 +191,9 @@ def test_get_connection(
154191):
155192 httpx_mock .add_callback (auth_callback , url = auth_url )
156193 httpx_mock .add_callback (provider_callback , url = provider_url )
157- httpx_mock .add_callback (instance_type_callback , url = instance_type_url )
194+ httpx_mock .add_callback (
195+ instance_type_region_1_callback , url = instance_type_region_1_url
196+ )
158197 httpx_mock .add_callback (account_id_callback , url = account_id_url )
159198 httpx_mock .add_callback (auth_callback , url = auth_url )
160199 httpx_mock .add_callback (region_callback , url = region_url )
@@ -178,8 +217,8 @@ def test_attach_to_database(
178217 provider_url : str ,
179218 region_callback : Callable ,
180219 region_url : str ,
181- instance_type_callback : Callable ,
182- instance_type_url : str ,
220+ instance_type_region_1_callback : Callable ,
221+ instance_type_region_1_url : str ,
183222 settings : Settings ,
184223 account_id_callback : Callable ,
185224 account_id_url : str ,
@@ -200,7 +239,9 @@ def test_attach_to_database(
200239):
201240 httpx_mock .add_callback (auth_callback , url = auth_url )
202241 httpx_mock .add_callback (provider_callback , url = provider_url )
203- httpx_mock .add_callback (instance_type_callback , url = instance_type_url )
242+ httpx_mock .add_callback (
243+ instance_type_region_1_callback , url = instance_type_region_1_url
244+ )
204245 httpx_mock .add_callback (account_id_callback , url = account_id_url )
205246 httpx_mock .add_callback (auth_callback , url = auth_url )
206247 httpx_mock .add_callback (bindings_callback , url = bindings_url )
0 commit comments