46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from __future__ import print_function
|
|
import os
|
|
import sys
|
|
from unittest import TestCase
|
|
|
|
import spam
|
|
|
|
|
|
def path_contains(parent, child):
|
|
''' returns True if `child` is inside `parent`.
|
|
|
|
Works around path-comparison bugs caused by short-paths on Windows e.g.
|
|
vssadm~1 instead of vssadministrator
|
|
'''
|
|
parent = os.path.abspath(parent)
|
|
child = os.path.abspath(child)
|
|
|
|
while child != os.path.dirname(child):
|
|
child = os.path.dirname(child)
|
|
if os.stat(parent) == os.stat(child):
|
|
# parent and child refer to the same directory on the filesystem
|
|
return True
|
|
return False
|
|
|
|
|
|
class TestSpam(TestCase):
|
|
def test_system(self):
|
|
self.assertEqual(0, spam.system('python -c "exit(0)"'))
|
|
self.assertNotEqual(0, spam.system('python -c "exit(1)"'))
|
|
|
|
def test_virtualenv(self):
|
|
virtualenv_path = os.environ.get("__CIBW_VIRTUALENV_PATH__")
|
|
if not virtualenv_path:
|
|
self.fail("No virtualenv path defined in environment variable __CIBW_VIRTUALENV_PATH__")
|
|
|
|
print("=[executable]", sys.executable)
|
|
print("=[spam location]", spam.__file__)
|
|
print("=[virtualenv path]", virtualenv_path)
|
|
print("=[listdir]", os.listdir(virtualenv_path))
|
|
if os.path.exists(os.path.join(virtualenv_path, 'Scripts')):
|
|
print("=[listdir]2", os.listdir(os.path.join(virtualenv_path, 'Scripts')))
|
|
if os.path.exists(os.path.join(virtualenv_path, 'bin')):
|
|
print("=[listdir]2", os.listdir(os.path.join(virtualenv_path, 'bin')))
|
|
self.assertTrue(path_contains(virtualenv_path, sys.executable))
|
|
self.assertTrue(path_contains(virtualenv_path, spam.__file__))
|