[Checkins] SVN: Sandbox/adamg/zope.wineggbuilder/trunk/ checkpoint
Adam Groszer
agroszer at gmail.com
Wed Jun 9 02:52:10 EDT 2010
Log message for revision 113299:
checkpoint
Changed:
_U Sandbox/adamg/zope.wineggbuilder/trunk/
_U Sandbox/adamg/zope.wineggbuilder/trunk/src/
A Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/README.txt
U Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/base.py
U Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/build.py
A Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/test.ini
A Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/testing.py
U Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/tests.py
D Sandbox/adamg/zope.wineggbuilder/trunk/test.ini
-=-
Property changes on: Sandbox/adamg/zope.wineggbuilder/trunk
___________________________________________________________________
Added: svn:ignore
+ bin
develop-eggs
parts
.installed.cfg
Property changes on: Sandbox/adamg/zope.wineggbuilder/trunk/src
___________________________________________________________________
Added: svn:ignore
+ zope.wineggbuilder.egg-info
Added: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/README.txt
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/README.txt (rev 0)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/README.txt 2010-06-09 06:52:09 UTC (rev 113299)
@@ -0,0 +1,35 @@
+
+Install mocks:
+
+ >>> from zope.wineggbuilder import base
+ >>> from zope.wineggbuilder import build
+ >>> from zope.wineggbuilder import testing
+
+ >>> oldSVNcommand = base.SVN.commandKlass
+ >>> base.SVN.commandKlass = testing.MockCommand()
+
+ >>> oldCompilerCommand = build.Compiler.commandKlass
+ >>> build.Compiler.commandKlass = testing.MockCommand()
+
+ >>> oldPYPI = build.Package.pypiKlass
+ >>> build.Package.pypiKlass = testing.MockPYPI()
+
+ >>> oldURLgetter = build.Package.urlGetterKlass
+ >>> build.Package.urlGetterKlass = testing.MockURLGetter()
+
+
+ >>> import os.path
+ >>> testininame = os.path.join(os.path.dirname(build.__file__), 'test.ini')
+ >>> build.main([testininame, '-v'])
+
+
+ >>> from pprint import pprint
+ >>> pprint(testing.MOCKLOG)
+
+
+Remove mocks:
+
+ >>> base.SVN.commandKlass = oldSVNcommand
+ >>> build.Compiler.commandKlass = oldCompilerCommand
+ >>> build.Package.pypiKlass = oldPYPI
+ >>> build.Package.urlGetterKlass = oldURLgetter
Property changes on: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/README.txt
___________________________________________________________________
Added: svn:keywords
+ Date Author Id Revision
Added: svn:eol-style
+ native
Modified: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/base.py
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/base.py 2010-06-08 19:10:13 UTC (rev 113298)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/base.py 2010-06-09 06:52:09 UTC (rev 113299)
@@ -10,6 +10,7 @@
import optparse
import os
import pkg_resources
+import shutil
import subprocess
import sys
import urllib2
@@ -131,7 +132,9 @@
pass
class URLGetter(object):
- pass
+ def get(self, url):
+ req = urllib2.Request(url)
+ return urllib2.urlopen(req).read()
def getInput(prompt, default, useDefaults):
if useDefaults:
Modified: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/build.py
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/build.py 2010-06-08 19:10:13 UTC (rev 113298)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/build.py 2010-06-09 06:52:09 UTC (rev 113299)
@@ -10,11 +10,17 @@
import optparse
import os
import pkg_resources
+import re
import subprocess
import sys
+import tempfile
import urllib2
import urlparse
+from collections import defaultdict
+import BeautifulSoup
+import ConfigParser
+
from zope.wineggbuilder import base
LOGGER = base.LOGGER
@@ -27,6 +33,9 @@
class Compiler(object):
+ #hook to enable testing
+ commandKlass = base.Command
+
def __init__(self, name, config, options):
self.name = name
self.options = options
@@ -36,15 +45,51 @@
self.command = config.get(self.name, 'command')
self.fileEnding = config.get(self.name, 'fileEnding')
+ def checkBuild(self, package, version, files):
+ """check whether build is required"""
+ needBuild = True
+ fe = self.fileEnding.lower()
+ for file in files:
+ if file.lower().endswith(fe):
+ needBuild = False
+ break
+ return needBuild
+
+ def build(self, package, version, files, sourceFolder):
+ if self.checkBuild(package, version, files):
+ #we really need to build
+ #we have the source in sourceFolder
+ cmd = self.commandKlass(cwd=sourceFolder, exitOnError=False)
+
+ if len(self.command.splitlines()) > 1:
+ #in case there are more lines we got to do .bat file
+ tmpfile = tempfile.NamedTemporaryFile(suffix='.bat')
+ command = tmpfile.name
+ tmpfile.write(self.command)
+ tmpfile.file.flush()
+ else:
+ command = self.command
+
+ cmd.do(command)
+
+ pass
+
class Package(object):
+ #hook to enable testing
+ pypiKlass = base.PYPI
+ urlGetterKlass = base.URLGetter
+ svnKlass = base.SVN
+
def __init__(self, name, config, options, compilers):
self.name = name
self.options = options
self.read(config, compilers)
- def read(self, config):
+ def read(self, config, compilers):
self.pypiurl = config.get(self.name, 'pypiurl')
self.tagurl = config.get(self.name, 'tagurl')
+ if self.tagurl.endswith('/'):
+ self.tagurl = self.tagurl[:-1]
self.minVersion = getOption(config, self.name, 'minVersion')
self.maxVersion = getOption(config, self.name, 'maxVersion')
self.targets = []
@@ -52,12 +97,55 @@
self.targets.append(compilers[target])
def build(self):
- pass
#1 get versions from pypi
- #2 get file list of the version
- #3 check file endings
- #4 build missing
+ pypi = self.pypiKlass()
+ versions = pypi.package_releases(self.name, show_hidden=True)
+ #1.1 filter versions according to minVersion and maxVersion:
+
+
+ #2 get file list of each version
+ verFiles = defaultdict(list)
+ simple = self.urlGetterKlass().get(self.pypiurl)
+ soup = BeautifulSoup.BeautifulSoup(simple)
+ VERSION = re.compile(self.name+r'-(\d+\.\d+(\.\d+){0,2})')
+ for tag in soup('a'):
+ cntnt = str(tag.contents[0]) # str: re does not like non-strings
+
+ m = VERSION.search(cntnt)
+ if m:
+ version = m.group(1)
+ if version not in versions:
+ continue
+ verFiles[version].append(cntnt)
+
+ svn = self.svnKlass()
+ for version in versions:
+ #3 check whether we need a build
+ needBuild = False
+ for target in self.targets:
+ needBuild = target.checkBuild(
+ self, version, verFiles.get(version, []))
+ if needBuild:
+ break
+
+ if needBuild:
+ tmpfolder = tempfile.mkdtemp('wineggbuilder')
+ try:
+ #3.1 svn co tag
+ svnurl = "%s/%s" % (self.tagurl, version)
+ svn.co(svnurl, tmpfolder)
+
+ #3.2 build missing
+ for target in self.targets:
+ needBuild = target.build(
+ self, version, verFiles.get(version, []), tmpfolder)
+ finally:
+ #3.3 del temp folder
+ base.rmtree(tmpfolder)
+
+
+
class Builder(object):
def __init__(self, configFileName, options):
config = ConfigParser.RawConfigParser()
@@ -71,6 +159,7 @@
for pkg in config.get(base.BUILD_SECTION, 'packages').split():
self.packages.append(Package(pkg, config, options, self.compilers))
+ def runCLI(self):
for pkg in self.packages:
pkg.build()
@@ -90,11 +179,11 @@
# Parse arguments
options, args = base.parser.parse_args(args)
- logger.setLevel(logging.INFO)
+ LOGGER.setLevel(logging.INFO)
if options.verbose:
- logger.setLevel(logging.DEBUG)
+ LOGGER.setLevel(logging.DEBUG)
if options.quiet:
- logger.setLevel(logging.FATAL)
+ LOGGER.setLevel(logging.FATAL)
if len(args) == 0:
print "No configuration was specified."
@@ -107,11 +196,11 @@
try:
builder.runCLI()
except KeyboardInterrupt:
- logger.info("Quitting")
+ LOGGER.info("Quitting")
sys.exit(0)
# Remove the handler again.
- logger.removeHandler(handler)
+ LOGGER.removeHandler(handler)
# Exit cleanly.
- sys.exit(0)
+ #sys.exit(0)
Added: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/test.ini
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/test.ini (rev 0)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/test.ini 2010-06-09 06:52:09 UTC (rev 113299)
@@ -0,0 +1,31 @@
+[build]
+compilers = py24_32 py25_32 py26_32 py26_64
+packages = zope.proxy
+
+[py24_32]
+command = set PATH=%PATH%;c:\mingw32\bin
+ c:\Python24\python setup.py build_ext --compiler mingw32 bdist_egg upload
+fileEnding = py2.4-win32.egg
+
+[py25_32]
+command = set PATH=%PATH%;c:\mingw32\bin
+ c:\Python25\python setup.py build_ext --compiler mingw32 bdist_egg upload
+fileEnding = py2.5-win32.egg
+
+[py26_32]
+command = call c:\program files\msvc\msvcvars.bat
+ c:\Python26\python setup.py build_ext --compiler msvc bdist_egg upload
+fileEnding = py2.6-win32.egg
+
+[py26_64]
+command = call c:\program files\msvc\msvcvars.bat
+ c:\Python26_64\python setup.py build_ext --compiler msvc bdist_egg upload
+fileEnding = py2.6-win-amd64.egg
+
+
+[zope.proxy]
+pypiurl = http://pypi.python.org/simple/zope.proxy/
+tagurl = svn://svn.zope.org/repos/main/zope.proxy/tags/
+minVersion =
+maxVersion =
+targets = py25_32 py26_32
\ No newline at end of file
Property changes on: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/test.ini
___________________________________________________________________
Added: svn:keywords
+ Date Author Id Revision
Added: svn:eol-style
+ native
Added: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/testing.py
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/testing.py (rev 0)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/testing.py 2010-06-09 06:52:09 UTC (rev 113299)
@@ -0,0 +1,161 @@
+"""tests
+
+$Id$
+"""
+__docformat__ = 'ReStructuredText'
+
+import unittest
+import doctest
+import pprint
+
+MOCKLOG = []
+
+#format is [(expected cmd, result)]
+CommandIO = [
+#svn co --non-interactive svn://svn.zope.org/repos/main/zope.proxy/tags/3.6.0 /tmp/tmpgqt2dHwineggbuilder
+"""A /tmp/tmpgqt2dHwineggbuilder/bootstrap.py
+A /tmp/tmpgqt2dHwineggbuilder/buildout.cfg
+A /tmp/tmpgqt2dHwineggbuilder/CHANGES.txt
+A /tmp/tmpgqt2dHwineggbuilder/setup.py
+A /tmp/tmpgqt2dHwineggbuilder/src
+A /tmp/tmpgqt2dHwineggbuilder/src/zope
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/_zope_proxy_proxy.c
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/tests
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/tests/__init__.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/tests/test_proxy.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/tests/test_decorator.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/__init__.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/proxy.h
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/decorator.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/proxy/interfaces.py
+A /tmp/tmpgqt2dHwineggbuilder/src/zope/__init__.py
+A /tmp/tmpgqt2dHwineggbuilder/README.txt
+ U /tmp/tmpgqt2dHwineggbuilder
+Checked out revision 113298.""",
+#svn co --non-interactive svn://svn.zope.org/repos/main/zope.proxy/tags/3.4.1 /tmp/tmpKNdQxlwineggbuilder
+"""A /tmp/tmpKNdQxlwineggbuilder/bootstrap.py
+A /tmp/tmpKNdQxlwineggbuilder/buildout.cfg
+A /tmp/tmpKNdQxlwineggbuilder/CHANGES.txt
+A /tmp/tmpKNdQxlwineggbuilder/test.py
+A /tmp/tmpKNdQxlwineggbuilder/setup.py
+A /tmp/tmpKNdQxlwineggbuilder/src
+A /tmp/tmpKNdQxlwineggbuilder/src/zope
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/_zope_proxy_proxy.c
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/tests
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/tests/__init__.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/tests/test_proxy.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/tests/test_decorator.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/DEPENDENCIES.cfg
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/__init__.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/proxy.h
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/decorator.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/interfaces.py
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/proxy/SETUP.cfg
+A /tmp/tmpKNdQxlwineggbuilder/src/zope/__init__.py
+A /tmp/tmpKNdQxlwineggbuilder/README.txt
+ U /tmp/tmpKNdQxlwineggbuilder
+Checked out revision 113298.""",
+'svn co',
+'svn co',
+'bat',
+'bat',
+'bat',
+'bat',
+]
+
+class MockCommand(object):
+ def __init__(self):
+ pass
+
+ def __call__(self, cwd=None, captureOutput=True, exitOnError=True):
+ self.cwd = cwd
+ self.captureOutput = captureOutput
+ self.exitOnError = exitOnError
+ return self
+
+ def do(self, cmd):
+ global MOCKLOG
+ MOCKLOG.append('cmd: %s in %s' % (cmd, self.cwd))
+
+ global CommandIO
+ next = CommandIO.pop(0)
+
+ if isinstance(next, Exception):
+ raise next
+
+ return next
+
+PYPI_RELEASES = {
+ 'zope.proxy': ['3.6.0', '3.5.0', '3.4.2', '3.4.1', '3.4.0', '3.3.0'],
+}
+
+class MockPYPI(object):
+ def __init__(self):
+ pass
+
+ def __call__(self):
+ return self
+
+ #def list_packages(self):
+ # pass
+
+ def package_releases(self, package_name, show_hidden=False):
+ global MOCKLOG
+ MOCKLOG.append('package_releases: %s' % package_name)
+
+ return PYPI_RELEASES[package_name]
+
+ #def release_urls(self, package_name, version):
+ # pass
+ #
+ #def release_data(self, package_name, version):
+ # pass
+ #
+ #def search(self, spec, operator=None):
+ # pass
+ #
+ #def changelog(self, since):
+ # pass
+
+RESPONSES = {
+ 'http://pypi.python.org/simple/zope.proxy/' :
+ """<html><head><title>Links for zope.proxy</title></head><body><h1>Links for zope.proxy</h1><a href="../../packages/source/z/zope.proxy/zope.proxy-3.6.0.zip#md5=896d9c53837d01875fe55cc69f43f7aa">zope.proxy-3.6.0.zip</a><br/>
+<a href="../../packages/2.6/z/zope.proxy/zope.proxy-3.6.0-py2.6-win-amd64.egg#md5=8cb96ee292e127df8c4524ec486a05b6">zope.proxy-3.6.0-py2.6-win-amd64.egg</a><br/>
+<a href="../../packages/2.6/z/zope.proxy/zope.proxy-3.5.0-py2.6-win-amd64.egg#md5=f3bdd81ef3d3f21db5cb4d9fe99b2b6e">zope.proxy-3.5.0-py2.6-win-amd64.egg</a><br/>
+<a href="../../packages/2.6/z/zope.proxy/zope.proxy-3.5.0-py2.6-win32.egg#md5=ae9c7e9ecf949422abd98c23507636ac">zope.proxy-3.5.0-py2.6-win32.egg</a><br/>
+<a href="../../packages/2.4/z/zope.proxy/zope.proxy-3.4.0-py2.4-win32.egg#md5=c23cda9412f8859d0d2d36c16e69a5a8">zope.proxy-3.4.0-py2.4-win32.egg</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.4.0.tar.gz#md5=a9e234e90bc4a16bb62b967d4a0412c6">zope.proxy-3.4.0.tar.gz</a><br/>
+<a href="../../packages/2.5/z/zope.proxy/zope.proxy-3.5.0-py2.5-win32.egg#md5=7ea1aa4dd320e9cceaae5031026259cc">zope.proxy-3.5.0-py2.5-win32.egg</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.5.0.tar.gz#md5=ac5fc916b572bc3ff630b49cda52d94a">zope.proxy-3.5.0.tar.gz</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.4.2.zip#md5=ad51f25d4d86be7cfebb70bd77421f92">zope.proxy-3.4.2.zip</a><br/>
+<a href="../../packages/2.4/z/zope.proxy/zope.proxy-3.5.0-py2.4-win32.egg#md5=8c73b52e76f6aea17b1542b85d8b58f4">zope.proxy-3.5.0-py2.4-win32.egg</a><br/>
+<a href="../../packages/2.6/z/zope.proxy/zope.proxy-3.4.2-py2.6-win32.egg#md5=3eff1609ba267b2b3becbe2eb37fb401">zope.proxy-3.4.2-py2.6-win32.egg</a><br/>
+<a href="../../packages/2.4/z/zope.proxy/zope.proxy-3.4.1-py2.4-win32.egg#md5=02da4f1338131d7feffabe06488962c6">zope.proxy-3.4.1-py2.4-win32.egg</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.4.1.zip#md5=b4d5c7345a7a2a60071a6f62db9592c6">zope.proxy-3.4.1.zip</a><br/>
+<a href="../../packages/2.5/z/zope.proxy/zope.proxy-3.4.2-py2.5-win32.egg#md5=6c1661131b0dd8c8e667b47d1e7707e7">zope.proxy-3.4.2-py2.5-win32.egg</a><br/>
+<a href="../../packages/2.4/z/zope.proxy/zope.proxy-3.4.2-py2.4-win32.egg#md5=67184719dfe56838be7241391721f11d">zope.proxy-3.4.2-py2.4-win32.egg</a><br/>
+<a href="../../packages/2.5/z/zope.proxy/zope.proxy-3.4.0-py2.5-win32.egg#md5=aa0e2c00e011b026820630150ca028ba">zope.proxy-3.4.0-py2.5-win32.egg</a><br/>
+<a href="../../packages/2.5/z/zope.proxy/zope.proxy-3.3.0-py2.5-win32.egg#md5=bcf3c132a36906787a07aac7226cbb1b">zope.proxy-3.3.0-py2.5-win32.egg</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.3.0.tar.gz#md5=64128ab4feeb5bfd8a66c4cdd5192a31">zope.proxy-3.3.0.tar.gz</a><br/>
+<a href="../../packages/2.6/z/zope.proxy/zope.proxy-3.6.0-py2.6-win32.egg#md5=6984986850f74abdb3cd0c738579cb16">zope.proxy-3.6.0-py2.6-win32.egg</a><br/>
+<a href="../../packages/source/z/zope.proxy/zope.proxy-3.4.0.zip#md5=3fef9f29c8b920c9f20aa3a2f92afa70">zope.proxy-3.4.0.zip</a><br/>
+<a href="../../packages/2.4/z/zope.proxy/zope.proxy-3.3.0-py2.4-win32.egg#md5=554d10d694d7e5ea9468d88c1c078387">zope.proxy-3.3.0-py2.4-win32.egg</a><br/>
+<a href="../../packages/2.5/z/zope.proxy/zope.proxy-3.4.1-py2.5-win32.egg#md5=82c2d44d956ceaa1c838bf23be18fe95">zope.proxy-3.4.1-py2.5-win32.egg</a><br/>
+<a href="http://svn.zope.org/zope.proxy" rel="homepage">3.3.0 home_page</a><br/>
+<a href="http://docs.python.org/ref/sequence-methods.html">http://docs.python.org/ref/sequence-methods.html</a><br/>
+</body></html>""",
+}
+
+class MockURLGetter(object):
+ def __init__(self):
+ pass
+
+ def __call__(self):
+ return self
+
+ def get(self, url):
+ global MOCKLOG
+ MOCKLOG.append('urlget: %s' % url)
+ return RESPONSES[url]
\ No newline at end of file
Property changes on: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/testing.py
___________________________________________________________________
Added: svn:keywords
+ Date Author Id Revision
Added: svn:eol-style
+ native
Modified: Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/tests.py
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/tests.py 2010-06-08 19:10:13 UTC (rev 113298)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/src/zope/wineggbuilder/tests.py 2010-06-09 06:52:09 UTC (rev 113299)
@@ -5,61 +5,10 @@
__docformat__ = 'ReStructuredText'
import unittest
-import doctest
+from zope.testing import doctest
+#import doctest
import pprint
-#format is [(expected cmd, result)]
-CommandIO = []
-
-class MockCommand(object):
- def __init__(self):
- pass
-
- def __call__(self, cwd=None, captureOutput=True, exitOnError=True):
- return self
-
- def do(cmd):
- global CommandIO
- next = CommandIO.pop(0)
- if next[0] != cmd:
- raise ValueError("Wrong command, expected: %s, got: %s",
- (next[0], cmd))
-
- if isinstance(next[1], Exception):
- raise next[1]
-
- return next[1]
-
-PYPI_RELEASES = {
- 'zope.proxy': None,
-}
-
-class MockPYPI(object):
- def __init__(self):
- pass
-
- def __call__(self):
- return self
-
- #def list_packages(self):
- # pass
-
- def package_releases(self, package_name, show_hidden=False):
- return PYPI_RELEASES[package_name]
-
- #def release_urls(self, package_name, version):
- # pass
- #
- #def release_data(self, package_name, version):
- # pass
- #
- #def search(self, spec, operator=None):
- # pass
- #
- #def changelog(self, since):
- # pass
-
-
def test_suite():
return unittest.TestSuite((
doctest.DocFileSuite('README.txt',
Deleted: Sandbox/adamg/zope.wineggbuilder/trunk/test.ini
===================================================================
--- Sandbox/adamg/zope.wineggbuilder/trunk/test.ini 2010-06-08 19:10:13 UTC (rev 113298)
+++ Sandbox/adamg/zope.wineggbuilder/trunk/test.ini 2010-06-09 06:52:09 UTC (rev 113299)
@@ -1,31 +0,0 @@
-[build]
-compilers = py24_32 py25_32 py26_32 py26_64
-packages = zope.proxy
-
-[py24_32]
-command = set PATH=%PATH%;c:\mingw32\bin
- c:\Python24\python setup.py build_ext --compiler mingw32 bdist_egg upload
-fileEnding = py2.4-win32.egg
-
-[py25_32]
-command = set PATH=%PATH%;c:\mingw32\bin
- c:\Python25\python setup.py build_ext --compiler mingw32 bdist_egg upload
-fileEnding = py2.5-win32.egg
-
-[py26_32]
-command = call c:\program files\msvc\msvcvars.bat
- c:\Python26\python setup.py build_ext --compiler msvc bdist_egg upload
-fileEnding = py2.6-win32.egg
-
-[py26_64]
-command = call c:\program files\msvc\msvcvars.bat
- c:\Python26_64\python setup.py build_ext --compiler msvc bdist_egg upload
-fileEnding = py2.6-win-amd64.egg
-
-
-[zope.proxy]
-pypiurl = http://pypi.python.org/simple/zope.proxy/
-tagurl = svn://svn.zope.org/repos/main/zope.proxy/tags
-minVersion =
-maxVersion =
-targets = py25_32 py26_32
\ No newline at end of file
More information about the checkins
mailing list