[Checkins] SVN: grokproject/branches/rochael-alternate-grok_release_url/test Test cleanups

Leonardo Rochael Almeida leo at hiper.com.br
Sun Sep 28 09:59:16 EDT 2008


Log message for revision 91574:
  Test cleanups

Changed:
  U   grokproject/branches/rochael-alternate-grok_release_url/test_alt_url.txt
  D   grokproject/branches/rochael-alternate-grok_release_url/test_offline/
  U   grokproject/branches/rochael-alternate-grok_release_url/tests.py
  U   grokproject/branches/rochael-alternate-grok_release_url/tests.txt

-=-
Modified: grokproject/branches/rochael-alternate-grok_release_url/test_alt_url.txt
===================================================================
--- grokproject/branches/rochael-alternate-grok_release_url/test_alt_url.txt	2008-09-28 10:20:11 UTC (rev 91573)
+++ grokproject/branches/rochael-alternate-grok_release_url/test_alt_url.txt	2008-09-28 13:59:15 UTC (rev 91574)
@@ -7,33 +7,30 @@
 In this test we will use an alternative release URL for grokproject. It is a "file:///"
 URL pointing to a directory with a fake set of grok release information files:
 
-    >>> ls(current_dir, 'test_offline')
+    >>> fake_release = os.path.join(tempdir, 'fake_release')
+    >>> os.mkdir(fake_release)
+    >>> touch(fake_release, 'current', data='grok-0.555.cfg')
+    >>> touch(fake_release, 'grok-0.555.cfg', data='[versions]\ngrok = 0.555\n')
+    >>> ls(fake_release)
     current
     grok-0.555.cfg
-    >>> cat(current_dir, 'test_offline', 'current')
+    >>> cat(fake_release, 'current')
     grok-0.555.cfg
-    >>> cat(current_dir, 'test_offline', 'grok-0.555.cfg')
+    >>> cat(fake_release, 'grok-0.555.cfg')
     [versions]
     grok = 0.555
     <BLANKLINE>
-    >>> alt_url = 'file://' + os.path.join(current_dir, 'test_offline', '')
+    >>> alt_url = 'file://' + os.path.join(fake_release, '')
 
-Go to a directory::
-
-    >>> cd(tempdir)
-
-Check that the directory does not exist::
-
-    >>> rmdir('grokexample')
-
-Then use paster, with a "file:///" url pointing to a fake grok release. We won't run
+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 create -t grok --no-interactive '
-    >>> grok_params = ('grokexample user=a passwd=a run_buildout=false grok_release_url=' +
+    >>> paster = current_dir + '/bin/paster '
+    >>> paster_params = 'create -t grok --no-interactive -o ' + tempdir
+    >>> grok_params = (' grokexample user=a passwd=a run_buildout=false grok_release_url=' +
     ...	               alt_url)
-    >>> sh(paster + grok_params)
-    /.../bin/paster create -t grok --no-interactive grokexample user=a passwd=a run_buildout=false
+    >>> 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=.../fake_release/
     ...
 
 Let's check the contents::
@@ -62,7 +59,7 @@
     >>> cat(package_dir, 'versions.cfg')
     # This file contains a list of versions of the various grok modules that
     # belong together.
-    # It was downloaded from file://.../test_offline/grok-0.555.cfg
+    # It was downloaded from file://.../fake_release/grok-0.555.cfg
     # when this project was created.
     <BLANKLINE>
     [versions]

Modified: grokproject/branches/rochael-alternate-grok_release_url/tests.py
===================================================================
--- grokproject/branches/rochael-alternate-grok_release_url/tests.py	2008-09-28 10:20:11 UTC (rev 91573)
+++ grokproject/branches/rochael-alternate-grok_release_url/tests.py	2008-09-28 13:59:15 UTC (rev 91574)
@@ -80,9 +80,17 @@
     if globs is None:
         globs = globals()
 
-    tempdir = tempfile.mkdtemp()
-    globs.update(tempdir=tempdir)
+    def docSetUp(doctest):
+        "set up tempdir global for the test and save the initial directory"
+        tempdir = tempfile.mkdtemp()
+        initialdir = os.getcwd()
+        doctest.globs.update(tempdir=tempdir, initialdir=initialdir)
+        if setUp is not None:
+            setUp(doctest)
+
     def docTearDown(doctest):
+        """return to the saved directory and cleanup tempdir"""
+        cd(doctest.globs['initialdir']) # nasty grokproject changes cwd
         tempdir = doctest.globs['tempdir']
         assert os.path.isdir(tempdir)
         rmdir(tempdir)
@@ -100,7 +108,7 @@
 
     for test in docs:
         suite.append(doctest.DocFileSuite(test, optionflags=flags,
-                                          globs=globs, setUp=setUp,
+                                          globs=globs, setUp=docSetUp,
                                           tearDown=docTearDown,
                                           module_relative=False))
 

Modified: grokproject/branches/rochael-alternate-grok_release_url/tests.txt
===================================================================
--- grokproject/branches/rochael-alternate-grok_release_url/tests.txt	2008-09-28 10:20:11 UTC (rev 91573)
+++ grokproject/branches/rochael-alternate-grok_release_url/tests.txt	2008-09-28 13:59:15 UTC (rev 91574)
@@ -1,20 +1,15 @@
 Grokproject tests
 =================
 
-Go to a directory::
+Go to the directory where we intend to create the project (grokproject needs it)::
 
     >>> cd(tempdir)
 
-Check that the directory does not exist::
-
-    >>> rmdir('grokexample')
-
 Then use paster::
 
     >>> paster = current_dir + '/bin/paster create -t grok '
-    >>> sh(paster + 'grokexample user=a passwd=a --no-interactive')
-    /.../bin/paster create -t grok grokexample user=a passwd=a --no-interactive
-    ...
+    >>> sh(paster + 'grokexample user=a passwd=a --no-interactive ')
+    /.../bin/paster create -t grok grokexample user=a passwd=a --no-interactive ...
 
 Let's check the contents::
 



More information about the Checkins mailing list