StrictDoc Documentation
tests/end2end/screens/project_statistics/view_project_statistics/test_case.py
Source file coverage
Path:
tests/end2end/screens/project_statistics/view_project_statistics/test_case.py
Lines:
66
Non-empty lines:
57
Non-empty lines covered with requirements:
57 / 57 (100.0%)
Functions:
2
Functions covered by requirements:
2 / 2 (100.0%)
1
"""
2
@relation(SDOC-SRS-97, scope=file)
3
"""
4
 
5
import os
6
 
7
from tests.end2end.e2e_case import E2ECase
8
from tests.end2end.helpers.screens.project_index.screen_project_index import (
9
    Screen_ProjectIndex,
10
)
11
from tests.end2end.helpers.screens.project_statistics.project_statistics import (
12
    Screen_ProjectStatistics,
13
)
14
from tests.end2end.helpers.screens.search.search import Screen_SearchResults
15
from tests.end2end.server import SDocTestServer
16
 
17
path_to_this_test_file_folder = os.path.dirname(os.path.abspath(__file__))
18
 
19
 
20
class Test(E2ECase):
21
    expected_search_results = [
22
        ("search-total-sections", 2),
23
        ("search-sections-without-any-text", 2),
24
        ("search-total-requirements", 5),
25
        ("search-requirements-with-no-uid", 2),
26
        (
27
            "search-root-level-requirements-not-connected-to-by-any-requirement",
28
            0,
29
        ),
30
        (
31
            "search-non-root-level-requirements-not-connected-to-any-parent-requirement",
32
            4,
33
        ),
34
        ("search-requirements-with-no-rationale", 4),
35
        ("search-requirements-with-status-none", 1),
36
        ("search-requirements-with-status-active", 1),
37
        ("search-requirements-with-status-draft", 1),
38
        ("search-requirements-with-status-backlog", 1),
39
        ("search-requirements-with-status-other", 1),
40
        ("search-total-tbd", 2),
41
        ("search-total-tbc", 1),
42
    ]
43
 
44
    def test(self):
45
        with SDocTestServer(
46
            input_path=path_to_this_test_file_folder
47
        ) as test_server:
48
            self.open(test_server.get_host_and_port())
49
 
50
            screen_project_index = Screen_ProjectIndex(self)
51
            screen_project_index.assert_on_screen()
52
            screen_project_index.assert_link_to_project_statistics_present()
53
 
54
            screen_requirements_coverage: Screen_ProjectStatistics = (
55
                screen_project_index.do_click_on_project_statistics_link()
56
            )
57
            screen_requirements_coverage.assert_on_screen()
58
 
59
            for test_id, nr_results in self.expected_search_results:
60
                screen_search_results: Screen_SearchResults = (
61
                    screen_requirements_coverage.do_click_on_search_link(
62
                        test_id
63
                    )
64
                )
65
                screen_search_results.assert_nr_results(nr_results)
66
                self.go_back()