aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/tests/test_svn.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_svn.py')
-rw-r--r--setuptools/tests/test_svn.py85
1 files changed, 51 insertions, 34 deletions
diff --git a/setuptools/tests/test_svn.py b/setuptools/tests/test_svn.py
index 90f213b4..1a41e427 100644
--- a/setuptools/tests/test_svn.py
+++ b/setuptools/tests/test_svn.py
@@ -3,18 +3,20 @@
import os
+import zipfile
import sys
import tempfile
import unittest
import shutil
import stat
-import setuptools.command.egg_info as egg_info
+from setuptools import svn_utils
+
#requires python >= 2.4
from subprocess import call as _call
def _remove_dir(target):
-
+
#on windows this seems to a problem
for dir_path, dirs, files in os.walk(target):
os.chmod(dir_path, stat.S_IWRITE)
@@ -22,50 +24,65 @@ def _remove_dir(target):
os.chmod(os.path.join(dir_path, filename), stat.S_IWRITE)
shutil.rmtree(target)
-class TestEmptySvn(unittest.TestCase):
+class TestSvnVersion(unittest.TestCase):
+ def test_no_svn_found(self):
+ old_path = os.environ['path']
+ os.environ['path'] = ''
+ try:
+ version = svn_utils.SVNEntries.get_svn_tool_version()
+ self.assertEqual(version, '')
+ finally:
+ os.environ['path'] = old_path
+ def test_svn_should_exist(self):
+ version = svn_utils.SVNEntries.get_svn_tool_version()
+ self.assertNotEqual(version, '')
- def setUp(self):
- self.temp_dir = tempfile.mkdtemp()
- self.old_cwd = os.getcwd()
- os.chdir(self.temp_dir)
- #apparently there is a standing bug in python about having
- #to use shell=True in windows to get a path search.
- if _call(['svnadmin', 'create', 'svn'], shell=(sys.platform == 'win32')):
- raise 'Failed to create SVN repository'
- self.svnrepo = os.path.join(self.temp_dir, 'svn')
+class TestSvn_1_7(unittest.TestCase):
- if _call(['svn', 'checkout', 'file:///' + self.svnrepo.replace('\\','/'), 'co']):
- os.chdir(self.old_cwd)
- _remove_dir(self.temp_dir)
- raise 'Failed to checkout SVN repository'
+ def setUp(self):
+ self.temp_dir = tempfile.mkdtemp()
+ zip_file, source, target = [None, None, None]
+ try:
+ zip_file = zipfile.ZipFile(os.path.join('setuptools', 'tests',
+ 'svn17_example.zip'))
+ for files in zip_file.namelist():
+ zip_file.extract(files, self.temp_dir)
+ finally:
+ if zip_file:
+ zip_file.close()
+ del zip_file
- os.chdir(os.path.join(self.temp_dir, 'co'))
+ self.old_cwd = os.getcwd()
+ os.chdir(os.path.join(self.temp_dir, 'svn17_example'))
def tearDown(self):
os.chdir(self.old_cwd)
_remove_dir(self.temp_dir)
- def test_can_get_revision_empty(self):
- """Check that svn revision can be retrieved from an working set on an empty repository."""
- self.assertEquals('0', egg_info._get_svn_revision())
-
- def test_can_get_revision_single_commit(self):
- """Check that svn revision can be retrieved from an working set on an empty repository."""
-
- open('README', 'w').close()
- exitcode = _call(['svn', 'add', 'README'], shell=(sys.platform == 'win32'))
- self.assertEqual(0, exitcode)
-
- exitcode = _call(['svn', 'commit', '-m', '"README added"'], shell=(sys.platform == 'win32'))
- self.assertEqual(0, exitcode)
-
- exitcode = _call(['svn', 'update'], shell=(sys.platform == 'win32'))
- self.assertEqual(0, exitcode)
+ def test_svnentrycmd_is_valid(self):
+ entries = svn_utils.SVNEntries.load_dir('.')
+ self.assertIsInstance(entries, svn_utils.SVNEntriesCMD)
+ self.assertTrue(entries.is_valid())
+
+ def test_svnentrycmd_is_valid(self):
+ entries = svn_utils.SVNEntries.load_dir('.')
+ self.assertIsInstance(entries, svn_utils.SVNEntriesCMD)
+ self.assertTrue(entries.is_valid())
+ self.assertEqual(entries.get_url(),
+ 'file:///C:/development/svn_example/repo1')
+
+ def test_svnentrycmd_enteries(self):
+ entries = svn_utils.SVNEntries.load_dir('.')
+ self.assertIsInstance(entries, svn_utils.SVNEntriesCMD)
+ self.assertEqual(entries.parse_revision(), 3)
+ self.assertEqual(set(entries.get_undeleted_records()),
+ set([u'readme.txt', u'other']))
+ self.assertEqual(set(entries.get_external_dirs('dir-props')),
+ set([u'third_party3', u'third_party2', u'third_party']))
- self.assertEquals('1', egg_info._get_svn_revision())
def test_suite():