Vimでソース修正後、Pikzieで(?)エラーが出力される


追うとかなりハマりそうな予感がするのでメモだけ。

vimでPythonのソースを編集して、保存したときに 以下のようなエラーが出力される。

Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.6/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/local/lib/python2.6/dist-packages/Pikzie-0.9.5-py2.6.egg/pikzie/tester.py", line 97, in auto_test_run
    sys.exit(Tester(target_modules=['__main__']).run())
  File "/usr/local/lib/python2.6/dist-packages/Pikzie-0.9.5-py2.6.egg/pikzie/tester.py", line 55, in run
    test = TestLoader(**test_suite_create_options).create_test_suite(args)
  File "/usr/local/lib/python2.6/dist-packages/Pikzie-0.9.5-py2.6.egg/pikzie/core.py", line 483, in create_test_suite
    for test_case in self.collect_test_cases(files):
  File "/usr/local/lib/python2.6/dist-packages/Pikzie-0.9.5-py2.6.egg/pikzie/core.py", line 466, in collect_test_cases
    test_cases.extend(test_case_collector(self, module))
  File "/usr/local/lib/python2.6/dist-packages/Pikzie-0.9.5-py2.6.egg/pikzie/module_base.py", line 50, in collect_test_case_from_module
    dir(module))):
  File "/usr/lib/python2.6/dist-packages/bike/bikefacade.py", line 116, in __call__
    return getattr(self.brmctx,self.name)(*args)
AttributeError: 'BRMContext_impl' object has no attribute '__eq__'

vimにプラグインを色々入れているので、そのあたりも関係しているのかなあ。 再現性がほとんどなくて、思い出したように発生する。

トレースバックを見る限りだと、BicycleRepaireManのモジュールを Pikzieから呼び出しているように見えるが。。。 (BicycleRepaireManは使ってないんだけど。)

環境は、Linux、Python2.6です。

追記[2009.10.18]

修正していただけました。 素早い対応はありがたいです。


2 comments.
kou's comment

これで再現しませんか?

import bike import pikzie a = bike.bikefacade.BRMContext_wrapper()

dir(sys.modules["__main__"])の中でpikzieモジュール(↑だと"pikzie"という名前)よりも前に__eq__がないオブジェクト(↑だと"a"という名前)があると発生するようです。

trunkではそんなケースにも対応しておきました。

hattori's comment

おっしゃるとおりでした。 再現しました。

素早い対応ありがとうございます。