0
私は、次のテストケースを複数回実行すると失敗します。Pyellipticは時々
のTestCase:
import unittest, pyelliptic, pickle
class PyellipticTestCase(unittest.TestCase):
def setUp(self):
self.alice = pyelliptic.ECC()
self.bob = pyelliptic.ECC()
def test_pickleSign(self):
tm = {"text":"contract","amount":12}
tms1 = {"doc":tm,"c1":self.bob.get_pubkey(),"s1":self.bob.sign(pickle.dumps(tm))}
tms2bb = {"doc":tms1,"c2":self.alice.get_pubkey(),"s2":self.alice.sign(pickle.dumps(tms1))}
tms2 = pickle.loads(pickle.dumps(tms2bb))
self.assertEqual(tms2['s2'],tms2bb['s2'])
self.assertTrue(pyelliptic.ECC(pubkey=self.alice.get_pubkey()).verify(tms2bb['s2'],pickle.dumps(tms2['doc']))) #<--- FAILs sometimes
マイシステム:
- OS:14.04.1-Ubuntuの(カーネル3.16.0-36-ジェネリック)
- Phtyon3:Pythonの3.4.0(デフォルト、2014年4月11日、午前13時05分18秒)
- のOpenSSL:1.0.1f 2014年1月6日
- pyelliptic:1.5.7
私はPython 3.4.3と同様のシステムでこれをテストし、その動作を再現することができました。
システムで障害を再現できますか? 「はい」の場合、原因は何ですか?
更新
私は冗長で(のpython3 -m unittestの-v test_pyelliptic2.py)テストを実行する場合には、以下の出力(2回実行)生成します。さらにいくつかの研究の後
[email protected]:~/test$ python3 -m unittest -v test_pyelliptic2.py
test_pickleSign (test_pyelliptic2.PyellipticTestCase) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.012s
OK
[email protected]:~/test$ python3 -m unittest -v test_pyelliptic2.py
test_pickleSign (test_pyelliptic2.PyellipticTestCase) ... FAIL
======================================================================
FAIL: test_pickleSign (test_pyelliptic2.PyellipticTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "XX/test/test_pyelliptic2.py", line 14, in test_pickleSign
self.assertTrue(pyelliptic.ECC(pubkey=self.alice.get_pubkey()).verify(tms2bb['s2'],pickle.dumps(tms2['doc']))) #<--- FAILs sometimes
AssertionError: False is not true
----------------------------------------------------------------------
Ran 1 test in 0.013s
FAILED (failures=1)