Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from e15_rain import get_rainfall 

2import pytest 

3from io import StringIO 

4 

5 

6def test_nothing(monkeypatch, capsys): 

7 monkeypatch.setattr('sys.stdin', StringIO('\n')) 

8 get_rainfall() 

9 captured_out, captured_err = capsys.readouterr() 

10 assert captured_out.strip() == 'Enter city name:' 

11 

12 

13def test_one_city(monkeypatch, capsys): 

14 monkeypatch.setattr('sys.stdin', StringIO('Tel Aviv\n5\n\n')) 

15 get_rainfall() 

16 captured_out, captured_err = capsys.readouterr() 

17 assert captured_out.endswith('Tel Aviv: 5\n') 

18 

19 

20def test_two_cities(monkeypatch, capsys): 

21 monkeypatch.setattr('sys.stdin', StringIO('Tel Aviv\n5\nJerusalem\n3\n\n')) 

22 get_rainfall() 

23 captured_out, captured_err = capsys.readouterr() 

24 assert captured_out.endswith('Tel Aviv: 5\nJerusalem: 3\n') 

25 

26 

27def test_repeat_city(monkeypatch, capsys): 

28 monkeypatch.setattr('sys.stdin', StringIO( 

29 'Tel Aviv\n5\nJerusalem\n3\nTel Aviv\n7\n\n')) 

30 get_rainfall() 

31 captured_out, captured_err = capsys.readouterr() 

32 assert captured_out.endswith('Tel Aviv: 12\nJerusalem: 3\n') 

33 

34 

35def test_no_checking_of_rain_input(monkeypatch, capsys): 

36 with pytest.raises(ValueError): 

37 monkeypatch.setattr('sys.stdin', StringIO('Tel Aviv\nabc\n\n')) 

38 get_rainfall()