MarekSuchanek / labelord_tests

Tests for MI-PYT Labelord homework https://github.com/cvut/MI-PYT
Creative Commons Zero v1.0 Universal
3 stars 2 forks source link

Testovanie funkcie list_repos #38

Closed HalfDeadPie closed 6 years ago

HalfDeadPie commented 6 years ago

Dobry den, chcel by som sa spytat akym sposobom otestujem funkciu list_repos(ctx), v ktorej prebieha HTTP komunikácia (bohuzial nemam oddeleneho clienta) tak, aby sa komunikacia nahrala na kazety.

Zatial som tuto funkciu skusal volat pomocou CliRunner s cli

def test_list_repos():
    """Test the list_repos output and exit code"""
    runner = CliRunner()
    result = runner.invoke(cli, ['-c', invoker.configs() + invoker.real_config(), 'list_repos'], obj={})
    assert result.output.split('\n') == invoker.repos()
    assert result.exit_code == 0

pricom sa zavola aj cli funkcia, ktora do skutocneho ctx priradi skutocnu requests.Session() a s tymto ctx dalej pracuje aj list_repos. Ja by som chcel ale zavolat funkciu list_repos(ctx) samostatne a ako argument ctx jej nastavit flexmock falosnu strukturu ctx FAKE_CTX = flexmock(obj = { 'session': betamax_session} ), aby som mohol pozadovane kazety nahrat. Je mozne zavolat funkciu list_repos aj takymto sposobom? Dakujem

hroncok commented 6 years ago

Nestačilo by místo flexmocku udělat toto:

result = runner.invoke(cli, [...], obj={'WHATEVER': 'I LIKE'})

?

HalfDeadPie commented 6 years ago

Stačilo, moja chyba. Ďakujem za pomoc :)