def test_normalize_path(): root_parent = normalize_path('relative/path.micro', parent='root/file') home_parent = normalize_path('relative/path.micro', parent='home/file') absolute = normalize_path('/absolute/path.micro', parent='home/file') assert root_parent == 'root/relative/path.micro' assert home_parent == 'home/relative/path.micro' assert absolute == '/absolute/path.micro'
def load_connection(filename, config=None): p = _load(filename) if config: p.config._load(file_util.normalize_path(config)) sys.modules[__name__].config = p.config setup_connections(p.config, p.connections) return p
def load_server(filename, config=None): p = _load(filename) if config: p.config._load(file_util.normalize_path(config)) sys.modules[__name__].config = p.config SERVER.close() setup_servers(p.config, p.servers, p.is_new) return p
def load(micro='micro', files=None, lines=None): path = micro if files is None: files = [] if lines is None: lines = [] if isinstance(micro, str): if micro in files: raise Exception( 'a micro file (in this case, %s) cannot be recursively imported' % micro) files.append(micro) micro = open(micro).readlines() elif isinstance(micro, list): files.append('dict') else: raise Exception('Invalid micro file type %s' % type(micro)) fname = files[-1] for num, line in enumerate(micro, start=1): line = line.split('#', 1)[0].strip() if len(line): line = line.split(' ', 1) if len(line) == 1: raise Exception('too few tokens, file=%s, line=%d' % (fname, num)) if line[0].lower() == 'import': import_fname = normalize_path(line[1], 'micro', parent=path) load(import_fname, files, lines) else: lines.append((fname, num, line[0], line[1])) return lines
def load_config(config='config', micro='micro'): p = parser.parse(micro) p.config._load(file_util.normalize_path(config)) sys.modules[__name__].config = p.config return p.config
def _load(path): path = file_util.normalize_path(path, filetype='micro') p = parser.parse(path) return p
def test_normalize_path_with_dots(): path = 'os.path.dirname' answer = normalize_path(path) assert answer[-18:] == 'os.py/path/dirname'