def test_checkout(self): gitdir = repo_create(".") author = "Git User <*****@*****.**>" mode100644 = stat.S_IFREG | stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH quote = pathlib.Path("quote.txt") self.fs.create_file(quote, contents="that's what she said", st_mode=mode100644) letters = pathlib.Path("letters.txt") self.fs.create_file(letters, contents="abcdefg", st_mode=mode100644) digits = pathlib.Path("digits.txt") self.fs.create_file(digits, contents="1234567890", st_mode=mode100644) add(gitdir, [quote]) quote_sha = commit(gitdir, "add quote.txt", author) add(gitdir, [letters]) letters_sha = commit(gitdir, "add letters.txt", author) add(gitdir, [digits]) digits_sha = commit(gitdir, "add digits.txt", author) checkout(gitdir, digits_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertTrue(self.fs.exists("letters.txt")) self.assertTrue(self.fs.exists("digits.txt")) checkout(gitdir, letters_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertTrue(self.fs.exists("letters.txt")) self.assertFalse(self.fs.exists("digits.txt")) checkout(gitdir, quote_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertFalse(self.fs.exists("letters.txt")) self.assertFalse(self.fs.exists("digits.txt"))
def test_checkout_dirs_are_deleted(self): gitdir = repo_create(".") author = "Git User <*****@*****.**>" mode100644 = stat.S_IFREG | stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH quote = pathlib.Path("quote.txt") self.fs.create_file(quote, contents="that's what she said", st_mode=mode100644) add(gitdir, [quote]) quote_sha = commit(gitdir, "add quote.txt", author) letters = pathlib.Path("alphabeta") / "letters.txt" self.fs.create_file(letters, contents="abcdefg", st_mode=mode100644) add(gitdir, [letters]) letters_sha = commit(gitdir, "add letters.txt", author) digits = pathlib.Path("numbers") / "digits.txt" self.fs.create_file(digits, contents="1234567890", st_mode=mode100644) add(gitdir, [digits]) digits_sha = commit(gitdir, "add digits.txt", author) checkout(gitdir, digits_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertTrue(self.fs.exists(letters.absolute())) self.assertTrue(self.fs.exists(digits.absolute())) checkout(gitdir, letters_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertTrue(self.fs.exists(letters.parent.absolute())) self.assertFalse( self.fs.exists(digits.parent.absolute()), msg=f"Каталога `{digits.parent}` не должно существовать", ) self.assertTrue(self.fs.exists(letters.absolute())) checkout(gitdir, quote_sha) self.assertTrue(self.fs.exists("quote.txt")) self.assertFalse( self.fs.exists(letters.parent.absolute()), msg=f"Каталога `{letters.parent}` не должно существовать", ) self.assertFalse( self.fs.exists(digits.parent.absolute()), msg=f"Каталога `{digits.parent}` не должно существовать", )
def cmd_checkout(args: argparse.Namespace) -> None: gitdir = repo_find() checkout(gitdir, args.obj_name)