evgeniy778 commited on
Commit
eb4def8
·
verified ·
1 Parent(s): 105bb42

Create test_compute_provider_selector.py

Browse files
Files changed (1) hide show
  1. test_compute_provider_selector.py +189 -0
test_compute_provider_selector.py ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # =====================================================
2
+ # Apckeyl Framework
3
+ # Version 1.0
4
+ # test_compute_provider_selector.py
5
+ # =====================================================
6
+
7
+ """
8
+ Tests for Compute Provider Selector.
9
+
10
+ Version 1.0
11
+ """
12
+
13
+ from compute_provider_selector import (
14
+ ComputeProviderSelector,
15
+ )
16
+
17
+ from compute_provider_registry import (
18
+ ComputeProviderRegistry,
19
+ )
20
+
21
+ from example_compute_provider import (
22
+ ExampleComputeProvider,
23
+ )
24
+
25
+
26
+ # =====================================================
27
+ # Test Selector Creation
28
+ # =====================================================
29
+
30
+ def test_selector_creation():
31
+
32
+ registry = ComputeProviderRegistry()
33
+
34
+ selector = ComputeProviderSelector(
35
+ registry
36
+ )
37
+
38
+ assert selector is not None
39
+
40
+ assert selector.registry is registry
41
+
42
+
43
+ # =====================================================
44
+ # Test Missing Registry
45
+ # =====================================================
46
+
47
+ def test_selector_requires_registry():
48
+
49
+ try:
50
+
51
+ ComputeProviderSelector(
52
+ None
53
+ )
54
+
55
+ assert False
56
+
57
+ except ValueError as error:
58
+
59
+ assert str(error) == (
60
+ "Registry is required"
61
+ )
62
+
63
+
64
+ # =====================================================
65
+ # Test Provider Selection
66
+ # =====================================================
67
+
68
+ def test_select_provider():
69
+
70
+ registry = ComputeProviderRegistry()
71
+
72
+ provider = ExampleComputeProvider()
73
+
74
+ registry.register(
75
+ provider
76
+ )
77
+
78
+ selector = ComputeProviderSelector(
79
+ registry
80
+ )
81
+
82
+ result = selector.select(
83
+ "example_task"
84
+ )
85
+
86
+ assert result is provider
87
+
88
+
89
+ # =====================================================
90
+ # Test Unknown Task
91
+ # =====================================================
92
+
93
+ def test_select_unknown_task():
94
+
95
+ registry = ComputeProviderRegistry()
96
+
97
+ provider = ExampleComputeProvider()
98
+
99
+ registry.register(
100
+ provider
101
+ )
102
+
103
+ selector = ComputeProviderSelector(
104
+ registry
105
+ )
106
+
107
+ result = selector.select(
108
+ "unknown_task"
109
+ )
110
+
111
+ assert result is None
112
+
113
+
114
+ # =====================================================
115
+ # Test Empty Task
116
+ # =====================================================
117
+
118
+ def test_select_empty_task():
119
+
120
+ registry = ComputeProviderRegistry()
121
+
122
+ provider = ExampleComputeProvider()
123
+
124
+ registry.register(
125
+ provider
126
+ )
127
+
128
+ selector = ComputeProviderSelector(
129
+ registry
130
+ )
131
+
132
+ assert selector.select(
133
+ ""
134
+ ) is None
135
+
136
+ assert selector.select(
137
+ None
138
+ ) is None
139
+
140
+
141
+ # =====================================================
142
+ # Test Availability
143
+ # =====================================================
144
+
145
+ def test_is_available():
146
+
147
+ registry = ComputeProviderRegistry()
148
+
149
+ provider = ExampleComputeProvider()
150
+
151
+ registry.register(
152
+ provider
153
+ )
154
+
155
+ selector = ComputeProviderSelector(
156
+ registry
157
+ )
158
+
159
+ assert selector.is_available(
160
+ "example_task"
161
+ ) is True
162
+
163
+
164
+ # =====================================================
165
+ # Test Unavailable Task
166
+ # =====================================================
167
+
168
+ def test_is_not_available():
169
+
170
+ registry = ComputeProviderRegistry()
171
+
172
+ provider = ExampleComputeProvider()
173
+
174
+ registry.register(
175
+ provider
176
+ )
177
+
178
+ selector = ComputeProviderSelector(
179
+ registry
180
+ )
181
+
182
+ assert selector.is_available(
183
+ "unknown_task"
184
+ ) is False
185
+
186
+
187
+ # =====================================================
188
+ # End of File
189
+ # =====================================================