def dir_remotes(remoteloc): # Use 2 runner instances to checkout two clones and create merge conflicts loca = Runner(False) reponame = util.randrepo() os.mkdir(reponame) loca.cdrel(reponame) # Create repo in A loca.runcommand("gin", "init") loca.runcommand("gin", "add-remote", "--create", "--default", "origin", f"dir:{remoteloc.name}") loca.runcommand("gin", "upload") loca.repositories[loca.cmdloc] = None # Init in B and download locb = Runner(False) os.mkdir(reponame) locb.cdrel(reponame) locb.runcommand("gin", "init") locb.runcommand("gin", "add-remote", "--default", "origin", f"dir:{remoteloc.name}") locb.runcommand("gin", "download") locb.repositories[locb.cmdloc] = None return (loca, locb)
def runner(): r = Runner() reponame = util.randrepo() os.mkdir(reponame) r.cdrel(reponame) r.runcommand("gin", "init") r.repositories[r.cmdloc] = reponame yield r r.runcommand("gin", "annex", "uninit")
def runner(): r = Runner(True) r.login() reponame = util.randrepo() r.runcommand("gin", "create", reponame, "Test repository for all states") r.cdrel(reponame) r.repositories[r.cmdloc] = reponame yield r r.cleanup() r.logout()
def runner(): r = Runner() r.login() reponame = util.randrepo() r.runcommand("gin", "create", reponame, "Test a minimal workflow") r.reponame = reponame r.cdrel(reponame) r.repositories[r.cmdloc] = reponame yield r r.cleanup() r.logout()
def test_add_server_prompt(runner): r = runner r.runcommand("gin", "add-server", "srva", inp="\n".join(inpforma)) r.runcommand("gin", "add-server", "srvb", inp="\n".join(inpformb)) repo_srva = util.randrepo() repo_srvb = util.randrepo() def cleanup(): r.runcommand("gin", "use-server", "srva") repopath = f"{r.username}/{repo_srva}" r.runcommand("gin", "delete", repopath, inp=repopath) r.runcommand("gin", "use-server", "srvb") repopath = f"{r.username}/{repo_srvb}" r.runcommand("gin", "delete", repopath, inp=repopath) r.runcommand("gin", "use-server", "srva") r.runcommand("gin", "logout") r.runcommand("gin", "use-server", "srvb") r.runcommand("gin", "logout") r.runcommand("gin", "remove-server", "srva") r.runcommand("gin", "rm-server", "srvb") r.cleanup = cleanup r.runcommand("gin", "use-server", "srvb") r.login() r.runcommand("gin", "create", repo_srvb, "Test multiple servers") r.runcommand("gin", "use-server", "srva") r.login() r.runcommand("gin", "create", repo_srva, "Test multiple servers")
def runner(): r = Runner() r.login() reponame = util.randrepo() r.reponame = reponame localdir = f"{reponame}-local-clone" os.mkdir(localdir) r.cdrel(localdir) yield r r.cleanup() r.logout()
def runner(request): offline = "offline" in request.node.keywords r = Runner(not offline) # create repo locally only reponame = util.randrepo() localdir = f"{reponame}" os.mkdir(localdir) r.cdrel(localdir) r.reponame = None if offline else reponame yield r # cleanup r.cleanup() r.logout()
def runner(): r = Runner() r.login() # create repo (remote and local) and cd into directory reponame = util.randrepo() print("Setting up test repository") r.runcommand("gin", "create", reponame, "Test repository for cascading configurations") r.reponame = reponame r.cdrel(reponame) r.repositories[r.cmdloc] = reponame yield r r.cleanup() r.logout()
def runner(): remoteloc = tempfile.TemporaryDirectory(prefix="gintest-remote") r = Runner(False) reponame = util.randrepo() os.mkdir(reponame) r.cdrel(reponame) r.runcommand("gin", "init") r.runcommand("gin", "add-remote", "--create", "--default", "origin", f"dir:{remoteloc.name}") r.runcommand("gin", "upload") r.repositories[r.cmdloc] = None yield r r.cleanup()
def runner(): remoteloc = tempfile.TemporaryDirectory(prefix="gintest-remote") r = Runner(False) # create repo (remote and local) and cd into directory reponame = util.randrepo() print("Setting up test repository") os.mkdir(reponame) r.cdrel(reponame) r.runcommand("gin", "init") r.runcommand("gin", "add-remote", "--create", "--default", "origin", f"dir:{remoteloc.name}") r.reponame = reponame r.repositories[r.cmdloc] = None r.hashes = dict() head, curhashes = util.hashtree(r) r.hashes[head] = curhashes # add files and compute their md5 hashes print("Creating files") create_files(r) out, err = r.runcommand("gin", "commit", ".") head, curhashes = util.hashtree(r) r.hashes[head] = curhashes r.commitcount = 2 n = 10 print(f"Modifying files {n} times") for _ in range(n): create_files(r) out, err = r.runcommand("gin", "commit", ".") head, curhashes = util.hashtree(r) r.hashes[head] = curhashes r.commitcount += 1 # TODO: Add some symlinks to the directories (not Windows) # verify commit count before returning assert util.getrevcount(r) == r.commitcount yield r r.cleanup() r.logout() print("DONE!")
def runner(): r = Runner() r.login() # username = r.username # create repo (remote and local) and cd into directory reponame = util.randrepo() # repopath = f"{username}/{reponame}" r.runcommand("gin", "create", reponame, "Test repository for error output. Created with test scripts") r.reponame = reponame r.repositories[r.cmdloc] = reponame r.cdrel(reponame) r.runcommand("gin", "upload") r.cdrel("..") yield r r.cleanup() r.logout()
def runner(): r = Runner() # change config dir to some temporary directory with spaces in the name defaultconfdir = r.env["GIN_CONFIG_DIR"] conftemp = tempfile.TemporaryDirectory(prefix="conf place with spaces") spaceconfdir = os.path.join(conftemp.name, "conf") r.env["GIN_CONFIG_DIR"] = spaceconfdir shutil.copytree(defaultconfdir, spaceconfdir) r.login() # create repo (remote and local) and cd into directory reponame = util.randrepo() print("Setting up test repository") r.runcommand("gin", "create", reponame, "Test repository for alt config path (with spaces)") r.cdrel(reponame) r.repositories[r.cmdloc] = reponame yield r r.cleanup() r.logout()
def runner(): r = Runner(True) r.login() # manually set up repository with annex v5 reponame = util.randrepo() r.runcommand("gin", "create", "--no-clone", reponame, "Test repository for annex upgrade") os.mkdir(reponame) r.cdrel(reponame) r.runcommand("git", "init") r.runcommand("git", "annex", "init", "--version=5") r.runcommand("gin", "add-remote", "origin", f"test:{r.username}/{reponame}") r.repositories[r.cmdloc] = reponame yield r r.cleanup() r.logout()
def drunner(): remoteloc = tempfile.TemporaryDirectory(prefix="gin-cli-test") r = Runner(False) reponame = util.randrepo() r.reponame = reponame os.mkdir(reponame) r.cdrel(reponame) # Create repo in A r.runcommand("gin", "init") r.runcommand("gin", "add-remote", "--create", "--default", "origin", f"dir:{remoteloc.name}") r.runcommand("gin", "upload") r.repositories[r.cmdloc] = None r.remotedir = remoteloc yield r util.set_rwx_recursive(remoteloc.name) r.cleanup()
def server_remotes(): # Use 2 runner instances to checkout two clones and create merge conflicts loca = Runner() loca.login() locb = Runner() locb.env = loca.env # share environments between the two users # create repo (remote and local) and cd into directory reponame = util.randrepo() repopath = f"{loca.username}/{reponame}" # Create repo in A loca.runcommand("gin", "create", reponame, "Repository for testing merge conflicts") loca.cdrel(reponame) loca.repositories[loca.cmdloc] = reponame # Clone into B locb.runcommand("gin", "get", repopath) locb.cdrel(reponame) locb.repositories[locb.cmdloc] = None return (loca, locb)
def test_use_server_create_repo(runner): r = runner r.runcommand(*srva, inp="yes") r.runcommand(*srvb, inp="yes") repo_srva = util.randrepo() repo_srvb = util.randrepo() def cleanup(): r.runcommand("gin", "use-server", "srva") repopath = f"{r.username}/{repo_srva}" r.runcommand("gin", "delete", repopath, inp=repopath) r.runcommand("gin", "use-server", "srvb") repopath = f"{r.username}/{repo_srvb}" r.runcommand("gin", "delete", repopath, inp=repopath) r.runcommand("gin", "use-server", "srva") r.runcommand("gin", "logout") r.runcommand("gin", "use-server", "srvb") r.runcommand("gin", "logout") r.runcommand("gin", "remove-server", "srva") r.runcommand("gin", "rm-server", "srvb") r.cleanup = cleanup r.runcommand("gin", "use-server", "srvb") r.login() r.runcommand("gin", "create", repo_srvb, "Test multiple servers (switching default)") out, err = r.runcommand("gin", "repos", "--json") repos = json.loads(out) # find repo_srvb for repo in repos: if repo["name"] == repo_srvb: break else: assert False, "Unable to find repository on server" # request repo_srvb explicitly out, err = r.runcommand("gin", "repoinfo", "--json", f"{r.username}/{repo_srvb}") repoinfo = json.loads(out) assert repoinfo["name"] == repo_srvb # change server, check repos r.runcommand("gin", "use-server", "srva") r.login() out, err = r.runcommand("gin", "repos", "--json") if out: repos = json.loads(out) for repo in repos: assert repo["name"] != repo_srvb r.runcommand("gin", "create", repo_srva, "Test multiple servers (switching default)") r.runcommand("gin", "use-server", "srvb") # TODO: Change when we get --json output for the server listing out, err = r.runcommand("gin", "servers") assert not err, "error getting 'gin servers' listing" servercount = len([line for line in out.splitlines() if line.startswith("*")]) assert servercount == 4, f"{servercount} servers configured; expected 3" r.runcommand("gin", "rm-server", "srva") out, err = r.runcommand("gin", "servers") assert not err, "error getting 'gin servers' listing" servercount = len([line for line in out.splitlines() if line.startswith("*")]) assert servercount == 3, f"{servercount} servers configured; expected 2" r.runcommand("gin", "rm-server", "srvb") out, err = r.runcommand("gin", "servers") assert not err, "error getting 'gin servers' listing" servercount = len([line for line in out.splitlines() if line.startswith("*")]) assert servercount == 2, f"{servercount} servers configured; expected 1" r.runcommand(*srva, inp="yes") r.runcommand(*srvb, inp="yes")