diff options
author | Konrad Weihmann <kweihmann@outlook.com> | 2020-07-10 18:41:02 +0200 |
---|---|---|
committer | Sebastian Thiel <sebastian.thiel@icloud.com> | 2020-07-12 17:13:10 +0800 |
commit | 5453888091a86472e024753962a7510410171cbc (patch) | |
tree | e882bf4c02439e70fcb5938c1484216d04430ef4 /git/test/test_base.py | |
parent | 9b7839e6b55953ddac7e8f13b2f9e2fa2dea528b (diff) | |
download | gitpython-5453888091a86472e024753962a7510410171cbc.tar.gz |
tests: move to root dir
This should ensure that tests are NOT packaged into
release package by setuptools, as tests are development
only
+ fixtures after moving
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Diffstat (limited to 'git/test/test_base.py')
-rw-r--r-- | git/test/test_base.py | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/git/test/test_base.py b/git/test/test_base.py deleted file mode 100644 index 9da7c471..00000000 --- a/git/test/test_base.py +++ /dev/null @@ -1,149 +0,0 @@ -# -*- coding: utf-8 -*- -# test_base.py -# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors -# -# This module is part of GitPython and is released under -# the BSD License: http://www.opensource.org/licenses/bsd-license.php -import os -import sys -import tempfile -from unittest import SkipTest, skipIf - -from git import ( - Blob, - Tree, - Commit, - TagObject -) -from git.compat import is_win -from git.objects.util import get_object_type_by_name -from git.test.lib import ( - TestBase, - with_rw_repo, - with_rw_and_rw_remote_repo -) -from git.util import hex_to_bin - -import git.objects.base as base -import os.path as osp - - -class TestBase(TestBase): - - def tearDown(self): - import gc - gc.collect() - - type_tuples = (("blob", "8741fc1d09d61f02ffd8cded15ff603eff1ec070", "blob.py"), - ("tree", "3a6a5e3eeed3723c09f1ef0399f81ed6b8d82e79", "directory"), - ("commit", "4251bd59fb8e11e40c40548cba38180a9536118c", None), - ("tag", "e56a60e8e9cd333cfba0140a77cd12b0d9398f10", None)) - - def test_base_object(self): - # test interface of base object classes - types = (Blob, Tree, Commit, TagObject) - self.assertEqual(len(types), len(self.type_tuples)) - - s = set() - num_objs = 0 - num_index_objs = 0 - for obj_type, (typename, hexsha, path) in zip(types, self.type_tuples): - binsha = hex_to_bin(hexsha) - item = None - if path is None: - item = obj_type(self.rorepo, binsha) - else: - item = obj_type(self.rorepo, binsha, 0, path) - # END handle index objects - num_objs += 1 - self.assertEqual(item.hexsha, hexsha) - self.assertEqual(item.type, typename) - assert item.size - self.assertEqual(item, item) - self.assertNotEqual(not item, item) - self.assertEqual(str(item), item.hexsha) - assert repr(item) - s.add(item) - - if isinstance(item, base.IndexObject): - num_index_objs += 1 - if hasattr(item, 'path'): # never runs here - assert not item.path.startswith("/") # must be relative - assert isinstance(item.mode, int) - # END index object check - - # read from stream - data_stream = item.data_stream - data = data_stream.read() - assert data - - tmpfilename = tempfile.mktemp(suffix='test-stream') - with open(tmpfilename, 'wb+') as tmpfile: - self.assertEqual(item, item.stream_data(tmpfile)) - tmpfile.seek(0) - self.assertEqual(tmpfile.read(), data) - os.remove(tmpfilename) - # END for each object type to create - - # each has a unique sha - self.assertEqual(len(s), num_objs) - self.assertEqual(len(s | s), num_objs) - self.assertEqual(num_index_objs, 2) - - def test_get_object_type_by_name(self): - for tname in base.Object.TYPES: - assert base.Object in get_object_type_by_name(tname).mro() - # END for each known type - - self.assertRaises(ValueError, get_object_type_by_name, b"doesntexist") - - def test_object_resolution(self): - # objects must be resolved to shas so they compare equal - self.assertEqual(self.rorepo.head.reference.object, self.rorepo.active_branch.object) - - @with_rw_repo('HEAD', bare=True) - def test_with_bare_rw_repo(self, bare_rw_repo): - assert bare_rw_repo.config_reader("repository").getboolean("core", "bare") - assert osp.isfile(osp.join(bare_rw_repo.git_dir, 'HEAD')) - - @with_rw_repo('0.1.6') - def test_with_rw_repo(self, rw_repo): - assert not rw_repo.config_reader("repository").getboolean("core", "bare") - assert osp.isdir(osp.join(rw_repo.working_tree_dir, 'lib')) - - #@skipIf(HIDE_WINDOWS_FREEZE_ERRORS, "FIXME: Freezes! sometimes...") - @with_rw_and_rw_remote_repo('0.1.6') - def test_with_rw_remote_and_rw_repo(self, rw_repo, rw_remote_repo): - assert not rw_repo.config_reader("repository").getboolean("core", "bare") - assert rw_remote_repo.config_reader("repository").getboolean("core", "bare") - assert osp.isdir(osp.join(rw_repo.working_tree_dir, 'lib')) - - @skipIf(sys.version_info < (3,) and is_win, - "Unicode woes, see https://github.com/gitpython-developers/GitPython/pull/519") - @with_rw_repo('0.1.6') - def test_add_unicode(self, rw_repo): - filename = "שלום.txt" - - file_path = osp.join(rw_repo.working_dir, filename) - - # verify first that we could encode file name in this environment - try: - file_path.encode(sys.getfilesystemencoding()) - except UnicodeEncodeError as e: - raise SkipTest("Environment doesn't support unicode filenames") from e - - with open(file_path, "wb") as fp: - fp.write(b'something') - - if is_win: - # on windows, there is no way this works, see images on - # https://github.com/gitpython-developers/GitPython/issues/147#issuecomment-68881897 - # Therefore, it must be added using the python implementation - rw_repo.index.add([file_path]) - # However, when the test winds down, rmtree fails to delete this file, which is recognized - # as ??? only. - else: - # on posix, we can just add unicode files without problems - rw_repo.git.add(rw_repo.working_dir) - # end - rw_repo.index.commit('message') |