File tree Expand file tree Collapse file tree 3 files changed +41
-2
lines changed
ellar/common/params/resolvers/system_parameters
tests/test_system_parameter_resolvers Expand file tree Collapse file tree 3 files changed +41
-2
lines changed Original file line number Diff line number Diff line change 1
1
import inspect
2
2
import typing as t
3
3
4
+ from ellar .common .exceptions import ImproperConfiguration
4
5
from ellar .common .interfaces import IExecutionContext
5
6
from ellar .common .types import T
6
7
@@ -18,14 +19,14 @@ def __call__(
18
19
self .parameter_name = parameter_name
19
20
self .type_annotation = parameter_annotation
20
21
if not self .data and isinstance (self .type_annotation , inspect .Parameter .empty ):
21
- raise Exception ("Inject Type must have a valid type" )
22
+ raise ImproperConfiguration ("Inject Type must have a valid type" )
22
23
23
24
if (
24
25
self .data
25
26
and parameter_annotation is not inspect .Parameter .empty
26
27
and parameter_annotation is not self .data
27
28
):
28
- raise Exception (
29
+ raise ImproperConfiguration (
29
30
f"Annotation({ self .type_annotation } ) is not the same as service({ self .data } )"
30
31
)
31
32
Original file line number Diff line number Diff line change
1
+ import inspect
2
+ from unittest .mock import Mock
3
+
4
+ import pytest
5
+ from ellar .common .exceptions import ImproperConfiguration
6
+ from ellar .common .params .resolvers .system_parameters import ProviderParameterInjector
7
+ from ellar .core import ExecutionContext
8
+
9
+
10
+ class InjectableType1 :
11
+ name : str = "Ellar"
12
+
13
+
14
+ class InjectableType2 :
15
+ name : str = "Ellar"
16
+
17
+
18
+ def test_provider_setup_fails_for_no_service_defined ():
19
+ provider_resolver = ProviderParameterInjector ()
20
+
21
+ with pytest .raises (ImproperConfiguration ):
22
+ provider_resolver ("parameter_name" , inspect .Parameter .empty )
23
+
24
+
25
+ def test_provider_setup_fails_for_service_mismatch ():
26
+ #
27
+ provider_resolver = ProviderParameterInjector ()
28
+ provider_resolver .data = InjectableType2
29
+
30
+ with pytest .raises (ImproperConfiguration ):
31
+ provider_resolver ("parameter_name" , InjectableType1 )
32
+
33
+
34
+ async def test_provider_setup_fails_when_it_has_not_service (anyio_backend ):
35
+ provider_resolver = ProviderParameterInjector ()
36
+
37
+ with pytest .raises (RuntimeError ):
38
+ await provider_resolver .resolve (Mock (spec = ExecutionContext ))
You can’t perform that action at this time.
0 commit comments