Coverage for tests/test_dmenu.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.2.2, created at 2023-03-24 11:53 -0300

1import pytest 

2from pyselector.menus.dmenu import Dmenu 

3 

4 

5@pytest.fixture 

6def dmenu() -> Dmenu: 

7 return Dmenu() 

8 

9 

10def test_build_command(dmenu) -> None: 

11 args = dmenu._build_command( 

12 case_sensitive=True, 

13 multi_select=False, 

14 prompt="Test>", 

15 lines=10, 

16 font="sans", 

17 bottom=True, 

18 ) 

19 assert "-i" in args 

20 assert "-p" in args 

21 assert "-l" in args 

22 assert "-fn" in args 

23 assert "-b" in args 

24 

25 

26def test_build_command_warning(dmenu) -> None: 

27 with pytest.warns(UserWarning): 

28 _ = dmenu._build_command( 

29 case_sensitive=True, 

30 multi_select=True, 

31 prompt="RaisesUserWarning", 

32 ) 

33 

34 with pytest.warns(UserWarning): 

35 _ = dmenu._build_command( 

36 case_sensitive=True, 

37 multi_select=True, 

38 prompt="RaisesUserWarning", 

39 invalid_arg=True, 

40 ) 

41 

42 

43def test_prompt_items_empty(dmenu) -> None: 

44 dmenu.prompt(prompt="PressEnter>")