onuar/dokuztas

Ubuntu 16.04 - Çalışmayan test

Closed this issue · 1 comments

Ubuntu 16.04 LTS kullanıyorum.
Ubuntu'da şu an python3'ün stabil sürümü 3.5.2

Aşağıdaki çıktı testleri çalıştırdığımda geliyor:

ozgun@VTITUL05775:~/OTHERS/dokuztas$ source dokuztas/venv/bin/activate
(venv) ozgun@VTITUL05775:~/OTHERS/dokuztas$ pytest
================================== test session starts ==================================
platform linux -- Python 3.5.2, pytest-3.2.2, py-1.4.34, pluggy-0.4.0
rootdir: /home/ozgun/OTHERS/dokuztas, inifile:
collected 25 items                                                                       

tests/test_blockchain.py ............
tests/test_nas.py ..
tests/test_node.py ......F....

======================================= FAILURES ========================================
_____ test_if_first_pendingblock_is_just_created_then_mining_should_be_started_once _____

    def test_if_first_pendingblock_is_just_created_then_mining_should_be_started_once():
        node = NodeComponent(miner=True)
        node.create_genesis_chain()
        patcher = patch('dokuztas.node.NodeComponent.mine')
        mock = patcher.start()
        for x in range(0, 200):
            node.add_transaction(x)
        patcher.stop()
>       mock.assert_called_once()

tests/test_node.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <MagicMock name='mine' id='139783682489088'>, name = 'assert_called_once'

    def __getattr__(self, name):
        if name in {'_mock_methods', '_mock_unsafe'}:
            raise AttributeError(name)
        elif self._mock_methods is not None:
            if name not in self._mock_methods or name in _all_magics:
                raise AttributeError("Mock object has no attribute %r" % name)
        elif _is_magic(name):
            raise AttributeError(name)
        if not self._mock_unsafe:
            if name.startswith(('assert', 'assret')):
>               raise AttributeError(name)
E               AttributeError: assert_called_once

/usr/lib/python3.5/unittest/mock.py:583: AttributeError
--------------------------------- Captured stdout call ----------------------------------
>>> info: Genesis! Blockchain ilk kez oluşturuldu.
>>> info: Nonce bulundu! Nonce: 51597 Block_hash: 00009b8539d913411b8dd95aa3a449593dc454ef0ddc87955bd48d8ff48a926a
========================== 1 failed, 24 passed in 3.55 seconds ==========================

Şunu değiştirdiğimde testlerin hepsi geçiyor:

dokuztas/tests/test_node.py:80:
- mock.assert_called_once()
+ mock.assert_called_once_with()

pytest'in API'na hakim değilim, sadece stackoverflow buna yönlendirdi :D PR gönderebilirim, diğer işletim sistemlerinde de normal çalışacağını düşünüyorsan.

onuar commented

assert_called_once_with mevcutu bozmayacak, bilakis daha garanti bir test olacaktır :) Eğrisi doğrusuna getirdi biraz.

Readme de ellerinden öper @ozgunbal :D Test edilen ortamlara Ubuntu'yu ekleyebiliriz.