Author: Matti Picus <matti.pi...@gmail.com>
Branch: sort-nightly-directories
Changeset: r748:8aecca90aba5
Date: 2013-03-20 20:22 -0700
http://bitbucket.org/pypy/buildbot/changeset/8aecca90aba5/

Log:    refactor test to use PyPyList, start to fix code

diff --git a/bot2/pypybuildbot/pypylist.py b/bot2/pypybuildbot/pypylist.py
--- a/bot2/pypybuildbot/pypylist.py
+++ b/bot2/pypybuildbot/pypylist.py
@@ -106,22 +106,28 @@
 
 class PyPyList(File):
 
-    def listNames(self):
-        names = File.listNames(self)
+    def sortBuildNames(self, names):
+        items = map(PyPyTarball, names)
+        items.sort(key=PyPyTarball.key, reverse=True)
+        return [item.filename for item in items]
+
+    def sortDirectoryNames(self, names):
         items = map(PyPyTarball, names)
         items.sort(key=PyPyTarball.key, reverse=True)
         return [item.filename for item in items]
 
     def directoryListing(self):
-        def is_pypy_dir(names):
-            for name in names:
+        def is_pypy_dir(names_unsorted):
+            for name in names_unsorted:
                 if name.startswith('pypy-c'):
                     return True
             return False
-        names = self.listNames()
-        if is_pypy_dir(names):
+        names_unsorted = File.listNames(self)
+        if is_pypy_dir(names_unsorted):
+            names = self.sortBuildNames(names_unsorted)
             Listener = PyPyDirectoryLister
         else:
+            names = self.sortDirectoryNames(names_unsorted)
             Listener = DirectoryLister
         return Listener(self.path,
                         names,
diff --git a/bot2/pypybuildbot/test/test_pypylist.py 
b/bot2/pypybuildbot/test/test_pypylist.py
--- a/bot2/pypybuildbot/test/test_pypylist.py
+++ b/bot2/pypybuildbot/test/test_pypylist.py
@@ -37,8 +37,8 @@
     t2 = PyPyTarball('pypy-c-jit-75654-linux.tar.bz2')
     assert t.key() < t2.key()
 
-def test_sort():
-    files = map(PyPyTarball, [
+def test_sort(tmpdir):
+    files = [
             'pypy-c-jit-10000-linux.tar.bz2',
             'pypy-c-jit-20000-linux.tar.bz2',
             'pypy-c-nojit-10000-linux.tar.bz2',
@@ -47,11 +47,11 @@
             'pypy-c-stackless-10000-linux.tar.bz2',
             'pypy-c-jit-1000-e5b73981fc8d-linux.tar.bz2', # this is mercurial 
based
             'pypy-c-jit-10000-linux-armel.tar.bz2',
-            ])
-
-    files.sort(key=PyPyTarball.key, reverse=True)
-    files = [f.filename for f in files]
-    assert files == [
+            ]
+    [tmpdir.join(f).write(f) for f in files]
+    pypylist = PyPyList(tmpdir.strpath)
+    listener = pypylist.directoryListing()
+    assert listener.dirs == [
         'pypy-c-jit-1000-e5b73981fc8d-linux.tar.bz2', # mercurial first
         'pypy-c-jit-20000-linux.tar.bz2',
         'pypy-c-jit-10000-linux.tar.bz2',
@@ -62,7 +62,7 @@
         'pypy-c-stackless-10000-linux.tar.bz2',
         ]
 
-def test_pypy_list():
+def test_pypy_list(tmpdir):
     import os
     pypylist = PyPyList(os.path.dirname(__file__))
     files = pypylist.listNames()
@@ -70,13 +70,13 @@
 
 def test_dir_render(tmpdir):
     import os, time
+    from twisted.web.test.test_web import DummyRequest
     # Create a bunch of directories, including one named trunk,
     # Make sure the time order is reversed collation order
     tmpdir.mkdir('trunk')
     for ascii in range(ord('a'), ord('m')):
         tmpdir.mkdir(chr(ascii) * 4)
         time.sleep(0.1)
-    from twisted.web.test.test_web import DummyRequest
     pypylist = PyPyList(tmpdir.strpath)
     listener = pypylist.directoryListing()
     request = DummyRequest([os.path.dirname(tmpdir.strpath)])
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to