You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
| # -*- coding: utf-8 -*-
 | |
| """Pytest fixtures."""
 | |
| import shutil
 | |
| import pytest
 | |
| from os import path, makedirs
 | |
| 
 | |
| TEST_ROOT_PATH: str = path.dirname(path.abspath(__file__))
 | |
| TEST_FILES_PATH: str = path.join(TEST_ROOT_PATH, 'miot')
 | |
| TEST_CACHE_PATH: str = path.join(TEST_ROOT_PATH, 'test_cache')
 | |
| TEST_LANG: str = 'zh-Hans'
 | |
| TEST_UID: str = '123456789'
 | |
| TEST_CLOUD_SERVER: str = 'cn'
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session', autouse=True)
 | |
| def load_py_file():
 | |
|     # Copy py file to test folder
 | |
|     file_list = [
 | |
|         'common.py',
 | |
|         'const.py',
 | |
|         'miot_cloud.py',
 | |
|         'miot_error.py',
 | |
|         'miot_ev.py',
 | |
|         'miot_i18n.py',
 | |
|         'miot_lan.py',
 | |
|         'miot_mdns.py',
 | |
|         'miot_network.py',
 | |
|         'miot_spec.py',
 | |
|         'miot_storage.py']
 | |
|     makedirs(TEST_CACHE_PATH, exist_ok=True)
 | |
|     makedirs(TEST_FILES_PATH, exist_ok=True)
 | |
|     for file_name in file_list:
 | |
|         shutil.copyfile(
 | |
|             path.join(
 | |
|                 TEST_ROOT_PATH, '../custom_components/xiaomi_home/miot',
 | |
|                 file_name),
 | |
|             path.join(TEST_FILES_PATH, file_name))
 | |
|     print('\nloaded test py files, ', file_list)
 | |
|     # Copy spec files to test folder
 | |
|     shutil.copytree(
 | |
|         src=path.join(
 | |
|             TEST_ROOT_PATH, '../custom_components/xiaomi_home/miot/specs'),
 | |
|         dst=path.join(TEST_FILES_PATH, 'specs'),
 | |
|         dirs_exist_ok=True)
 | |
|     print('loaded spec test folder, specs')
 | |
|     # Copy lan files to test folder
 | |
|     shutil.copytree(
 | |
|         src=path.join(
 | |
|             TEST_ROOT_PATH, '../custom_components/xiaomi_home/miot/lan'),
 | |
|         dst=path.join(TEST_FILES_PATH, 'lan'),
 | |
|         dirs_exist_ok=True)
 | |
|     print('loaded lan test folder, lan')
 | |
|     # Copy i18n files to test folder
 | |
|     shutil.copytree(
 | |
|         src=path.join(
 | |
|             TEST_ROOT_PATH, '../custom_components/xiaomi_home/miot/i18n'),
 | |
|         dst=path.join(TEST_FILES_PATH, 'i18n'),
 | |
|         dirs_exist_ok=True)
 | |
|     print('loaded i18n test folder, i18n')
 | |
| 
 | |
|     yield
 | |
| 
 | |
|     if path.exists(TEST_FILES_PATH):
 | |
|         shutil.rmtree(TEST_FILES_PATH)
 | |
|         print('\nremoved test files, ', TEST_FILES_PATH)
 | |
| 
 | |
|     if path.exists(TEST_CACHE_PATH):
 | |
|         shutil.rmtree(TEST_CACHE_PATH)
 | |
|         print('removed test cache, ', TEST_CACHE_PATH)
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session')
 | |
| def test_root_path() -> str:
 | |
|     return TEST_ROOT_PATH
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session')
 | |
| def test_cache_path() -> str:
 | |
|     makedirs(TEST_CACHE_PATH, exist_ok=True)
 | |
|     return TEST_CACHE_PATH
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session')
 | |
| def test_lang() -> str:
 | |
|     return TEST_LANG
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session')
 | |
| def test_uid() -> str:
 | |
|     return TEST_UID
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope='session')
 | |
| def test_cloud_server() -> str:
 | |
|     return TEST_CLOUD_SERVER
 |