4
4
import * as assert from 'assert' ;
5
5
import * as sinon from 'sinon' ;
6
6
import { PythonEnvInfoCache } from '../../../client/pythonEnvironments/base/envsCache' ;
7
- import { PythonEnvInfo , PythonEnvKind } from '../../../client/pythonEnvironments/base/info' ;
7
+ import * as envInfo from '../../../client/pythonEnvironments/base/info' ;
8
8
import * as externalDependencies from '../../../client/pythonEnvironments/common/externalDependencies' ;
9
- import * as envInfo from '../../../client/pythonEnvironments/info' ;
10
9
11
10
suite ( 'Environment Info cache' , ( ) => {
12
11
let getGlobalPersistentStoreStub : sinon . SinonStub ;
13
12
let areSameEnvironmentStub : sinon . SinonStub ;
14
- let updatedValues : PythonEnvInfo [ ] | undefined ;
13
+ let updatedValues : envInfo . PythonEnvInfo [ ] | undefined ;
15
14
16
15
const allEnvsComplete = ( ) => true ;
17
16
const envInfoArray = [
18
17
{
19
- kind : PythonEnvKind . Conda , name : 'my-conda-env' , defaultDisplayName : 'env-one' ,
18
+ kind : envInfo . PythonEnvKind . Conda , name : 'my-conda-env' , defaultDisplayName : 'env-one' ,
20
19
} ,
21
20
{
22
- kind : PythonEnvKind . Venv , name : 'my-venv-env' , defaultDisplayName : 'env-two' ,
21
+ kind : envInfo . PythonEnvKind . Venv , name : 'my-venv-env' , defaultDisplayName : 'env-two' ,
23
22
} ,
24
23
{
25
- kind : PythonEnvKind . Pyenv , name : 'my-pyenv-env' , defaultDisplayName : 'env-three' ,
24
+ kind : envInfo . PythonEnvKind . Pyenv , name : 'my-pyenv-env' , defaultDisplayName : 'env-three' ,
26
25
} ,
27
- ] as PythonEnvInfo [ ] ;
26
+ ] as envInfo . PythonEnvInfo [ ] ;
28
27
29
28
setup ( ( ) => {
30
29
areSameEnvironmentStub = sinon . stub ( envInfo , 'areSameEnvironment' ) ;
31
30
areSameEnvironmentStub . callsFake (
32
- ( env1 : PythonEnvInfo , env2 :PythonEnvInfo ) => env1 . name === env2 . name ,
31
+ ( env1 : envInfo . PythonEnvInfo , env2 :envInfo . PythonEnvInfo ) => env1 . name === env2 . name ,
33
32
) ;
34
33
35
34
getGlobalPersistentStoreStub = sinon . stub ( externalDependencies , 'getGlobalPersistentStore' ) ;
36
35
getGlobalPersistentStoreStub . returns ( {
37
- value : envInfoArray ,
38
- updateValue : async ( envs : PythonEnvInfo [ ] ) => {
36
+ get ( ) { return envInfoArray ; } ,
37
+ set ( envs : envInfo . PythonEnvInfo [ ] ) {
39
38
updatedValues = envs ;
40
39
return Promise . resolve ( ) ;
41
40
} ,
@@ -59,7 +58,7 @@ suite('Environment Info cache', () => {
59
58
test ( 'The in-memory env info array is undefined if there is no value in persistent storage when initializing the cache' , ( ) => {
60
59
const envsCache = new PythonEnvInfoCache ( allEnvsComplete ) ;
61
60
62
- getGlobalPersistentStoreStub . returns ( { value : undefined } ) ;
61
+ getGlobalPersistentStoreStub . returns ( { get ( ) { return undefined ; } } ) ;
63
62
envsCache . initialize ( ) ;
64
63
const result = envsCache . getAllEnvs ( ) ;
65
64
@@ -96,23 +95,23 @@ suite('Environment Info cache', () => {
96
95
} ) ;
97
96
98
97
test ( '`getEnv` should return an environment that matches all non-undefined properties of its argument' , ( ) => {
99
- const env :PythonEnvInfo = { name : 'my-venv-env' } as unknown as PythonEnvInfo ;
98
+ const env :envInfo . PythonEnvInfo = { name : 'my-venv-env' } as unknown as envInfo . PythonEnvInfo ;
100
99
const envsCache = new PythonEnvInfoCache ( allEnvsComplete ) ;
101
100
102
101
envsCache . initialize ( ) ;
103
102
104
103
const result = envsCache . getEnv ( env ) ;
105
104
106
105
assert . deepStrictEqual ( result , {
107
- kind : PythonEnvKind . Venv , name : 'my-venv-env' , defaultDisplayName : 'env-two' ,
106
+ kind : envInfo . PythonEnvKind . Venv , name : 'my-venv-env' , defaultDisplayName : 'env-two' ,
108
107
} ) ;
109
108
} ) ;
110
109
111
110
test ( '`getEnv` should return a deep copy of an environment' , ( ) => {
112
111
const envToFind = {
113
- kind : PythonEnvKind . System , name : 'my-system-env' , defaultDisplayName : 'env-system' ,
114
- } as unknown as PythonEnvInfo ;
115
- const env :PythonEnvInfo = { name : 'my-system-env' } as unknown as PythonEnvInfo ;
112
+ kind : envInfo . PythonEnvKind . System , name : 'my-system-env' , defaultDisplayName : 'env-system' ,
113
+ } as unknown as envInfo . PythonEnvInfo ;
114
+ const env :envInfo . PythonEnvInfo = { name : 'my-system-env' } as unknown as envInfo . PythonEnvInfo ;
116
115
const envsCache = new PythonEnvInfoCache ( allEnvsComplete ) ;
117
116
118
117
envsCache . setAllEnvs ( [ ...envInfoArray , envToFind ] ) ;
@@ -124,7 +123,7 @@ suite('Environment Info cache', () => {
124
123
} ) ;
125
124
126
125
test ( '`getEnv` should return undefined if no environment matches the properties of its argument' , ( ) => {
127
- const env :PythonEnvInfo = { name : 'my-nonexistent-env' } as unknown as PythonEnvInfo ;
126
+ const env :envInfo . PythonEnvInfo = { name : 'my-nonexistent-env' } as unknown as envInfo . PythonEnvInfo ;
128
127
const envsCache = new PythonEnvInfoCache ( allEnvsComplete ) ;
129
128
130
129
envsCache . initialize ( ) ;
@@ -136,13 +135,13 @@ suite('Environment Info cache', () => {
136
135
137
136
test ( '`flush` should write complete environment info objects to persistent storage' , async ( ) => {
138
137
const otherEnv = {
139
- kind : PythonEnvKind . OtherGlobal ,
138
+ kind : envInfo . PythonEnvKind . OtherGlobal ,
140
139
name : 'my-other-env' ,
141
140
defaultDisplayName : 'env-five' ,
142
141
} ;
143
142
const updatedEnvInfoArray = [
144
- otherEnv , { kind : PythonEnvKind . System , name : 'my-system-env' } ,
145
- ] as PythonEnvInfo [ ] ;
143
+ otherEnv , { kind : envInfo . PythonEnvKind . System , name : 'my-system-env' } ,
144
+ ] as envInfo . PythonEnvInfo [ ] ;
146
145
const expected = [
147
146
otherEnv ,
148
147
] ;
@@ -156,15 +155,15 @@ suite('Environment Info cache', () => {
156
155
} ) ;
157
156
158
157
test ( '`flush` should not write to persistent storage if there are no environment info objects in-memory' , async ( ) => {
159
- const envsCache = new PythonEnvInfoCache ( ( env ) => env . kind === PythonEnvKind . MacDefault ) ;
158
+ const envsCache = new PythonEnvInfoCache ( ( env ) => env . kind === envInfo . PythonEnvKind . MacDefault ) ;
160
159
161
160
await envsCache . flush ( ) ;
162
161
163
162
assert . strictEqual ( updatedValues , undefined ) ;
164
163
} ) ;
165
164
166
165
test ( '`flush` should not write to persistent storage if there are no complete environment info objects' , async ( ) => {
167
- const envsCache = new PythonEnvInfoCache ( ( env ) => env . kind === PythonEnvKind . MacDefault ) ;
166
+ const envsCache = new PythonEnvInfoCache ( ( env ) => env . kind === envInfo . PythonEnvKind . MacDefault ) ;
168
167
169
168
envsCache . initialize ( ) ;
170
169
await envsCache . flush ( ) ;
0 commit comments