@@ -11,7 +11,7 @@ import * as TypeMoq from 'typemoq';
1111import { Uri , WorkspaceFolder } from 'vscode' ;
1212import { IApplicationShell , IWorkspaceService } from '../../client/common/application/types' ;
1313import { EnumEx } from '../../client/common/enumUtils' ;
14- import { IFileSystem } from '../../client/common/platform/types' ;
14+ import { IFileSystem , IPlatformService } from '../../client/common/platform/types' ;
1515import { IProcessService , IProcessServiceFactory } from '../../client/common/process/types' ;
1616import { ICurrentProcess , ILogger , IPersistentState , IPersistentStateFactory } from '../../client/common/types' ;
1717import { IEnvironmentVariablesProvider } from '../../client/common/variables/types' ;
@@ -40,6 +40,7 @@ suite('Interpreters - PipEnv', () => {
4040 let envVarsProvider : TypeMoq . IMock < IEnvironmentVariablesProvider > ;
4141 let procServiceFactory : TypeMoq . IMock < IProcessServiceFactory > ;
4242 let logger : TypeMoq . IMock < ILogger > ;
43+ let platformService : TypeMoq . IMock < IPlatformService > ;
4344 setup ( ( ) => {
4445 serviceContainer = TypeMoq . Mock . ofType < IServiceContainer > ( ) ;
4546 const workspaceService = TypeMoq . Mock . ofType < IWorkspaceService > ( ) ;
@@ -52,6 +53,7 @@ suite('Interpreters - PipEnv', () => {
5253 envVarsProvider = TypeMoq . Mock . ofType < IEnvironmentVariablesProvider > ( ) ;
5354 procServiceFactory = TypeMoq . Mock . ofType < IProcessServiceFactory > ( ) ;
5455 logger = TypeMoq . Mock . ofType < ILogger > ( ) ;
56+ platformService = TypeMoq . Mock . ofType < IPlatformService > ( ) ;
5557 processService . setup ( ( x : any ) => x . then ) . returns ( ( ) => undefined ) ;
5658 procServiceFactory . setup ( p => p . create ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( processService . object ) ) ;
5759
@@ -76,6 +78,7 @@ suite('Interpreters - PipEnv', () => {
7678 serviceContainer . setup ( c => c . get ( TypeMoq . It . isValue ( IPersistentStateFactory ) ) ) . returns ( ( ) => persistentStateFactory . object ) ;
7779 serviceContainer . setup ( c => c . get ( TypeMoq . It . isValue ( IEnvironmentVariablesProvider ) ) ) . returns ( ( ) => envVarsProvider . object ) ;
7880 serviceContainer . setup ( c => c . get ( TypeMoq . It . isValue ( ILogger ) ) ) . returns ( ( ) => logger . object ) ;
81+ serviceContainer . setup ( c => c . get ( TypeMoq . It . isValue ( IPlatformService ) ) ) . returns ( ( ) => platformService . object ) ;
7982
8083 pipEnvService = new PipEnvService ( serviceContainer . object ) ;
8184 } ) ;
@@ -84,7 +87,7 @@ suite('Interpreters - PipEnv', () => {
8487 const environments = pipEnvService . getInterpreters ( resource ) ;
8588 expect ( environments ) . to . be . eventually . deep . equal ( [ ] ) ;
8689 } ) ;
87- test ( `Should return an empty list if there is a \'PipFile\'${ testSuffix } ` , async ( ) => {
90+ test ( `Should return an empty list if there is no \'PipFile\'${ testSuffix } ` , async ( ) => {
8891 const env = { } ;
8992 envVarsProvider . setup ( e => e . getEnvironmentVariables ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { } ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
9093 currentProcess . setup ( c => c . env ) . returns ( ( ) => env ) ;
@@ -97,10 +100,10 @@ suite('Interpreters - PipEnv', () => {
97100 test ( `Should display warning message if there is a \'PipFile\' but \'pipenv --venv\' failes ${ testSuffix } ` , async ( ) => {
98101 const env = { } ;
99102 currentProcess . setup ( c => c . env ) . returns ( ( ) => env ) ;
100- processService . setup ( p => p . exec ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . reject ( '' ) ) ;
103+ processService . setup ( p => p . exec ( TypeMoq . It . isValue ( 'pipenv' ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . reject ( '' ) ) ;
101104 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( path . join ( rootWorkspace , 'Pipfile' ) ) ) ) . returns ( ( ) => Promise . resolve ( true ) ) ;
102105 appShell . setup ( a => a . showWarningMessage ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( '' ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
103- logger . setup ( l => l . logWarning ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
106+ logger . setup ( l => l . logWarning ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . verifiable ( TypeMoq . Times . exactly ( 2 ) ) ;
104107 const environments = await pipEnvService . getInterpreters ( resource ) ;
105108
106109 expect ( environments ) . to . be . deep . equal ( [ ] ) ;
@@ -110,10 +113,10 @@ suite('Interpreters - PipEnv', () => {
110113 test ( `Should display warning message if there is a \'PipFile\' but \'pipenv --venv\' failes with stderr ${ testSuffix } ` , async ( ) => {
111114 const env = { } ;
112115 currentProcess . setup ( c => c . env ) . returns ( ( ) => env ) ;
113- processService . setup ( p => p . exec ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stderr : 'PipEnv Failed' , stdout : '' } ) ) ;
116+ processService . setup ( p => p . exec ( TypeMoq . It . isValue ( 'pipenv' ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stderr : 'PipEnv Failed' , stdout : '' } ) ) ;
114117 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( path . join ( rootWorkspace , 'Pipfile' ) ) ) ) . returns ( ( ) => Promise . resolve ( true ) ) ;
115118 appShell . setup ( a => a . showWarningMessage ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( '' ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
116- logger . setup ( l => l . logWarning ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
119+ logger . setup ( l => l . logWarning ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . verifiable ( TypeMoq . Times . exactly ( 2 ) ) ;
117120 const environments = await pipEnvService . getInterpreters ( resource ) ;
118121
119122 expect ( environments ) . to . be . deep . equal ( [ ] ) ;
@@ -125,7 +128,7 @@ suite('Interpreters - PipEnv', () => {
125128 const pythonPath = 'one' ;
126129 envVarsProvider . setup ( e => e . getEnvironmentVariables ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { } ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
127130 currentProcess . setup ( c => c . env ) . returns ( ( ) => env ) ;
128- processService . setup ( p => p . exec ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stdout : pythonPath } ) ) ;
131+ processService . setup ( p => p . exec ( TypeMoq . It . isValue ( 'pipenv' ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stdout : pythonPath } ) ) ;
129132 interpreterHelper . setup ( v => v . getInterpreterInformation ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { version : 'xyz' } ) ) ;
130133 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( path . join ( rootWorkspace , 'Pipfile' ) ) ) ) . returns ( ( ) => Promise . resolve ( true ) ) . verifiable ( ) ;
131134 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( pythonPath ) ) ) . returns ( ( ) => Promise . resolve ( true ) ) . verifiable ( ) ;
@@ -142,7 +145,7 @@ suite('Interpreters - PipEnv', () => {
142145 const pythonPath = 'one' ;
143146 envVarsProvider . setup ( e => e . getEnvironmentVariables ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { } ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
144147 currentProcess . setup ( c => c . env ) . returns ( ( ) => env ) ;
145- processService . setup ( p => p . exec ( TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stdout : pythonPath } ) ) ;
148+ processService . setup ( p => p . exec ( TypeMoq . It . isValue ( 'pipenv' ) , TypeMoq . It . isAny ( ) , TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { stdout : pythonPath } ) ) ;
146149 interpreterHelper . setup ( v => v . getInterpreterInformation ( TypeMoq . It . isAny ( ) ) ) . returns ( ( ) => Promise . resolve ( { version : 'xyz' } ) ) ;
147150 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( path . join ( rootWorkspace , 'Pipfile' ) ) ) ) . returns ( ( ) => Promise . resolve ( false ) ) . verifiable ( TypeMoq . Times . never ( ) ) ;
148151 fileSystem . setup ( fs => fs . fileExists ( TypeMoq . It . isValue ( path . join ( rootWorkspace , envPipFile ) ) ) ) . returns ( ( ) => Promise . resolve ( true ) ) . verifiable ( TypeMoq . Times . once ( ) ) ;
0 commit comments