python - 在多进程模式下运行 Nose 测试时,导入未得到正确处理

标签 python python-2.7 google-app-engine nosetests nose-gae

给定一个测试用例:

import unittest
import mock

class TestTest(unittest.TestCase):
  def test_test(self):
    print dir(__import__('google'))
    with mock.patch('google.appengine.api.urlfetch.fetch'):
      pass

-

$ nosetests --with-gae --processes=0
Ran 1 test in 0.187s
OK

-

$ nosetests --with-gae --processes=1
======================================================================
ERROR: test_test (test_test.TestTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sadovnychyi/example/test_test.py", line 8, in test_test
    with mock.patch('google.appengine.api.urlfetch.fetch'):
  File "/usr/local/lib/python2.7/site-packages/mock.py", line 1252, in __enter__
    self.target = self.getter()
  File "/usr/local/lib/python2.7/site-packages/mock.py", line 1414, in <lambda>
    getter = lambda: _importer(target)
  File "/usr/local/lib/python2.7/site-packages/mock.py", line 1102, in _importer
    thing = _dot_lookup(thing, comp, import_path)
  File "/usr/local/lib/python2.7/site-packages/mock.py", line 1092, in _dot_lookup
    return getattr(thing, comp)
AttributeError: 'module' object has no attribute 'appengine'
-------------------- >> begin captured stdout << ---------------------
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'net']

知道为什么会发生这种情况以及如何解决它吗?

最佳答案

所以我错过了 nosegae.py 中的一行:

del sys.modules['google']

已修复reload(sys.modules['google'])

https://github.com/Trii/NoseGAE/commit/82fe8b4cb2c037ffd441fa5bed8a6b84a066bbd2

问题已经解决了。

关于python - 在多进程模式下运行 Nose 测试时,导入未得到正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695876/

相关文章:

google-app-engine - Google App Engine 网站上的 DNS_PROBE_FINISHED_NXDOMAIN

python : Best way to sort a python dictionary based on values ; values are lists

Python 类似电子表格的公式解析器?

python - 循环遍历 Python 字典

python - 正确配置 gae_mini_profiler 时出现问题

python - 如何检查是否有人更改了实体数据

python - scipy.fft 链接到 numpy.fft.fftpack.fft 的事实是否记录在任何地方?

python - Django:如何返回项目属性 choice_set 不为空的查询集?

python - 从顶层访问继承的方法

python - Numpy "fill"方法是如何实现的?