summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test-requirements.txt1
-rw-r--r--test/test_installation.py29
2 files changed, 30 insertions, 0 deletions
diff --git a/test-requirements.txt b/test-requirements.txt
index 574c21f0..a85eb683 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,3 +2,4 @@ ddt>=1.1.1
coverage
flake8
tox
+virtualenv
diff --git a/test/test_installation.py b/test/test_installation.py
new file mode 100644
index 00000000..db14bc84
--- /dev/null
+++ b/test/test_installation.py
@@ -0,0 +1,29 @@
+# This module is part of GitPython and is released under
+# the BSD License: http://www.opensource.org/licenses/bsd-license.php
+
+import os
+import subprocess
+from test.lib import TestBase
+from test.lib.helper import with_rw_directory
+
+
+class TestInstallation(TestBase):
+ def setUp_venv(self, rw_dir):
+ self.venv = rw_dir
+ subprocess.run(['virtualenv', self.venv], stdout=subprocess.PIPE)
+ self.python = os.path.join(self.venv, 'bin/python3')
+ self.pip = os.path.join(self.venv, 'bin/pip3')
+ self.sources = os.path.join(self.venv, "src")
+ self.cwd = os.path.dirname(os.path.dirname(__file__))
+ os.symlink(self.cwd, self.sources, target_is_directory=True)
+
+ @with_rw_directory
+ def test_installation(self, rw_dir):
+ self.setUp_venv(rw_dir)
+ result = subprocess.run([self.pip, 'install', '-r', 'requirements.txt'],
+ stdout=subprocess.PIPE, cwd=self.sources)
+ self.assertEqual(0, result.returncode, msg=result.stderr or result.stdout or "Can't install requirements")
+ result = subprocess.run([self.python, 'setup.py', 'install'], stdout=subprocess.PIPE, cwd=self.sources)
+ self.assertEqual(0, result.returncode, msg=result.stderr or result.stdout or "Can't build - setup.py failed")
+ result = subprocess.run([self.python, '-c', 'import git'], stdout=subprocess.PIPE, cwd=self.sources)
+ self.assertEqual(0, result.returncode, msg=result.stderr or result.stdout or "Selftest failed")