def graph_args(args): ''' Common parameters for two graph commands: configure graph [<gtype> [<file> [<img_format>]]] history graph <pe> [<gtype> [<file> [<img_format>]]] ''' from crm_gv import gv_types gtype, outf, ftype = None, None, None try: gtype = args[0] if gtype not in gv_types: common_err("graph type %s is not supported" % gtype) return False, gtype, outf, ftype except: gtype = "dot" try: outf = args[1] if not utils.is_path_sane(outf): return False, gtype, outf, ftype except: outf = None try: ftype = args[2] except: ftype = gtype return True, gtype, outf, ftype
def test_sanity(): sane_paths = ['foo/bar', 'foo', '/foo/bar', 'foo0', 'foo_bar', 'foo-bar', '0foo', '.foo', 'foo.bar'] insane_paths = ['#foo', 'foo?', 'foo*', 'foo$', 'foo[bar]', 'foo`', "foo'", 'foo/*'] for p in sane_paths: assert utils.is_path_sane(p) for p in insane_paths: assert not utils.is_path_sane(p) sane_filenames = ['foo', '0foo', '0', '.foo'] insane_filenames = ['foo/bar'] for p in sane_filenames: assert utils.is_filename_sane(p) for p in insane_filenames: assert not utils.is_filename_sane(p) sane_names = ['foo'] insane_names = ["f'o"] for n in sane_names: assert utils.is_name_sane(n) assert utils.is_value_sane(n) for n in insane_names: assert not utils.is_name_sane(n) assert not utils.is_value_sane(n)