73 lines
1.8 KiB
Python
73 lines
1.8 KiB
Python
import polyloader
|
|
import pytest
|
|
import py_compile
|
|
from . import ptutils
|
|
import stat
|
|
import sys
|
|
import os
|
|
import imp
|
|
import random
|
|
import struct
|
|
|
|
class Compiler:
|
|
def __init__(self, pt):
|
|
self.pt = pt
|
|
|
|
def __call__(self, source_text, filename, *extra):
|
|
return compile("result='Success for %s: %s'" %
|
|
(self.pt, source_text.rstrip()), filename, "exec")
|
|
|
|
def __repr__(self):
|
|
return "Compiler %s" % (self.pt)
|
|
|
|
polyloader.install(Compiler("2"), ['2'])
|
|
|
|
TESTFN = '@test'
|
|
|
|
def clean_tmpfiles(path):
|
|
if os.path.exists(path):
|
|
os.remove(path)
|
|
if os.path.exists(path + 'c'):
|
|
os.remove(path + 'c')
|
|
if os.path.exists(path + 'o'):
|
|
os.remove(path + 'o')
|
|
|
|
def unload(name):
|
|
try:
|
|
del sys.modules[name]
|
|
except KeyError:
|
|
pass
|
|
|
|
def rmtree(path):
|
|
def _rmtree_inner(path):
|
|
for name in os.listdir(path):
|
|
fullname = os.path.join(path, name)
|
|
if os.path.isdir(fullname):
|
|
_waitfor(_rmtree_inner, fullname, waitall=True)
|
|
os.rmdir(fullname)
|
|
else:
|
|
os.unlink(fullname)
|
|
_rmtree_inner(path)
|
|
os.rmdir(path)
|
|
|
|
class Test_Paths:
|
|
path = TESTFN
|
|
|
|
def setup_method(self, method):
|
|
os.mkdir(self.path)
|
|
self.syspath = sys.path[:]
|
|
|
|
def teardown_method(self, method):
|
|
rmtree(self.path)
|
|
sys.path[:] = self.syspath
|
|
|
|
# Regression test for http://bugs.python.org/issue1293.
|
|
def test_trailing_slash(self):
|
|
with open(os.path.join(self.path, 'test_trailing_slash.2'), 'w') as f:
|
|
f.write("Test Trailing Slash\n")
|
|
sys.path.append(self.path+'/')
|
|
mod = __import__("test_trailing_slash")
|
|
assert(mod.result == 'Success for 2: Test Trailing Slash')
|
|
unload("test_trailing_slash")
|
|
|