summaryrefslogtreecommitdiff
path: root/subversion/bindings/ctypes-python/test/remoterepos.py
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/ctypes-python/test/remoterepos.py')
-rwxr-xr-xsubversion/bindings/ctypes-python/test/remoterepos.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/subversion/bindings/ctypes-python/test/remoterepos.py b/subversion/bindings/ctypes-python/test/remoterepos.py
index 8a5eb10..dadea9e 100755
--- a/subversion/bindings/ctypes-python/test/remoterepos.py
+++ b/subversion/bindings/ctypes-python/test/remoterepos.py
@@ -27,6 +27,13 @@ from csvn.core import *
from urllib import pathname2url
from csvn.repos import LocalRepository, RemoteRepository
from stat import *
+from sys import version_info # For Python version check
+if version_info[0] >= 3:
+ # Python >=3.0
+ from io import StringIO
+else:
+ # Python <3.0
+ from StringIO import StringIO
repos_location = os.path.join(tempfile.gettempdir(), "svn_test_repos")
repos_url = pathname2url(repos_location)
@@ -64,6 +71,15 @@ class RemoteRepositoryTestCase(unittest.TestCase):
if os.path.exists(repos_location):
svn_repos_delete(repos_location, Pool())
+ def svn_dirent_t_assert_equal(self, a, b):
+ """Assert that two svn_dirent_t's are equal, ignoring their 'time'
+ fields."""
+ self.assertEqual(a.kind, b.kind)
+ self.assertEqual(a.size, b.size)
+ self.assertEqual(a.has_props, b.has_props)
+ self.assertEqual(a.created_rev, b.created_rev)
+ self.assertEqual(a.last_author, b.last_author)
+
def test_remote_latest_revnum(self):
self.assertEqual(9, self.repos.latest_revnum())
@@ -77,6 +93,50 @@ class RemoteRepositoryTestCase(unittest.TestCase):
self.assertEqual(svn_node_none,
self.repos.check_path("does_not_compute"))
+ def test_list(self):
+ expected = {
+ 'README.txt':
+ svn_dirent_t(kind=svn_node_file, size=159, has_props=True,
+ created_rev=9, last_author=String('bruce')),
+ 'ANOTHERREADME.txt':
+ svn_dirent_t(kind=svn_node_file, size=66, has_props=False,
+ created_rev=4, last_author=String('clark')) }
+ found = self.repos.list("trunk")
+ self.assertEqual(sorted(found.keys()), sorted(expected.keys()))
+ for path in found:
+ self.svn_dirent_t_assert_equal(found[path], expected[path])
+
+ def test_info(self):
+ e = svn_dirent_t(kind=svn_node_file, size=159, has_props=True,
+ created_rev=9, last_author=String('bruce'))
+ f = self.repos.info("trunk/README.txt")
+ self.svn_dirent_t_assert_equal(f, e)
+
+ def test_proplist(self):
+ expected = { 'Awesome': 'Yes',
+ 'svn:entry:last-author': 'bruce',
+ 'svn:entry:committed-rev': '9' }
+ found = self.repos.proplist("trunk/README.txt")
+ # Check results, ignoring some entry-props
+ del found['svn:entry:committed-date']
+ del found['svn:entry:uuid']
+ self.assertEqual(sorted(found.keys()), sorted(expected.keys()))
+ for pname in found:
+ self.assertEqual(found[pname], expected[pname])
+
+ def test_propget(self):
+ found = self.repos.propget("Awesome", "trunk/README.txt")
+ self.assertEqual(found, "Yes")
+
+ def test_log(self):
+ expected = [ (8, 'clark'),
+ (9, 'bruce') ]
+ for found in self.repos.log(7, 9, ["trunk/README.txt"]):
+ (e_rev, e_author) = expected[0]
+ self.assertEqual(found.revision, e_rev)
+ self.assertEqual(found.author, e_author)
+ expected = expected[1:]
+
def test_revprop_list(self):
# Test argument-free case
props = self.repos.revprop_list()