Example #1
0
    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"))
Example #2
0
    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}` не должно существовать",
        )
Example #3
0
def cmd_commit(args: argparse.Namespace) -> None:
    gitdir = repo_find()
    sha = commit(gitdir, args.message, args.author)
    print(sha)