1e509ee18Sopenharmony_ci# # 2e509ee18Sopenharmony_ci# # Copyright (c) 2024 Huawei Device Co., Ltd. 3e509ee18Sopenharmony_ci# # Licensed under the Apache License, Version 2.0 (the "License"); 4e509ee18Sopenharmony_ci# # you may not use this file except in compliance with the License. 5e509ee18Sopenharmony_ci# # You may obtain a copy of the License at 6e509ee18Sopenharmony_ci# # 7e509ee18Sopenharmony_ci# # http://www.apache.org/licenses/LICENSE-2.0 8e509ee18Sopenharmony_ci# # 9e509ee18Sopenharmony_ci# # Unless required by applicable law or agreed to in writing, software 10e509ee18Sopenharmony_ci# # distributed under the License is distributed on an "AS IS" BASIS, 11e509ee18Sopenharmony_ci# # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e509ee18Sopenharmony_ci# # See the License for the specific language governing permissions and 13e509ee18Sopenharmony_ci# # limitations under the License. 14e509ee18Sopenharmony_ci# # 15e509ee18Sopenharmony_ci 16e509ee18Sopenharmony_ciimport argparse 17e509ee18Sopenharmony_ciimport os 18e509ee18Sopenharmony_ciimport sys 19e509ee18Sopenharmony_ciimport unittest 20e509ee18Sopenharmony_ciimport config 21e509ee18Sopenharmony_ci 22e509ee18Sopenharmony_ciclass RunTest: 23e509ee18Sopenharmony_ci args = None 24e509ee18Sopenharmony_ci suite = unittest.TestSuite() 25e509ee18Sopenharmony_ci loader = unittest.TestLoader() 26e509ee18Sopenharmony_ci hap_list = [] 27e509ee18Sopenharmony_ci 28e509ee18Sopenharmony_ci def __init__(self): 29e509ee18Sopenharmony_ci self.parse_args() 30e509ee18Sopenharmony_ci self.run_test() 31e509ee18Sopenharmony_ci 32e509ee18Sopenharmony_ci def parse_args(self): 33e509ee18Sopenharmony_ci parser = argparse.ArgumentParser(description='Plugin test.') 34e509ee18Sopenharmony_ci parser.add_argument( 35e509ee18Sopenharmony_ci '-hdctool', 36e509ee18Sopenharmony_ci action='store', 37e509ee18Sopenharmony_ci required=True, 38e509ee18Sopenharmony_ci default=None, 39e509ee18Sopenharmony_ci help='Remote connnection tool.' 40e509ee18Sopenharmony_ci ) 41e509ee18Sopenharmony_ci self.args = parser.parse_args() 42e509ee18Sopenharmony_ci 43e509ee18Sopenharmony_ci def discover_cases(self): 44e509ee18Sopenharmony_ci current_dir = os.path.dirname(os.path.abspath(__file__)) 45e509ee18Sopenharmony_ci case_dir = current_dir + os.sep + 'js_test_case' 46e509ee18Sopenharmony_ci discover = self.loader.discover(case_dir, pattern='*.py') 47e509ee18Sopenharmony_ci self.suite.addTest(discover) 48e509ee18Sopenharmony_ci 49e509ee18Sopenharmony_ci def get_panda_list(self): 50e509ee18Sopenharmony_ci self.hap_list = config.hap_list 51e509ee18Sopenharmony_ci 52e509ee18Sopenharmony_ci def run_test(self): 53e509ee18Sopenharmony_ci if self.args.hdctool is not None: 54e509ee18Sopenharmony_ci os.environ["HDCTool"] = self.args.hdctool 55e509ee18Sopenharmony_ci else: 56e509ee18Sopenharmony_ci print("please input the path to hdc tool!") 57e509ee18Sopenharmony_ci sys.exit(0) 58e509ee18Sopenharmony_ci self.get_panda_list() 59e509ee18Sopenharmony_ci for hap_name in self.hap_list: 60e509ee18Sopenharmony_ci if (hap_name != "com.example.myapplication1"): 61e509ee18Sopenharmony_ci os.environ["isRelease"] = "False" 62e509ee18Sopenharmony_ci else: 63e509ee18Sopenharmony_ci os.environ["isRelease"] = "True" 64e509ee18Sopenharmony_ci self.suite = unittest.TestSuite() 65e509ee18Sopenharmony_ci self.discover_cases() 66e509ee18Sopenharmony_ci os.environ["HapName"] = hap_name 67e509ee18Sopenharmony_ci runner = unittest.TextTestRunner(verbosity=2) 68e509ee18Sopenharmony_ci runner.run(self.suite) 69e509ee18Sopenharmony_ci 70e509ee18Sopenharmony_ciMain = RunTest 71e509ee18Sopenharmony_ci 72e509ee18Sopenharmony_ciif __name__ == '__main__': 73e509ee18Sopenharmony_ci Main() 74