[Checkins] SVN: grokproject/trunk/tests Moved test setup and teardown to test suite.
Jan-Jaap Driessen
jdriessen at thehealthagency.com
Mon Apr 19 11:14:27 EDT 2010
Log message for revision 111105:
Moved test setup and teardown to test suite.
Changed:
U grokproject/trunk/tests.py
U grokproject/trunk/tests_alternative_release_url.txt
U grokproject/trunk/tests_paste.txt
-=-
Modified: grokproject/trunk/tests.py
===================================================================
--- grokproject/trunk/tests.py 2010-04-19 15:13:50 UTC (rev 111104)
+++ grokproject/trunk/tests.py 2010-04-19 15:14:27 UTC (rev 111105)
@@ -117,8 +117,16 @@
rmdir(path)
-tempdir = os.getenv('TEMP','/tmp')
+def setup(test):
+ eggsdir = os.path.join(tempfile.gettempdir(), 'grokproject-test-eggs')
+ maybe_mkdir(eggsdir)
+ test.globs['eggsdir'] = eggsdir
+ test.globs['testdir'] = tempfile.mkdtemp()
+def teardown(test):
+ maybe_rmdir(test.globs['eggsdir'])
+ shutil.rmtree(test.globs['testdir'])
+
def doc_suite(package_dir):
"""Returns a test suite"""
suite = []
@@ -131,12 +139,22 @@
tests = [os.path.join(package_dir, filename)
for filename in [
'tests_paste.txt', 'tests_alternative_release_url.txt']]
+ globs = {
+ 'ls': ls,
+ 'cd': cd,
+ 'cat': cat,
+ 'touch': touch,
+ 'sh': sh,
+ 'read_sh': read_sh,
+ 'current_dir': current_dir,
+ }
for test in tests:
suite.append(doctest.DocFileSuite(test, optionflags=flags,
- globs=globals(),
+ globs=globs,
+ setUp=setup,
+ tearDown=teardown,
module_relative=False))
-
return unittest.TestSuite(suite)
def test_suite():
Modified: grokproject/trunk/tests_alternative_release_url.txt
===================================================================
--- grokproject/trunk/tests_alternative_release_url.txt 2010-04-19 15:13:50 UTC (rev 111104)
+++ grokproject/trunk/tests_alternative_release_url.txt 2010-04-19 15:14:27 UTC (rev 111105)
@@ -8,7 +8,8 @@
"file:///" URL pointing to a directory with a fake set of grok release
information files:
- >>> testdir = tempfile.mkdtemp() # can be removed when tempdir becomes really temporary
+ >>> cd(testdir)
+ >>> import os.path
>>> fake_release = os.path.join(testdir, 'fake_release')
>>> os.mkdir(fake_release)
>>> touch(fake_release, 'current', data='grok-0.555.cfg')
@@ -28,13 +29,13 @@
Let's use paster, with a "file:///" url pointing to the fake grok release. We
won't run buildout because the version file is not actually valid::
- >>> paster = current_dir + '/bin/paster'
+ >>> paster = [os.path.join(current_dir, 'bin', 'paster')]
>>> paster_params = ('create -t grok --no-interactive -o'.split() +
... [testdir])
>>> grok_params = ('grokexample user=a passwd=a run_buildout=false '
... 'grok_release_url=' + alt_url).split()
- >>> sh([paster] + paster_params + grok_params)
- ['/.../bin/paster', 'create', '-t', 'grok', '--no-interactive',
+ >>> sh(paster + paster_params + grok_params)
+ ['.../bin/paster', 'create', '-t', 'grok', '--no-interactive',
'-o', ... 'grokexample', 'user=a', 'passwd=a', 'run_buildout=false',
'grok_release_url=file:///.../fake_release/']
...
@@ -42,6 +43,13 @@
Let's check the contents::
>>> package_dir = os.path.join(testdir, 'grokexample')
+ >>> print open(os.path.join(package_dir, 'buildout.cfg')).read()
+ [buildout]
+ extends = file:///.../fake_release/0.555/versions.cfg
+ extends-cache = cache
+ find-links = file:///.../fake_release/0.555/eggs/
+ ...
+
>>> ls(package_dir)
bootstrap.py
buildout.cfg
@@ -61,6 +69,3 @@
static
tests.py
-Cleanup:
-
- >>> rmdir(package_dir)
Modified: grokproject/trunk/tests_paste.txt
===================================================================
--- grokproject/trunk/tests_paste.txt 2010-04-19 15:13:50 UTC (rev 111104)
+++ grokproject/trunk/tests_paste.txt 2010-04-19 15:14:27 UTC (rev 111105)
@@ -1,28 +1,16 @@
Grokproject tests
=================
-Go to a directory::
+Go to a fresh test directory::
- >>> cd(tempdir)
+ >>> cd(testdir)
-Check that the directory does not exist::
-
- >>> rmdir('GrokExample')
-
-Create an empty eggs directory. So we make sure that we don't have to
-care for arbitrary eggs, that were installed in the user's environment
-before. If this directory contains a file ``shorttests`` and the eggs
-directory exists already, then we leave it untouched::
-
- >>> tempeggs = 'grokexample-eggs'
- >>> eggsdir = os.path.join(tempdir, tempeggs)
- >>> maybe_mkdir(eggsdir)
-
Then use paster. Eggs are placed in our freshly created eggs directory::
+ >>> import os.path
>>> # Use a specific grok version, because 'current' will change at some
>>> # point in the future.
- >>> executable = [current_dir + '/bin/grokproject']
+ >>> executable = [os.path.join(current_dir, 'bin', 'grokproject')]
>>> opts = ['--user=a', '--passwd=a', '--eggs-dir=' + eggsdir]
>>> grokversion = ['--grokversion=1.1rc1']
>>> sh(executable + opts + grokversion + ['GrokExample'])
@@ -39,7 +27,13 @@
Let's check the contents::
- >>> package_dir = os.path.join(tempdir, 'GrokExample')
+ >>> package_dir = os.path.join(testdir, 'GrokExample')
+ >>> print open(os.path.join(package_dir, 'buildout.cfg')).read()
+ [buildout]
+ extends = http://grok.zope.org/releaseinfo/1.1rc1/versions.cfg
+ find-links = http://grok.zope.org/releaseinfo/1.1rc1/eggs/
+ ...
+
>>> ls(package_dir)
.installed.cfg
bin
@@ -101,7 +95,7 @@
cached versions file for 1.1rc1 will look like:
>>> ls(os.path.join(package_dir, 'cache'))
- 6a3f22ca3d6177f67814aa5ce2d48c62
+ 000739fbb1c7d540a2861c7476c5ec2d
We used a projectname with uppercase letters. This is respected by
configuration files::
@@ -266,8 +260,8 @@
We can influence the version of grok to be installed by using the
``grokversion`` parameter.
- >>> cd(tempdir)
- >>> package_dir = os.path.join(tempdir, 'GrokExample2')
+ >>> cd(testdir)
+ >>> package_dir = os.path.join(testdir, 'GrokExample2')
>>> grokversion = ['--grokversion=1.1a2']
>>> # WARNING: We know that running the buildout of grok 1.1a2 has a
>>> # buildout failure. That's OK for this test, as we want to show
@@ -277,7 +271,6 @@
'--grokversion=1.1a2', 'GrokExample2']
Creating directory ./GrokExample2
Downloading zc.buildout...
- ...
Invoking zc.buildout...
*************** PICKED VERSIONS ****************
[versions]
@@ -290,12 +283,5 @@
...
>>> ls(os.path.join(package_dir, 'cache'))
- 76cda68c4f673d08a52e03fc4a3e0b65
+ 6ac204ce415265b11b4a9a4701f2a04f
-Clean up::
-
- >>> cd(tempdir)
- >>> rmdir('GrokExample')
- >>> rmdir('GrokExample2')
- >>> maybe_rmdir(eggsdir)
-
More information about the checkins
mailing list