Coverage for test/test_scenario.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.3.0, created at 2023-08-25 16:44 +0200

1"""Test the Scenario class""" 

2 

3import pytest 

4 

5import manyworlds as mw 

6 

7 

8@pytest.fixture(scope="module") 

9def root_scenario(): 

10 """load a representative root scenario""" 

11 forest = mw.ScenarioForest.from_file("test/fixtures/in/scenario_forest.feature") 

12 return forest.find("View users") 

13 

14 

15@pytest.fixture(scope="module") 

16def leaf_scenario(): 

17 """load a representative leaf scenario""" 

18 forest = mw.ScenarioForest.from_file("test/fixtures/in/scenario_forest.feature") 

19 return forest.find( 

20 "View users", 

21 "Bulk operations", 

22 "Select user", 

23 "Select multiple users", 

24 "Bulk deactivate users", 

25 "Confirm bulk deactivation of users", 

26 ) 

27 

28 

29def test_repr(root_scenario, leaf_scenario): 

30 assert ( 

31 root_scenario.__repr__() == "<Scenario: View users " 

32 "(1 prerequisites, 1 actions, 1 assertions)>" 

33 ) 

34 assert ( 

35 leaf_scenario.__repr__() == "<Scenario: Confirm bulk deactivation of users " 

36 "(0 prerequisites, 1 actions, 2 assertions)>" 

37 ) 

38 

39 

40def test_level(root_scenario, leaf_scenario): 

41 assert root_scenario.level() == 1 

42 assert leaf_scenario.level() == 6 

43 

44 

45def test_ancestors(root_scenario, leaf_scenario): 

46 assert len(root_scenario.ancestors()) == 0 

47 assert len(leaf_scenario.ancestors()) == 5 

48 

49 

50def test_index(root_scenario, leaf_scenario): 

51 assert root_scenario.index() == 0 

52 assert leaf_scenario.index() == 8