Author: Matti Picus <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit