v2 / vlib / os / environment_test.v
70 lines · 61 sloc · 1.85 KB · ca6727303d1d4d4625b244e3c5655a8fa7195422
Raw
1import os
2import time
3
4fn test_getenv() {
5 // VEXE is set by the V builtin test runner
6 assert os.getenv('VEXE').len > 0
7 assert os.getenv('PATH').len > 0
8}
9
10fn test_getenv_opt() {
11 assert os.getenv_opt('VEXE') or { '' }.len > 0
12}
13
14fn test_setenv() {
15 os.setenv('foo', 'bar', true)
16 assert os.getenv('foo') == 'bar'
17 // `setenv` should not set if `overwrite` is false
18 os.setenv('foo', 'bar2', false)
19 assert os.getenv('foo') == 'bar'
20 // `setenv` should overwrite if `overwrite` is true
21 os.setenv('foo', 'bar2', true)
22 assert os.getenv('foo') == 'bar2'
23 assert os.getenv_opt('foo') or { '' } == 'bar2'
24}
25
26fn test_unsetenv() {
27 os.setenv('foo', 'bar', true)
28 os.unsetenv('foo')
29 assert os.getenv('foo') == ''
30}
31
32fn test_environ() {
33 os.setenv('myvar1', 'bar1', true)
34 os.setenv('myvar2', 'bar2', true)
35 assert os.getenv('myvar1') == 'bar1'
36 assert os.getenv('myvar2') == 'bar2'
37 assert os.getenv('myvar_not_defined') == ''
38 all := os.environ()
39 assert all['myvar1'] == 'bar1'
40 assert all['myvar2'] == 'bar2'
41 assert all['myvar_not_defined'] == ''
42}
43
44fn test_setenv_var_not_exists() {
45 key := time.new(time.now()).unix()
46 os.setenv('foo${key}', 'bar', false)
47 assert os.getenv('foo${key}') == 'bar'
48}
49
50fn test_getenv_empty_var() {
51 key := time.new(time.now()).unix()
52 os.setenv('empty${key}', '""', false)
53 assert os.getenv('empty${key}') == '""'
54}
55
56fn test_environ_non_ascii() {
57 os.setenv('Büro', 'gebäude', false)
58 assert os.getenv('Büro') == 'gebäude'
59 os.setenv('Büro', 'gebäudehaus', true)
60 assert os.getenv('Büro') == 'gebäudehaus'
61 os.setenv('Büro', 'gebäudehaus in der Straße', true)
62 assert os.getenv('Büro') == 'gebäudehaus in der Straße'
63 os.unsetenv('Büro')
64 assert os.getenv('Büro') == ''
65
66 os.setenv('한국어', '초보자를 위한', false)
67 assert os.getenv('한국어') == '초보자를 위한'
68 os.unsetenv('한국어')
69 assert os.getenv('한국어') == ''
70}
71