|
1 | 1 | """Tests of querying tools.""" |
2 | 2 |
|
3 | | -import contextlib |
4 | 3 | import importlib |
5 | | -import io |
6 | 4 | import logging |
7 | 5 | import os |
8 | 6 | import pathlib |
9 | 7 | import sys |
10 | 8 | import tempfile |
11 | 9 | import unittest |
12 | | -import unittest.mock |
13 | 10 |
|
14 | 11 | from boilerplates.packaging_tests import run_module |
15 | 12 |
|
16 | | -from version_query.version import VersionComponent, Version |
| 13 | +from version_query.version import Version |
17 | 14 | from version_query.git_query import query_git_repo, predict_git_repo |
18 | 15 | from version_query.py_query import query_metadata_json, query_pkg_info, query_package_folder |
19 | | -from version_query.query import \ |
20 | | - query_folder, query_caller, query_version_str, predict_caller, predict_version_str |
| 16 | +from version_query.query import query_folder, query_caller |
21 | 17 | from .examples import \ |
22 | 18 | PY_LIB_DIR, GIT_REPO_EXAMPLES, METADATA_JSON_EXAMPLE_PATHS, PKG_INFO_EXAMPLE_PATHS, \ |
23 | 19 | PACKAGE_FOLDER_EXAMPLES |
| 20 | +from .test_cli import preserve_logger_level |
24 | 21 |
|
25 | 22 | _LOG = logging.getLogger(__name__) |
26 | 23 |
|
27 | 24 | IGNORED_FOLDER_NAMES = ['opencv'] |
28 | 25 |
|
29 | 26 |
|
30 | | -@contextlib.contextmanager |
31 | | -def temporarily_set_logger_level(logger_name: str, level: int): |
32 | | - """Change logger level on enter and restore on exit of this context.""" |
33 | | - logger = logging.getLogger(logger_name) |
34 | | - level_ = logger.level |
35 | | - logger.setLevel(level) |
36 | | - try: |
37 | | - yield |
38 | | - finally: |
39 | | - logger.setLevel(level_) |
40 | | - |
41 | | - |
42 | | -def preserve_logger_level(logger_name: str): |
43 | | - return temporarily_set_logger_level(logger_name, logging.getLogger(logger_name).level) |
44 | | - |
45 | | - |
46 | 27 | class Tests(unittest.TestCase): |
47 | 28 |
|
48 | 29 | def _check_examples_count(self, description, examples): |
@@ -164,47 +145,3 @@ def test_query_caller(self): |
164 | 145 | version = query_caller() |
165 | 146 | _LOG.debug('caller: %s', version) |
166 | 147 | self.assertIsInstance(version, Version) |
167 | | - |
168 | | - def test_not_as_main(self): # pylint: disable = no-self-use |
169 | | - run_module('version_query', run_name=None) |
170 | | - |
171 | | - def test_help(self): |
172 | | - sio = io.StringIO() |
173 | | - with contextlib.redirect_stderr(sio): |
174 | | - with preserve_logger_level('version_query'): |
175 | | - with self.assertRaises(SystemExit): |
176 | | - run_module('version_query') |
177 | | - _LOG.info('%s', sio.getvalue()) |
178 | | - |
179 | | - def test_bad_usage(self): |
180 | | - sio = io.StringIO() |
181 | | - with contextlib.redirect_stderr(sio): |
182 | | - with preserve_logger_level('version_query'): |
183 | | - with self.assertRaises(ValueError): |
184 | | - run_module('version_query', '-p', '-i', '.') |
185 | | - _LOG.info('%s', sio.getvalue()) |
186 | | - |
187 | | - def test_here(self): |
188 | | - with temporarily_set_logger_level('version_query', logging.ERROR): |
189 | | - sio = io.StringIO() |
190 | | - with contextlib.redirect_stdout(sio): |
191 | | - run_module('version_query', '.') |
192 | | - self.assertEqual(sio.getvalue().rstrip(), query_caller().to_str()) |
193 | | - self.assertEqual(sio.getvalue().rstrip(), query_version_str()) |
194 | | - |
195 | | - def test_increment_here(self): |
196 | | - with temporarily_set_logger_level('version_query', logging.ERROR): |
197 | | - sio = io.StringIO() |
198 | | - with contextlib.redirect_stdout(sio): |
199 | | - with preserve_logger_level('version_query'): |
200 | | - run_module('version_query', '-i', '.') |
201 | | - self.assertEqual(sio.getvalue().rstrip(), |
202 | | - query_caller().increment(VersionComponent.Patch).to_str()) |
203 | | - |
204 | | - def test_predict_here(self): |
205 | | - with temporarily_set_logger_level('version_query', logging.ERROR): |
206 | | - sio = io.StringIO() |
207 | | - with contextlib.redirect_stdout(sio): |
208 | | - run_module('version_query', '-p', '.') |
209 | | - self.assertEqual(sio.getvalue().rstrip(), predict_caller().to_str()) |
210 | | - self.assertEqual(sio.getvalue().rstrip(), predict_version_str()) |
0 commit comments