tests: unify fixture() helper with Path constant

Change-Id: I63751042391f5cc3e06af7067bc83d67bd0716dc
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/569441
Tested-by: Mike Frysinger <vapier@google.com>
Commit-Queue: Mike Frysinger <vapier@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
diff --git a/git_config.py b/git_config.py
index c58edab..e80a032 100644
--- a/git_config.py
+++ b/git_config.py
@@ -111,7 +111,7 @@
         return cls(configfile=os.path.join(gitdir, "config"), defaults=defaults)
 
     def __init__(self, configfile, defaults=None, jsonFile=None):
-        self.file = configfile
+        self.file = str(configfile)
         self.defaults = defaults
         self._cache_dict = None
         self._section_dict = None
diff --git a/tests/test_color.py b/tests/test_color.py
index 923f7e3..8b75d21 100644
--- a/tests/test_color.py
+++ b/tests/test_color.py
@@ -14,23 +14,17 @@
 
 """Unittests for the color.py module."""
 
-import os
-
 import pytest
+import utils_for_test
 
 import color
 import git_config
 
 
-def fixture(*paths: str) -> str:
-    """Return a path relative to test/fixtures."""
-    return os.path.join(os.path.dirname(__file__), "fixtures", *paths)
-
-
 @pytest.fixture
 def coloring() -> color.Coloring:
     """Create a Coloring object for testing."""
-    config_fixture = fixture("test.gitconfig")
+    config_fixture = utils_for_test.FIXTURES_DIR / "test.gitconfig"
     config = git_config.GitConfig(config_fixture)
     color.SetDefaultColoring("true")
     return color.Coloring(config, "status")
diff --git a/tests/test_git_config.py b/tests/test_git_config.py
index 496d971..2ece4c6 100644
--- a/tests/test_git_config.py
+++ b/tests/test_git_config.py
@@ -14,24 +14,19 @@
 
 """Unittests for the git_config.py module."""
 
-import os
 from pathlib import Path
 from typing import Any
 
 import pytest
+import utils_for_test
 
 import git_config
 
 
-def fixture_path(*paths: str) -> str:
-    """Return a path relative to test/fixtures."""
-    return os.path.join(os.path.dirname(__file__), "fixtures", *paths)
-
-
 @pytest.fixture
 def readonly_config() -> git_config.GitConfig:
     """Create a GitConfig object using the test.gitconfig fixture."""
-    config_fixture = fixture_path("test.gitconfig")
+    config_fixture = utils_for_test.FIXTURES_DIR / "test.gitconfig"
     return git_config.GitConfig(config_fixture)
 
 
@@ -63,7 +58,7 @@
 
 def test_get_string_from_missing_file() -> None:
     """Test missing config file."""
-    config_fixture = fixture_path("not.present.gitconfig")
+    config_fixture = utils_for_test.FIXTURES_DIR / "not.present.gitconfig"
     config = git_config.GitConfig(config_fixture)
     val = config.GetString("empty")
     assert val is None
diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py
index 36465e7..89d8b23 100644
--- a/tests/test_wrapper.py
+++ b/tests/test_wrapper.py
@@ -29,11 +29,6 @@
 import wrapper
 
 
-def fixture(*paths):
-    """Return a path relative to tests/fixtures."""
-    return os.path.join(os.path.dirname(__file__), "fixtures", *paths)
-
-
 class RepoWrapperTestCase(unittest.TestCase):
     """TestCase for the wrapper module."""
 
diff --git a/tests/utils_for_test.py b/tests/utils_for_test.py
index f48613f..3f1bed4 100644
--- a/tests/utils_for_test.py
+++ b/tests/utils_for_test.py
@@ -27,6 +27,11 @@
 import git_command
 
 
+THIS_FILE = Path(__file__).resolve()
+THIS_DIR = THIS_FILE.parent
+FIXTURES_DIR = THIS_DIR / "fixtures"
+
+
 def init_git_tree(
     path: Union[str, Path],
     ref_format: Optional[str] = None,