[Zope-CVS] SVN: zpkgtools/trunk/zpkgtools/ remove repository: URL
scheme; it just was not useful after all
Fred L. Drake, Jr.
fdrake at gmail.com
Thu Aug 11 16:26:47 EDT 2005
Log message for revision 37877:
remove repository: URL scheme; it just was not useful after all
Changed:
U zpkgtools/trunk/zpkgtools/cvsloader.py
U zpkgtools/trunk/zpkgtools/locationmap.py
U zpkgtools/trunk/zpkgtools/tests/test_cvsloader.py
U zpkgtools/trunk/zpkgtools/tests/test_loader.py
U zpkgtools/trunk/zpkgtools/tests/test_locationmap.py
U zpkgtools/trunk/zpkgtools/tests/test_svnloader.py
-=-
Modified: zpkgtools/trunk/zpkgtools/cvsloader.py
===================================================================
--- zpkgtools/trunk/zpkgtools/cvsloader.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/cvsloader.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -47,20 +47,10 @@
""",
re.IGNORECASE | re.VERBOSE).match
-_repository_url_match = re.compile(
- """
- repository:(?P<path>[^:]*)
- (:(?P<tag>[^:]*))?$
- """,
- re.IGNORECASE | re.VERBOSE).match
-
def parse(cvsurl):
m = _cvs_url_match(cvsurl)
if m is None:
- m = _repository_url_match(cvsurl)
- if m is None:
- raise ValueError("not a valid CVS url: %r" % cvsurl)
- return RepositoryUrl(m.group("path"), m.group("tag"))
+ raise ValueError("not a valid CVS url: %r" % cvsurl)
host = m.group("host")
cvsroot = "/" + m.group("cvsroot")
path = m.group("path")
@@ -256,44 +246,9 @@
return url
def join(self, relurl):
- assert isinstance(relurl, RepositoryUrl)
- cvsurl = copy.copy(self)
- if relurl.path:
- path = posixpath.normpath(relurl.path)
- if path[:1] == "/":
- newpath = path[1:]
- else:
- newpath = posixpath.join(cvsurl.path, relurl.path)
- cvsurl.path = posixpath.normpath(newpath)
- if relurl.tag:
- cvsurl.tag = relurl.tag
- return cvsurl
+ raise TypeError("this makes no sense!")
-class RepositoryUrl(UrlBase):
- """Parsed representation of a ``repository:`` URL.
-
- :ivar path: Path the the identified resource. This may be either
- an absolute path (starting with ``/``) or a relative path. The
- path is written using POSIX notation.
- :type path: `str` or `None`
-
- :ivar tag: Tag that should be referenced in the repository.
- :type tag: `str` or `None`
-
- """
-
- def __init__(self, path, tag=None):
- self.path = path or None
- self.tag = tag or None
-
- def getUrl(self):
- url = "repository:" + (self.path or '')
- if self.tag:
- url = "%s:%s" % (url, self.tag)
- return url
-
-
class CvsLoader:
def load(self, cvsurl, workdir):
Modified: zpkgtools/trunk/zpkgtools/locationmap.py
===================================================================
--- zpkgtools/trunk/zpkgtools/locationmap.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/locationmap.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -132,8 +132,11 @@
parts[2] = posixpath.join("", suffix)
return urlparse.urlunsplit(parts)
else:
- pathpart = cvsloader.RepositoryUrl(suffix)
- parsed = parsed.join(pathpart)
+ if isinstance(parsed, cvsloader.CvsUrl):
+ parsed.path = posixpath.join(parsed.path, suffix)
+ else:
+ pathpart = RelativePath(suffix)
+ parsed = parsed.join(pathpart)
return get_template_url(parsed)
return None
@@ -141,7 +144,12 @@
"""Return true iff we already have a wildcard for key."""
return key in self._wildcards
+class RelativePath:
+ def __init__(self, path):
+ self.tag = None
+ self.path = path
+
class MapLoader:
def __init__(self, base, filename, mapping):
@@ -166,15 +174,6 @@
# conventional URL
if self.cvsbase is None:
url = urlparse.urljoin(self.base, url)
- else:
- if isinstance(cvsurl, cvsloader.RepositoryUrl):
- if self.cvsbase is None:
- raise MapLoadingError(
- "repository: URLs are not supported"
- " without a cvs: or Subversion base URL",
- self.filename)
- cvsurl = self.cvsbase.join(cvsurl)
- url = get_template_url(cvsurl)
if resource in self.local_entries:
_logger.warn(
Modified: zpkgtools/trunk/zpkgtools/tests/test_cvsloader.py
===================================================================
--- zpkgtools/trunk/zpkgtools/tests/test_cvsloader.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/tests/test_cvsloader.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -65,103 +65,6 @@
self.assertEqual(cvsurl.getUrl(),
"cvs://myuser:pw@cvs.example.org/cvsroot:module:TAG")
- def test_repository_getUrl(self):
- repo = cvsloader.RepositoryUrl("/absolute/path")
- self.assertEqual(repo.getUrl(), "repository:/absolute/path")
- repo.tag = "TAG"
- self.assertEqual(repo.getUrl(), "repository:/absolute/path:TAG")
- repo.path = None
- self.assertEqual(repo.getUrl(), "repository::TAG")
- repo.tag = None
- self.assertEqual(repo.getUrl(), "repository:")
-
- def test_repository_join_absolute_path(self):
- repo = cvsloader.RepositoryUrl("/absolute/path")
- cvsurl = cvsloader.CvsUrl("", "cvs.example.org", "/cvsroot",
- "project/module")
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "absolute/path")
- self.assert_(not result.tag)
-
- cvsurl.tag = "TAG"
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "absolute/path")
- self.assertEqual(result.tag, "TAG")
-
- repo.tag = "FOO"
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "absolute/path")
- self.assertEqual(result.tag, "FOO")
-
- cvsurl.tag = None
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "absolute/path")
- self.assertEqual(result.tag, "FOO")
-
- def test_repository_join_relative_path(self):
- repo = cvsloader.RepositoryUrl("relative/path")
- cvsurl = cvsloader.CvsUrl("", "cvs.example.org", "/cvsroot",
- "project/module")
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "project/module/relative/path")
- self.assert_(not result.tag)
-
- cvsurl.tag = "TAG"
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "project/module/relative/path")
- self.assertEqual(result.tag, "TAG")
-
- repo.tag = "FOO"
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "project/module/relative/path")
- self.assertEqual(result.tag, "FOO")
-
- cvsurl.tag = None
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "project/module/relative/path")
- self.assertEqual(result.tag, "FOO")
-
- def test_repository_join_without_path(self):
- repo = cvsloader.RepositoryUrl(None)
- cvsurl = cvsloader.CvsUrl("", "cvs.example.org", "/cvsroot",
- "project/module")
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "project/module")
- self.assert_(not result.tag)
-
- cvsurl.tag = "TAG"
- result = cvsurl.join(repo)
- self.assert_(not result.type)
- self.assertEqual(result.host, "cvs.example.org")
- self.assertEqual(result.cvsroot, "/cvsroot")
- self.assertEqual(result.path, "project/module")
- self.assertEqual(result.tag, "TAG")
-
- repo.tag = "FOO"
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "project/module")
- self.assertEqual(result.tag, "FOO")
-
- cvsurl.tag = None
- result = cvsurl.join(repo)
- self.assertEqual(result.path, "project/module")
- self.assertEqual(result.tag, "FOO")
-
def test_parse_cvs(self):
def check(url,
type, username, password, host, cvsroot, path, tag):
@@ -212,40 +115,8 @@
self.assertRaises(ValueError,
cvsloader.parse, "cvs://")
- def test_parse_repository(self):
- def check(url, path, tag):
- cvsurl = cvsloader.parse(url)
- self.assert_(isinstance(cvsurl, cvsloader.RepositoryUrl))
- self.assertEqual(cvsurl.path, path)
- self.assertEqual(cvsurl.tag, tag)
-
- check("repository:path/to/some/file.txt",
- "path/to/some/file.txt", None)
-
- check("repository:/some/path/",
- "/some/path/", None)
-
- check("repository:path/to/some/file.txt:TAG",
- "path/to/some/file.txt", "TAG")
-
- check("repository:/some/path/:TAG",
- "/some/path/", "TAG")
-
- check("repository::TAG",
- None, "TAG")
-
- check("repository::",
- None, None)
-
- check("repository:",
- None, None)
-
- # Too many parts:
- self.assertRaises(ValueError,
- cvsloader.parse, "repository:path:TAG:junk")
-
def test_parse_invalid(self):
- # Scheme isn't "cvs" or "repository":
+ # Scheme isn't "cvs":
self.assertRaises(ValueError,
cvsloader.parse, "http://www.example.org/")
Modified: zpkgtools/trunk/zpkgtools/tests/test_loader.py
===================================================================
--- zpkgtools/trunk/zpkgtools/tests/test_loader.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/tests/test_loader.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -52,13 +52,6 @@
# cvs:
eq(convert("cvs://cvs.example.org/cvsroot:module"),
"cvs://cvs.example.org/cvsroot:module:TAG")
- # repository:
- eq(convert("repository::"),
- "repository::TAG")
- eq(convert("repository:path"),
- "repository:path:TAG")
- eq(convert("repository:/some/path/:"),
- "repository:/some/path/:TAG")
# Subversion:
self.check_changing_subversion_urls("svn", "svn.example.org")
self.check_changing_subversion_urls("svn+ssh", "svn.example.org")
@@ -93,10 +86,6 @@
"file:///path/to/somewhere.py")
eq(convert("cvs://cvs.example.org/cvsroot:path/:tag"),
"cvs://cvs.example.org/cvsroot:path/:tag")
- eq(convert("repository:path/:tag"),
- "repository:path/:tag")
- eq(convert("repository:/some/path/:tag"),
- "repository:/some/path/:tag")
eq(convert("svn://example.org/path/to/svnroot/tags/foo/file.txt"),
"svn://example.org/path/to/svnroot/tags/foo/file.txt")
eq(convert("svn://example.org/path/to/svnroot/branches/foo/file.txt"),
Modified: zpkgtools/trunk/zpkgtools/tests/test_locationmap.py
===================================================================
--- zpkgtools/trunk/zpkgtools/tests/test_locationmap.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/tests/test_locationmap.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -42,17 +42,6 @@
""" % (PREFIX, PREFIX, PREFIX, PREFIX)
-SAMPLE_INPUT_WITH_REPOSITORY_URLS = """
- # This is a comment.
-
- zope repository:/Zope3/src/zope
- zope.app repository:/Zope3/src/zope/app
- ZConfig repository:/Packages/ZConfig
- NotReal repository:something/relative:TAG
- file:README.txt http://www.example.com/README.txt
-
- """
-
EXPECTED_OUTPUT = {
"zope": PREFIX + "Zope3/src/zope",
"zope.app": PREFIX + "Zope3/src/zope/app",
@@ -91,13 +80,6 @@
d["ZConfig"] = EXPECTED_OUTPUT["ZConfig"]
self.check_sample_results(d)
- def test_load_with_cvs_base(self):
- sio = StringIO(SAMPLE_INPUT_WITH_REPOSITORY_URLS)
- locationmap.load(
- sio, "cvs://cvs.example.org:ext/cvsroot:module",
- self.mapping)
- self.check_sample_results(self.mapping)
-
def test_fromPathOrUrl_with_url(self):
dirname = os.path.dirname(os.path.abspath(__file__))
dirname = os.path.join(dirname, "input")
@@ -136,9 +118,6 @@
self.assertEqual(d, EXPECTED_OUTPUT)
self.failIf("NotThere" in mapping)
- def test_repository_without_cvsbase(self):
- self.check_error("package.module repository:yeah/right")
-
def test_malformed_lines(self):
self.check_error("package-without-location")
self.check_error("package location junk")
Modified: zpkgtools/trunk/zpkgtools/tests/test_svnloader.py
===================================================================
--- zpkgtools/trunk/zpkgtools/tests/test_svnloader.py 2005-08-11 20:26:33 UTC (rev 37876)
+++ zpkgtools/trunk/zpkgtools/tests/test_svnloader.py 2005-08-11 20:26:45 UTC (rev 37877)
@@ -161,69 +161,6 @@
eq(split("/tags/foo/file.txt"), ("", "file.txt", "foo"))
eq(split("/tags/*/file.txt"), ("", "file.txt", None))
- def test_join_with_path(self):
- URL = self.mkurl("/tags/*/path")
- repo = cvsloader.parse("repository:more/path")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- self.assertEqual(newurl.tag, None)
- self.assertEqual(newurl.prefix, self.mkurl(""))
- self.assertEqual(newurl.tail, "path/more/path")
-
- def test_join_with_path_and_new_tag(self):
- eq = self.assertEqual
-
- URL = self.mkurl("/tags/*/path")
- repo = cvsloader.parse("repository:more/path:TAG")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- eq(newurl.tag, "TAG")
- eq(newurl.prefix, self.mkurl(""))
- eq(newurl.tail, "path/more/path")
- eq(newurl.getUrl(), self.mkurl("/tags/TAG/path/more/path"))
-
- repo = cvsloader.parse("repository:more/path:HEAD")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- eq(newurl.tag, "HEAD")
- eq(newurl.prefix, self.mkurl(""))
- eq(newurl.tail, "path/more/path")
- eq(newurl.getUrl(), self.mkurl("/trunk/path/more/path"))
-
- def test_join_with_just_new_tag(self):
- eq = self.assertEqual
- svnroot = self.mkurl("")
-
- # join with a changed tag:
- URL = self.mkurl("/tags/*/file.txt")
- repo = cvsloader.parse("repository::FOO")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- eq(newurl.tag, "FOO")
- eq(newurl.prefix, svnroot)
- eq(newurl.tail, "file.txt")
- eq(newurl.getUrl(), self.mkurl("/tags/FOO/file.txt"))
-
- # join, changing the tag to the HEAD:
- URL = self.mkurl("/tags/*/file.txt")
- repo = cvsloader.parse("repository::HEAD")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- eq(newurl.tag, "HEAD")
- eq(newurl.prefix, svnroot)
- eq(newurl.tail, "file.txt")
- eq(newurl.getUrl(), self.mkurl("/trunk/file.txt"))
-
- # join, changing the tag from the HEAD:
- URL = self.mkurl("/trunk/file.txt")
- repo = cvsloader.parse("repository::FOO")
- svnurl = svnloader.parse(URL)
- newurl = svnurl.join(repo)
- eq(newurl.tag, "FOO")
- eq(newurl.prefix, svnroot)
- eq(newurl.tail, "file.txt")
- eq(newurl.getUrl(), self.mkurl("/tags/FOO/file.txt"))
-
def test_is_subversion_url(self):
note = " (repo in %s)" % self.SVNROOT
def check(path):
More information about the Zope-CVS
mailing list