Author: Matti Picus <matti.pi...@gmail.com> Branch: sort-nightly-directories Changeset: r750:06b4a174180c Date: 2013-03-20 21:08 -0700 http://bitbucket.org/pypy/buildbot/changeset/06b4a174180c/
Log: simplify test, implement sorting diff --git a/bot2/pypybuildbot/pypylist.py b/bot2/pypybuildbot/pypylist.py --- a/bot2/pypybuildbot/pypylist.py +++ b/bot2/pypybuildbot/pypylist.py @@ -1,11 +1,10 @@ import os.path import datetime import itertools -import re import py import cgi import urllib -from twisted.web import resource +import sys from twisted.web.static import File, DirectoryLister class PyPyTarball(object): @@ -104,15 +103,19 @@ return self.vcs == 'latest' class PyPyDirectory(object): - def __init__(self, filename): - self.filename = filename + def __init__(self, filePath): + self.filename = filePath.basename() + self.filePath = filePath try: self.parse_filename() except ValueError: self.last_mod_time = 0 def parse_filename(self): - raise ValueError + if self.filename == 'trunk': + self.last_mod_time = sys.maxsize + return + self.last_mod_time = self.filePath.getmtime() def key(self): return (self.last_mod_time) @@ -124,23 +127,23 @@ 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) + def sortDirectoryNames(self, filePaths): + items = map(PyPyDirectory, filePaths) + items.sort(key=PyPyDirectory.key, reverse=True) return [item.filename for item in items] def directoryListing(self): - def is_pypy_dir(names_unsorted): - for name in names_unsorted: + def is_pypy_dir(names): + for name in names: if name.startswith('pypy-c'): return True return False - names_unsorted = File.listNames(self) - if is_pypy_dir(names_unsorted): - names = self.sortBuildNames(names_unsorted) + names = File.listNames(self) + if is_pypy_dir(names): + names = self.sortBuildNames(names) Listener = PyPyDirectoryLister else: - names = self.sortDirectoryNames(names_unsorted) + names = self.sortDirectoryNames(File.listEntities(self)) 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 @@ -69,22 +69,18 @@ assert os.path.basename(__file__) in files 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') + trunk = tmpdir.mkdir('trunk') + oldtime = trunk.mtime() for ascii in range(ord('a'), ord('m')): - tmpdir.mkdir(chr(ascii) * 4) - time.sleep(0.1) + newdir = tmpdir.mkdir(chr(ascii) * 4) + newdir.setmtime(oldtime + ascii * 10) pypylist = PyPyList(tmpdir.strpath) listener = pypylist.directoryListing() - request = DummyRequest([os.path.dirname(tmpdir.strpath)]) - page = listener.render(request) - tmpdir.join('index.html').write(page) - for ascii in range(ord('a'), ord('m') - 1): - assert page.find(chr(ascii) * 4) > page.find((chr(ascii + 1)) * 4) - assert page.find('trunk') < page.find('mmm') + assert listener.dirs == ['trunk', 'mmmm', 'llll', + 'kkkk','jjjj','iiii','hhhh','gggg','ffff','eeee', + 'dddd','cccc','bbbb','aaaa'] def load_BuildmasterConfig(): import os _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit