Example #1
0
    def test_call_without_specifying_dir(self):
        with GitDir() as git, TempFile() as out_file:
            commit_id = git.create_git_commit()
            expected = """
                    # ---------------------------------------------------
                    # This file is autogenerated by git-version.
                    # DO NOT MODIFY!
                    # ---------------------------------------------------

                    VERSION_STRING = "dev1+rev%s"
                    GIT_TAG_NAME = "master"
                    GIT_COMMITS_SINCE_TAG = 1
                    GIT_COMMIT_ID = "%s"
                    MODIFIED_SINCE_COMMIT = False
                    IS_DEV_VERSION = True
                    IS_STABLE_VERSION = False
                """ % (commit_id[0:7], commit_id[0:7])
            script_dir = os.getcwd()
            with ChDir(git.dir), open("/dev/null", 'w') as devnull:
                subprocess.check_call([
                    sys.executable, "-m", "gitversionbuilder", "--lang",
                    "python", out_file
                ],
                                      stdout=devnull,
                                      env={"PYTHONPATH": script_dir})
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #2
0
    def test_empty_git_cpp(self):
        with GitDir() as git, TempFile() as out_file:
            commit_id = git.create_git_commit()
            expected = """
                    // ---------------------------------------------------
                    // This file is autogenerated by git-version.
                    // DO NOT MODIFY!
                    // ---------------------------------------------------

                    #pragma once
                    #ifndef MESSMER_GITVERSION_VERSION_H
                    #define MESSMER_GITVERSION_VERSION_H

                    namespace version {
                      constexpr const char *VERSION_STRING = "dev1+rev%s";
                      constexpr const char *GIT_TAG_NAME = "master";
                      constexpr const unsigned int GIT_COMMITS_SINCE_TAG = 1;
                      constexpr const char *GIT_COMMIT_ID = "%s";
                      constexpr bool MODIFIED_SINCE_COMMIT = false;
                      constexpr bool IS_DEV_VERSION = true;
                      constexpr bool IS_STABLE_VERSION = false;
                    }

                    #endif
                """ % (commit_id[0:7], commit_id[0:7])
            main.create_version_file(git_directory=git.dir,
                                     output_file=out_file,
                                     lang="cpp")
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #3
0
    def test_call_cpp(self):
        with GitDir() as git, TempFile() as out_file:
            commit_id = git.create_git_commit()
            expected = """
                    // ---------------------------------------------------
                    // This file is autogenerated by git-version.
                    // DO NOT MODIFY!
                    // ---------------------------------------------------

                    #pragma once
                    #ifndef MESSMER_GITVERSION_VERSION_H
                    #define MESSMER_GITVERSION_VERSION_H

                    namespace version {
                      constexpr const char *VERSION_STRING = "dev1+rev%s";
                      constexpr const char *GIT_TAG_NAME = "master";
                      constexpr const unsigned int GIT_COMMITS_SINCE_TAG = 1;
                      constexpr const char *GIT_COMMIT_ID = "%s";
                      constexpr bool MODIFIED_SINCE_COMMIT = false;
                      constexpr bool IS_DEV_VERSION = true;
                      constexpr bool IS_STABLE_VERSION = false;
                    }

                    #endif
                """ % (commit_id[0:7], commit_id[0:7])
            with open("/dev/null", 'w') as devnull:
                subprocess.check_call([
                    sys.executable, "-m", "gitversionbuilder", "--lang", "cpp",
                    "--dir", git.dir, out_file
                ],
                                      stdout=devnull)
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #4
0
 def test_commit_commit(self):
     with GitDir() as dir:
         dir.create_git_commit()
         commit_id = dir.create_git_commit()
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("master", 2, commit_id, False, False),
                          version_info)
Example #5
0
    def test_tagged_git_with_commits_after_tag(self):
        with GitDir() as git, TempFile() as out_file:
            git.create_git_commit()
            git.create_git_tag("1.0.1")
            commit_id = git.create_git_commit()
            expected = """
                    # ---------------------------------------------------
                    # This file is autogenerated by git-version.
                    # DO NOT MODIFY!
                    # ---------------------------------------------------

                    VERSION_STRING = "1.0.1.dev1+rev%s"
                    GIT_TAG_NAME = "1.0.1"
                    GIT_COMMITS_SINCE_TAG = 1
                    GIT_COMMIT_ID = "%s"
                    MODIFIED_SINCE_COMMIT = False
                    IS_DEV_VERSION = True
                    IS_STABLE_VERSION = False

                    VERSION_COMPONENTS = ["1", "0", "1"]
                    VERSION_TAG = ""
                """ % (commit_id[0:7], commit_id[0:7])
            main.create_version_file(git_directory=git.dir,
                                     output_file=out_file,
                                     lang="python")
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #6
0
 def test_commit_with_tracked_file(self):
     with GitDir() as dir:
         commit_id = dir.create_git_commit()
         dir.add_tracked_file()
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("master", 1, commit_id, False, True),
                          version_info)
Example #7
0
 def test_commit_tag(self):
     with GitDir() as dir:
         commit_id = dir.create_git_commit()
         dir.create_git_tag("tagname")
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("tagname", 0, commit_id, True, False),
                          version_info)
Example #8
0
 def test_tag_with_untracked_file(self):
     with GitDir() as dir:
         commit_id = dir.create_git_commit()
         dir.create_git_tag("mytag")
         dir.add_untracked_file()
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("mytag", 0, commit_id, True, True),
                          version_info)
Example #9
0
 def test_commit_branch(self):
     with GitDir() as dir:
         commit_id = dir.create_git_commit()
         dir.create_git_branch("newbranch")
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(
             VersionInfo("newbranch", 1, commit_id, False, False),
             version_info)
Example #10
0
 def test_commit_branchedtaggedcommit(self):
     with GitDir() as dir:
         commit_id = dir.create_git_commit()
         dir.create_git_branch("newbranch")
         dir.create_git_commit()
         dir.create_git_tag("mytag")
         dir.switch_git_branch("master")
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("master", 1, commit_id, False, False),
                          version_info)
Example #11
0
 def test_commit_commit_tag_rewind(self):
     with GitDir() as dir:
         dir.create_git_commit()
         commit_id = dir.create_git_commit()
         dir.create_git_commit()
         dir.create_git_tag("tagname")
         dir.checkout_git_commit(commit_id)
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("HEAD", 2, commit_id, False, False),
                          version_info)
Example #12
0
 def test_commit_tag_commit_branch_commit(self):
     with GitDir() as dir:
         dir.create_git_commit()
         dir.create_git_tag("mytag")
         dir.create_git_commit()
         dir.create_git_branch("newbranch")
         commit_id = dir.create_git_commit()
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("mytag", 2, commit_id, True, False),
                          version_info)
Example #13
0
 def test_tag_commit_with_modified_file(self):
     with GitDir() as dir:
         filename = dir.add_tracked_file()
         dir.create_git_commit()
         dir.create_git_tag("mytag")
         commit_id = dir.create_git_commit()
         dir.modify_file(filename)
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("mytag", 1, commit_id, True, True),
                          version_info)
Example #14
0
    def test_empty_git_python(self):
        with GitDir() as git, TempFile() as out_file:
            commit_id = git.create_git_commit()
            expected = """
                    # ---------------------------------------------------
                    # This file is autogenerated by git-version.
                    # DO NOT MODIFY!
                    # ---------------------------------------------------

                    VERSION_STRING = "dev1+rev%s"
                    GIT_TAG_NAME = "master"
                    GIT_COMMITS_SINCE_TAG = 1
                    GIT_COMMIT_ID = "%s"
                    MODIFIED_SINCE_COMMIT = False
                    IS_DEV_VERSION = True
                    IS_STABLE_VERSION = False
                """ % (commit_id[0:7], commit_id[0:7])
            main.create_version_file(git_directory=git.dir,
                                     output_file=out_file,
                                     lang="python")
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #15
0
    def test_tagged_git_with_different_tagname_scheme(self):
        with GitDir() as git, TempFile() as out_file:
            commit_id = git.create_git_commit()
            git.create_git_tag("versionone")
            expected = """
                    # ---------------------------------------------------
                    # This file is autogenerated by git-version.
                    # DO NOT MODIFY!
                    # ---------------------------------------------------

                    VERSION_STRING = "versionone"
                    GIT_TAG_NAME = "versionone"
                    GIT_COMMITS_SINCE_TAG = 0
                    GIT_COMMIT_ID = "%s"
                    MODIFIED_SINCE_COMMIT = False
                    IS_DEV_VERSION = False
                """ % commit_id[0:7]
            main.create_version_file(git_directory=git.dir,
                                     output_file=out_file,
                                     lang="python")
            self.assertCodeEqual(expected, self.read_file(out_file))
Example #16
0
 def test_empty(self):
     with GitDir() as dir:
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("HEAD", 0, "0", False, False),
                          version_info)
Example #17
0
 def test_empty_with_tracked_file(self):
     with GitDir() as dir:
         dir.add_tracked_file()
         version_info = versioninforeader.from_git(dir.dir)
         self.assertEqual(VersionInfo("HEAD", 0, "0", False, True),
                          version_info)