所以我正在为这个类写一个测试(编辑得更清楚):
class SpreadSheet(object):
'''awesome docstring'''
def __init__(self, filename):
self.filename = filename
self.table = []
self.headers = []
with open(self.filename) as csvfile:
filereader = reader(csvfile, delimiter=',')
for row in filereader:
self.table.append(row)
def create_headers(self, populations):
...code...
def lookup_header(self, ltr):
...code...
def write_header(self, targetfile):
...code...
Run Code Online (Sandbox Code Playgroud)
到目前为止看起来像这样:
class TestSpreadSheet(unittest.TestCase):
@contextmanager
def make_fake_csv(self, data):
self.fake_namefile = tempfile.NamedTemporaryFile(delete=False)
with open(self.fake_namefile, 'w') as fake_csv:
fake_writer = csv.writer(fake_csv)
fake_writer.writerows(data)
yield self.fake_namefile.name
os.unlink(self.fake_namefile.name)
def setUp(self):
self.headers = []
self.table = [
['Col1', 'Col2', 'Col3', 'Col4', 'Col5', 'Col6', 'Col7', 'Col8'], …
Run Code Online (Sandbox Code Playgroud) 所以我在Ubuntu 14.04机器上将我的所有工具从python2迁移到python3.4.到目前为止,我已经完成了以下工作:
mkvirtualenv --python=/usr/bin/python3
('workon'在下面被调用为'v')现在好奇,你可以清楚地看到它,从virtualenv激活的环境运行python3仍然继承我的$ PYTHONPATH,它仍然为我所有的python2路径设置.这在我的virtualenv中安装/运行程序时会造成严重破坏,因为python3路径显示在旧的python2路径之后,因此python2模块首先在我的程序中导入.在启动virtualenv之前将我的$ PYTHONPATH取消为''修复此问题并且我的程序按预期启动.但我的问题是:
? echo $PYTHONPATH /usr/local/lib/python2.7/site-packages:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/home/brian/dev brian@zeus:~/.virtualenvs ? python2 Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys, pprint >>> pprint.pprint(sys.path) ['', '/usr/local/lib/python2.7/dist-packages/pudb-2013.3.4-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/Pygments-1.6-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/urwid-1.1.1-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/pythoscope-0.4.3-py2.7.egg', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/home/brian/dev', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode'] >>> brian@zeus:~/.virtualenvs ? v py3venv (py3venv) brian@zeus:~/.virtualenvs …