mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-16 17:18:56 +00:00
73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
import logging
|
|
import shutil
|
|
import time
|
|
import os
|
|
from pathlib import Path
|
|
|
|
|
|
def create_test_directory():
|
|
test_dir_name = "tests/" + time.strftime("%Y_%m_%d_%H_%M_%S")
|
|
path = os.path.join(os.getcwd(), test_dir_name)
|
|
os.mkdir(path, mode=0o777)
|
|
print("Test directory: ", path)
|
|
return path
|
|
|
|
|
|
def configure_logging(log_filename, clear_log_file=True):
|
|
format_template = ("%(asctime)s %(threadName)s %(name)s %(levelname)s "
|
|
"%(filename)-25s %(lineno)-5s "
|
|
"%(funcName)-25s : %(message)s")
|
|
logging.basicConfig(format=format_template,
|
|
filename=log_filename,
|
|
filemode='a',
|
|
level=logging.DEBUG)
|
|
if clear_log_file:
|
|
with open(log_filename, "w") as f:
|
|
f.write("asctime\t\t\t\t\tthreadName name levelname filename\
|
|
\tlineno\tfuncName\t\t\t\tmessage\n")
|
|
|
|
logging.getLogger("asyncio").setLevel(logging.WARNING)
|
|
logging.getLogger("matplotlib").setLevel(logging.WARNING)
|
|
|
|
|
|
def copy_config_files_to_test_directory(files: list, test_directory: str):
|
|
for file in files:
|
|
shutil.copy(file, test_directory + "/" + Path(file).name)
|
|
|
|
|
|
def copy_log_files_to_test_directory(dir: str):
|
|
log_files = ["log/log_rx.log", "log/log_tx.log", "log/check_addr.log"]
|
|
for file in log_files:
|
|
shutil.copy(file, dir + "/" + time.strftime("%Y_%m_%d_%H_%M_%S_") +
|
|
file.replace("log/", ""))
|
|
|
|
|
|
# Running tests as sudo implies root permissions on created directories/files.
|
|
# This function sets the default permission mode to dirs/files in given path
|
|
# recursively.
|
|
def set_default_chmod_recurs(path):
|
|
for root, dirs, files in os.walk(path):
|
|
for d in dirs:
|
|
os.chmod(os.path.join(root, d), 0o0777)
|
|
for f in files:
|
|
os.chmod(os.path.join(root, f), 0o0777)
|