You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							74 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							74 lines
						
					
					
						
							1.9 KiB
						
					
					
				'use strict' | 
						|
 | 
						|
var test = require('tape') | 
						|
var path = require('path') | 
						|
var gyp = require('../lib/node-gyp') | 
						|
var requireInject = require('require-inject') | 
						|
var configure = requireInject('../lib/configure', { | 
						|
  'graceful-fs': { | 
						|
    'openSync': function (file, mode) { return 0; }, | 
						|
    'closeSync': function (fd) { }, | 
						|
    'writeFile': function (file, data, cb) { cb() }, | 
						|
    'stat': function (file, cb) { cb(null, {}) } | 
						|
  } | 
						|
}) | 
						|
 | 
						|
var EXPECTED_PYPATH = path.join(__dirname, '..', 'gyp', 'pylib') | 
						|
var SEPARATOR = process.platform == 'win32' ? ';' : ':' | 
						|
var SPAWN_RESULT = { on: function () { } } | 
						|
 | 
						|
test('configure PYTHONPATH with no existing env', function (t) { | 
						|
  t.plan(1) | 
						|
 | 
						|
  delete process.env.PYTHONPATH | 
						|
 | 
						|
  var prog = gyp() | 
						|
  prog.parseArgv([]) | 
						|
  prog.spawn = function () { | 
						|
    t.equal(process.env.PYTHONPATH, EXPECTED_PYPATH) | 
						|
    return SPAWN_RESULT | 
						|
  } | 
						|
  configure(prog, [], t.fail) | 
						|
}) | 
						|
 | 
						|
test('configure PYTHONPATH with existing env of one dir', function (t) { | 
						|
  t.plan(2) | 
						|
 | 
						|
  var existingPath = path.join('a', 'b') | 
						|
  process.env.PYTHONPATH = existingPath | 
						|
 | 
						|
  var prog = gyp() | 
						|
  prog.parseArgv([]) | 
						|
  prog.spawn = function () { | 
						|
 | 
						|
    t.equal(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR)) | 
						|
 | 
						|
    var dirs = process.env.PYTHONPATH.split(SEPARATOR) | 
						|
    t.deepEqual(dirs, [EXPECTED_PYPATH, existingPath]) | 
						|
 | 
						|
    return SPAWN_RESULT | 
						|
  } | 
						|
  configure(prog, [], t.fail) | 
						|
}) | 
						|
 | 
						|
test('configure PYTHONPATH with existing env of multiple dirs', function (t) { | 
						|
  t.plan(2) | 
						|
 | 
						|
  var pythonDir1 = path.join('a', 'b') | 
						|
  var pythonDir2 = path.join('b', 'c') | 
						|
  var existingPath = [pythonDir1, pythonDir2].join(SEPARATOR) | 
						|
  process.env.PYTHONPATH = existingPath | 
						|
 | 
						|
  var prog = gyp() | 
						|
  prog.parseArgv([]) | 
						|
  prog.spawn = function () { | 
						|
 | 
						|
    t.equal(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR)) | 
						|
 | 
						|
    var dirs = process.env.PYTHONPATH.split(SEPARATOR) | 
						|
    t.deepEqual(dirs, [EXPECTED_PYPATH, pythonDir1, pythonDir2]) | 
						|
 | 
						|
    return SPAWN_RESULT | 
						|
  } | 
						|
  configure(prog, [], t.fail) | 
						|
})
 | 
						|
 |