• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17import os
18import unittest
19from typing import List, Set
20
21from runner.chapters import Chapters
22
23
24class ChapterTest(unittest.TestCase):
25    current_folder = os.path.dirname(__file__)
26    chapters: Chapters
27    base_folder: str
28    files: List[str]
29
30    @classmethod
31    def setUpClass(cls) -> None:
32        cls.base_folder = ''
33        cls.files = [
34            'folder1/file1.sts',
35            'folder1/file2.sts',
36            'folder1/file3.sts',
37            'folder2/file1.sts',
38            'folder2/file2.sts',
39            'folder2/file3.sts',
40            'folder3/file1.sts',
41            'folder3/file2.sts',
42            'folder3/test2.sts',
43            'folder4/file1.sts',
44            'fol-der 1/fi_le 1.sts',
45        ]
46        cls.chapters = Chapters(os.path.join(cls.current_folder, 'chapters_test.yaml'))
47
48    def test_ch1(self) -> None:
49        actual = ChapterTest.chapters.filter_by_chapter(
50            chapter_name='ch1',
51            base_folder=ChapterTest.base_folder,
52            extension="sts",
53            files=ChapterTest.files
54        )
55        expected: Set[str] = {
56            'folder1/file1.sts',
57            'folder2/file1.sts',
58            'folder2/file2.sts',
59            'folder2/file3.sts',
60            'folder3/file1.sts',
61            'folder3/file2.sts'
62        }
63        self.assertSetEqual(actual, expected)
64
65    def test_ch2(self) -> None:
66        actual = ChapterTest.chapters.filter_by_chapter(
67            chapter_name='ch2',
68            base_folder=ChapterTest.base_folder,
69            extension="sts",
70            files=ChapterTest.files
71        )
72        expected: Set[str] = {
73            'folder1/file1.sts',
74            'folder2/file1.sts',
75            'folder2/file2.sts',
76            'folder2/file3.sts',
77            'folder3/file1.sts',
78            'folder3/file2.sts'
79        }
80        self.assertSetEqual(actual, expected)
81
82    def test_ch3(self) -> None:
83        actual = ChapterTest.chapters.filter_by_chapter(
84            chapter_name='ch3',
85            base_folder=ChapterTest.base_folder,
86            extension="sts",
87            files=ChapterTest.files
88        )
89        expected: Set[str] = {
90            'folder1/file2.sts',
91            'folder1/file3.sts',
92            'folder3/test2.sts',
93            'folder4/file1.sts',
94            'fol-der 1/fi_le 1.sts'
95        }
96        self.assertSetEqual(actual, expected)
97
98    def test_ch4_1(self) -> None:
99        actual = ChapterTest.chapters.filter_by_chapter(
100            chapter_name='ch4_1',
101            base_folder=ChapterTest.base_folder,
102            extension="sts",
103            files=ChapterTest.files
104        )
105        expected: Set[str] = {
106            'folder1/file1.sts',
107        }
108        self.assertSetEqual(actual, expected)
109
110    def test_ch4(self) -> None:
111        actual = ChapterTest.chapters.filter_by_chapter(
112            chapter_name='ch4',
113            base_folder=ChapterTest.base_folder,
114            extension="sts",
115            files=ChapterTest.files
116        )
117        expected: Set[str] = {
118            'folder1/file1.sts',
119            'folder1/file2.sts',
120        }
121        self.assertSetEqual(actual, expected)
122
123    def test_ch5(self) -> None:
124        actual = ChapterTest.chapters.filter_by_chapter(
125            chapter_name='ch5',
126            base_folder=ChapterTest.base_folder,
127            extension="sts",
128            files=ChapterTest.files
129        )
130        expected: Set[str] = {
131            'folder3/file1.sts',
132            'folder3/file2.sts',
133        }
134        self.assertSetEqual(actual, expected)
135
136    def test_ch6(self) -> None:
137        actual = ChapterTest.chapters.filter_by_chapter(
138            chapter_name='ch6',
139            base_folder=ChapterTest.base_folder,
140            extension="sts",
141            files=ChapterTest.files
142        )
143        expected: Set[str] = {
144            'folder1/file1.sts',
145            'folder1/file2.sts',
146            'folder1/file3.sts',
147            'folder2/file1.sts',
148            'folder2/file2.sts',
149            'folder2/file3.sts',
150            'folder3/file1.sts',
151            'folder3/file2.sts',
152            'folder3/test2.sts',
153            'folder4/file1.sts',
154            'fol-der 1/fi_le 1.sts'
155        }
156        self.assertSetEqual(actual, expected)
157
158    def test_ch7(self) -> None:
159        actual = ChapterTest.chapters.filter_by_chapter(
160            chapter_name='ch7',
161            base_folder=ChapterTest.base_folder,
162            extension="sts",
163            files=ChapterTest.files
164        )
165        expected: Set[str] = set()
166        self.assertSetEqual(actual, expected)
167
168    def test_ch8(self) -> None:
169        actual = ChapterTest.chapters.filter_by_chapter(
170            chapter_name='ch8',
171            base_folder=ChapterTest.base_folder,
172            extension="sts",
173            files=ChapterTest.files
174        )
175        expected: Set[str] = {
176            'folder1/file1.sts',
177            'folder2/file2.sts',
178            'folder2/file3.sts',
179            'folder3/file1.sts',
180            'folder3/file2.sts'
181        }
182        self.assertSetEqual(actual, expected)
183
184    def test_ch9(self) -> None:
185        actual = ChapterTest.chapters.filter_by_chapter(
186            chapter_name='ch9',
187            base_folder=ChapterTest.base_folder,
188            extension="sts",
189            files=ChapterTest.files
190        )
191        expected: Set[str] = {
192            'folder1/file1.sts',
193            'folder3/file1.sts',
194            'folder3/file2.sts',
195            'folder4/file1.sts'
196        }
197        self.assertSetEqual(actual, expected)
198
199    def test_ch10(self) -> None:
200        actual = ChapterTest.chapters.filter_by_chapter(
201            chapter_name='ch10',
202            base_folder=ChapterTest.base_folder,
203            extension="sts",
204            files=ChapterTest.files
205        )
206        expected: Set[str] = {
207            'folder4/file1.sts'
208        }
209        self.assertSetEqual(actual, expected)
210
211    def test_ch11(self) -> None:
212        actual = ChapterTest.chapters.filter_by_chapter(
213            chapter_name='ch11',
214            base_folder=ChapterTest.base_folder,
215            extension="sts",
216            files=ChapterTest.files
217        )
218        expected: Set[str] = {
219            'folder1/file1.sts',
220            'folder3/file1.sts',
221            'folder3/file2.sts',
222        }
223        self.assertSetEqual(actual, expected)
224
225    def test_ch12(self) -> None:
226        actual = ChapterTest.chapters.filter_by_chapter(
227            chapter_name='ch12',
228            base_folder=ChapterTest.base_folder,
229            extension="sts",
230            files=ChapterTest.files
231        )
232        expected: Set[str] = set()
233        self.assertSetEqual(actual, expected)
234
235    def test_ch13(self) -> None:
236        actual = ChapterTest.chapters.filter_by_chapter(
237            chapter_name='ch13',
238            base_folder=ChapterTest.base_folder,
239            extension="sts",
240            files=ChapterTest.files
241        )
242        expected: Set[str] = set()
243        self.assertSetEqual(actual, expected)
244
245    def test_ch14(self) -> None:
246        actual = ChapterTest.chapters.filter_by_chapter(
247            chapter_name='ch14',
248            base_folder=ChapterTest.base_folder,
249            extension="sts",
250            files=ChapterTest.files
251        )
252        expected: Set[str] = set()
253        self.assertSetEqual(actual, expected)
254
255    def test_ch15(self) -> None:
256        actual = ChapterTest.chapters.filter_by_chapter(
257            chapter_name='ch15',
258            base_folder=ChapterTest.base_folder,
259            extension="sts",
260            files=ChapterTest.files
261        )
262        expected: Set[str] = set()
263        self.assertSetEqual(actual, expected)
264
265    def test_ch16(self) -> None:
266        actual = ChapterTest.chapters.filter_by_chapter(
267            chapter_name='ch16',
268            base_folder=ChapterTest.base_folder,
269            extension="sts",
270            files=ChapterTest.files
271        )
272        expected: Set[str] = {
273            'fol-der 1/fi_le 1.sts'
274        }
275        self.assertSetEqual(actual, expected)
276
277    def test_non_exist_chapter(self) -> None:
278        actual = ChapterTest.chapters.filter_by_chapter(
279            chapter_name='non-exist',
280            base_folder=ChapterTest.base_folder,
281            extension="sts",
282            files=ChapterTest.files
283        )
284        expected: Set[str] = set()
285        self.assertSetEqual(actual, expected)
286