7
7
import yaml
8
8
from pydantic import ValidationError
9
9
10
- from jumpstarter .config import (
11
- ClientConfigV1Alpha1 ,
12
- ClientConfigV1Alpha1Drivers ,
13
- )
14
- from jumpstarter .config .env import JMP_DRIVERS_ALLOW , JMP_ENDPOINT , JMP_TOKEN
10
+ from jumpstarter .config import ClientConfigV1Alpha1 , ClientConfigV1Alpha1Drivers , ObjectMeta
11
+ from jumpstarter .config .env import JMP_DRIVERS_ALLOW , JMP_ENDPOINT , JMP_NAME , JMP_NAMESPACE , JMP_TOKEN
15
12
16
13
17
14
def test_client_ensure_exists_makes_dir (monkeypatch : pytest .MonkeyPatch ):
@@ -22,12 +19,16 @@ def test_client_ensure_exists_makes_dir(monkeypatch: pytest.MonkeyPatch):
22
19
23
20
24
21
def test_client_config_try_from_env (monkeypatch : pytest .MonkeyPatch ):
22
+ monkeypatch .setenv (JMP_NAMESPACE , "default" )
23
+ monkeypatch .setenv (JMP_NAME , "testclient" )
25
24
monkeypatch .setenv (JMP_TOKEN , "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" )
26
25
monkeypatch .setenv (JMP_ENDPOINT , "jumpstarter.my-lab.com:1443" )
27
26
monkeypatch .setenv (JMP_DRIVERS_ALLOW , "jumpstarter.drivers.*,vendorpackage.*" )
28
27
29
28
config = ClientConfigV1Alpha1 .try_from_env ()
30
29
assert config .name == "default"
30
+ assert config .metadata .namespace == "default"
31
+ assert config .metadata .name == "testclient"
31
32
assert config .token == "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz"
32
33
assert config .endpoint == "jumpstarter.my-lab.com:1443"
33
34
assert config .drivers .allow == ["jumpstarter.drivers.*" , "vendorpackage.*" ]
@@ -40,25 +41,33 @@ def test_client_config_try_from_env_not_set():
40
41
41
42
42
43
def test_client_config_from_env (monkeypatch : pytest .MonkeyPatch ):
44
+ monkeypatch .setenv (JMP_NAMESPACE , "default" )
45
+ monkeypatch .setenv (JMP_NAME , "testclient" )
43
46
monkeypatch .setenv (JMP_TOKEN , "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" )
44
47
monkeypatch .setenv (JMP_ENDPOINT , "jumpstarter.my-lab.com:1443" )
45
48
monkeypatch .setenv (JMP_DRIVERS_ALLOW , "jumpstarter.drivers.*,vendorpackage.*" )
46
49
47
50
config = ClientConfigV1Alpha1 .from_env ()
48
51
assert config .name == "default"
52
+ assert config .metadata .namespace == "default"
53
+ assert config .metadata .name == "testclient"
49
54
assert config .token == "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz"
50
55
assert config .endpoint == "jumpstarter.my-lab.com:1443"
51
56
assert config .drivers .allow == ["jumpstarter.drivers.*" , "vendorpackage.*" ]
52
57
assert config .drivers .unsafe is False
53
58
54
59
55
60
def test_client_config_from_env_allow_unsafe (monkeypatch : pytest .MonkeyPatch ):
61
+ monkeypatch .setenv (JMP_NAMESPACE , "default" )
62
+ monkeypatch .setenv (JMP_NAME , "testclient" )
56
63
monkeypatch .setenv (JMP_TOKEN , "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" )
57
64
monkeypatch .setenv (JMP_ENDPOINT , "jumpstarter.my-lab.com:1443" )
58
65
monkeypatch .setenv (JMP_DRIVERS_ALLOW , "UNSAFE" )
59
66
60
67
config = ClientConfigV1Alpha1 .from_env ()
61
68
assert config .name == "default"
69
+ assert config .metadata .namespace == "default"
70
+ assert config .metadata .name == "testclient"
62
71
assert config .token == "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz"
63
72
assert config .endpoint == "jumpstarter.my-lab.com:1443"
64
73
assert config .drivers .allow == []
@@ -67,6 +76,8 @@ def test_client_config_from_env_allow_unsafe(monkeypatch: pytest.MonkeyPatch):
67
76
68
77
@pytest .mark .parametrize ("missing_field" , [JMP_TOKEN , JMP_ENDPOINT ])
69
78
def test_client_config_from_env_missing_field_raises (monkeypatch : pytest .MonkeyPatch , missing_field ):
79
+ monkeypatch .setenv (JMP_NAMESPACE , "default" )
80
+ monkeypatch .setenv (JMP_NAME , "testclient" )
70
81
monkeypatch .setenv (JMP_TOKEN , "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" )
71
82
monkeypatch .setenv (JMP_ENDPOINT , "jumpstarter.my-lab.com:1443" )
72
83
monkeypatch .setenv (JMP_DRIVERS_ALLOW , "jumpstarter.drivers.*,vendorpackage.*" )
@@ -80,6 +91,9 @@ def test_client_config_from_env_missing_field_raises(monkeypatch: pytest.MonkeyP
80
91
def test_client_config_from_file ():
81
92
CLIENT_CONFIG = """apiVersion: jumpstarter.dev/v1alpha1
82
93
kind: ClientConfig
94
+ metadata:
95
+ namespace: default
96
+ name: testclient
83
97
endpoint: jumpstarter.my-lab.com:1443
84
98
token: dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz
85
99
drivers:
@@ -92,6 +106,8 @@ def test_client_config_from_file():
92
106
f .close ()
93
107
config = ClientConfigV1Alpha1 .from_file (f .name )
94
108
assert config .name == f .name .split ("/" )[- 1 ]
109
+ assert config .metadata .namespace == "default"
110
+ assert config .metadata .name == "testclient"
95
111
assert config .endpoint == "jumpstarter.my-lab.com:1443"
96
112
assert config .token == "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz"
97
113
assert config .drivers .allow == ["jumpstarter.drivers.*" , "vendorpackage.*" ]
@@ -160,6 +176,7 @@ def test_client_config_load():
160
176
"from_file" ,
161
177
return_value = ClientConfigV1Alpha1 (
162
178
name = "another" ,
179
+ metadata = ObjectMeta (namespace = "default" , name = "another" ),
163
180
endpoint = "abc" ,
164
181
token = "123" ,
165
182
drivers = ClientConfigV1Alpha1Drivers (allow = [], unsafe = False ),
@@ -180,6 +197,9 @@ def test_client_config_load_not_found_raises():
180
197
def test_client_config_save (monkeypatch : pytest .MonkeyPatch ):
181
198
CLIENT_CONFIG = """apiVersion: jumpstarter.dev/v1alpha1
182
199
kind: ClientConfig
200
+ metadata:
201
+ namespace: default
202
+ name: testclient
183
203
endpoint: jumpstarter.my-lab.com:1443
184
204
tls:
185
205
ca: ''
@@ -193,6 +213,7 @@ def test_client_config_save(monkeypatch: pytest.MonkeyPatch):
193
213
"""
194
214
config = ClientConfigV1Alpha1 (
195
215
name = "testclient" ,
216
+ metadata = ObjectMeta (namespace = "default" , name = "testclient" ),
196
217
endpoint = "jumpstarter.my-lab.com:1443" ,
197
218
token = "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" ,
198
219
drivers = ClientConfigV1Alpha1Drivers (allow = ["jumpstarter.drivers.*" , "vendorpackage.*" ], unsafe = False ),
@@ -211,6 +232,9 @@ def test_client_config_save(monkeypatch: pytest.MonkeyPatch):
211
232
def test_client_config_save_explicit_path ():
212
233
CLIENT_CONFIG = """apiVersion: jumpstarter.dev/v1alpha1
213
234
kind: ClientConfig
235
+ metadata:
236
+ namespace: default
237
+ name: testclient
214
238
endpoint: jumpstarter.my-lab.com:1443
215
239
tls:
216
240
ca: ''
@@ -224,6 +248,7 @@ def test_client_config_save_explicit_path():
224
248
"""
225
249
config = ClientConfigV1Alpha1 (
226
250
name = "testclient" ,
251
+ metadata = ObjectMeta (namespace = "default" , name = "testclient" ),
227
252
endpoint = "jumpstarter.my-lab.com:1443" ,
228
253
token = "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" ,
229
254
drivers = ClientConfigV1Alpha1Drivers (allow = ["jumpstarter.drivers.*" , "vendorpackage.*" ], unsafe = False ),
@@ -240,6 +265,9 @@ def test_client_config_save_explicit_path():
240
265
def test_client_config_save_unsafe_drivers ():
241
266
CLIENT_CONFIG = """apiVersion: jumpstarter.dev/v1alpha1
242
267
kind: ClientConfig
268
+ metadata:
269
+ namespace: default
270
+ name: testclient
243
271
endpoint: jumpstarter.my-lab.com:1443
244
272
tls:
245
273
ca: ''
@@ -251,6 +279,7 @@ def test_client_config_save_unsafe_drivers():
251
279
"""
252
280
config = ClientConfigV1Alpha1 (
253
281
name = "testclient" ,
282
+ metadata = ObjectMeta (namespace = "default" , name = "testclient" ),
254
283
endpoint = "jumpstarter.my-lab.com:1443" ,
255
284
token = "dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz" ,
256
285
drivers = ClientConfigV1Alpha1Drivers (allow = [], unsafe = True ),
@@ -275,6 +304,9 @@ def test_client_config_exists():
275
304
def test_client_config_list (monkeypatch : pytest .MonkeyPatch ):
276
305
CLIENT_CONFIG = """apiVersion: jumpstarter.dev/v1alpha1
277
306
kind: ClientConfig
307
+ metadata:
308
+ namespace: default
309
+ name: testclient
278
310
endpoint: jumpstarter.my-lab.com:1443
279
311
token: dGhpc2lzYXRva2VuLTEyMzQxMjM0MTIzNEyMzQtc2Rxd3Jxd2VycXdlcnF3ZXJxd2VyLTEyMzQxMjM0MTIz
280
312
drivers:
0 commit comments