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)
def _dispatch_attr_cmd(cmd, attr_cmd, args): if args[1] == 'set': if len(args) != 4: raise ValueError("Expected 4 arguments to 'set'") if not utils.is_name_sane(args[0]) \ or not utils.is_name_sane(args[2]) \ or not utils.is_value_sane(args[3]): raise ValueError("Argument failed sanity check") return utils.ext_cmd(attr_cmd % (args[0], args[2], args[3])) == 0 elif args[1] in ('delete', 'show') or \ (cmd == "secret" and args[1] in ('stash', 'unstash', 'check')): if len(args) != 3: raise ValueError("Expected 3 arguments to " + args[1]) if not utils.is_name_sane(args[0]) \ or not utils.is_name_sane(args[2]): raise ValueError("Argument failed sanity check") return utils.ext_cmd(attr_cmd % (args[0], args[2])) == 0 raise ValueError("Unknown command " + repr(args[1]))