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