> Heh, I just found the exact same fix. We do have a new problem, though, and
> this one is kinda large.
>
> tw2.core is using syntax like this:
>
> ======================================================================
> ERROR: Failure: SyntaxError (invalid syntax (i18n.py, line 19))
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File
> "/home/marvin/venvs/tg2-25/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/loader.py",
> line 390, in loadTestsFromName
> addr.filename, addr.module)
> File
> "/home/marvin/venvs/tg2-25/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/importer.py",
> line 39, in importFromPath
> return self.importFromDir(dir_path, fqname)
> File
> "/home/marvin/venvs/tg2-25/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/importer.py",
> line 86, in importFromDir
> mod = load_module(part_fqname, fh, filename, desc)
> File "/home/marvin/src/tg2/tests/test_validation.py", line 9, in <module>
> from tg.controllers import TGController
> File "/home/marvin/src/tg2/tg/__init__.py", line 58, in <module>
> from tg.controllers import TGController, redirect, url, lurl, abort
> File "/home/marvin/src/tg2/tg/controllers/__init__.py", line 5, in
> <module>
> from tg.controllers.decoratedcontroller import (DecoratedController,
> File "/home/marvin/src/tg2/tg/controllers/decoratedcontroller.py", line
> 40, in <module>
> from tw2.core import ValidationError as Tw2ValidationError
> File "/home/marvin/src/tg2/tw2.core-2.0.1-py2.5.egg/tw2/core/__init__.py",
> line 11, in <module>
> from widgets import (Widget, CompoundWidget, RepeatingWidget,
> File "/home/marvin/src/tg2/tw2.core-2.0.1-py2.5.egg/tw2/core/widgets.py",
> line 12, in <module>
> import validation as vd
> File
> "/home/marvin/src/tg2/tw2.core-2.0.1-py2.5.egg/tw2/core/validation.py", line
> 11, in <module>
> from i18n import _
> File "/home/marvin/src/tg2/tw2.core-2.0.1-py2.5.egg/tw2/core/i18n.py",
> line 19
> except TypeError as e:
> ^
> SyntaxError: invalid syntax
>
>
> While I'm glad they are, it does require us to make a choice: Either tw2 is
> not the default, or we're bumping the minimum requirement to Python 2.6.
> Personally, I prefer Py-2.6, but that's me. Thoughts?
>
> On Mon, Apr 9, 2012 at 4:26 PM, Alessandro Molina
> <
alessandro.molina@...> wrote:
>>
>> You are right, I forgot to check on Python 2.5 and methodcaller wasn't
>> available there.
>> I pushed a quick fix for that right now.
>>
>> On Mon, Apr 9, 2012 at 3:06 PM, Michael Pedersen <
m.pedersen@...>
>> wrote:
>> > Thank you. That problem has been fixed, but I'm afraid we might have a
>> > more
>> > serious problem. In Jenkins, I've upgraded all the tests to use Python
>> > 2.5
>> > and 2.7 (instead of 2.4 and 2.6). On 2.5, I get the traceback below.
>> > Since I
>> > do not get this on 2.7, I have to think we've got a language
>> > incompatibility
>> > happening (though it could be packages needing to be upgraded, too, and
>> > that's the focus of my work tonight).
>> >
>> > Traceback (most recent call last):
>> > File "setup.py", line 79, in <module>
>> > zip_safe=False
>> > File "/usr/lib/python2.5/distutils/core.py", line 151, in setup
>> > dist.run_commands()
>> > File "/usr/lib/python2.5/distutils/dist.py", line 974, in run_commands
>> > self.run_command(cmd)
>> > File "/usr/lib/python2.5/distutils/dist.py", line 994, in run_command
>> > cmd_obj.run()
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/commands.py",
>> > line 137, in run
>> > TestProgram(argv=argv, config=self.__config)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/core.py",
>> > line 118, in __init__
>> > **extra_args)
>> > File "/usr/lib/python2.5/unittest.py", line 767, in __init__
>> > self.parseArgs(argv)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/core.py",
>> > line 135, in parseArgs
>> > self.config.configure(argv, doc=self.usage())
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/config.py",
>> > line 330, in configure
>> > self.plugins.begin()
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/plugins/manager.py",
>> > line 94, in __call__
>> > return self.call(*arg, **kw)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/nose-1.0.0-py2.5.egg/nose/plugins/manager.py",
>> > line 162, in simple
>> > result = meth(*arg, **kw)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/Pylons-1.0-py2.5.egg/pylons/test.py",
>> > line 74, in begin
>> > relative_to=path)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 203, in loadapp
>> > return loadobj(APP, uri, name=name, **kw)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 223, in loadobj
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 247, in loadcontext
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 270, in _loadconfig
>> > return loader.get_context(object_type, name, global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 401, in get_context
>> > section)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 423, in _context_from_use
>> > object_type, name=use, global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 353, in get_context
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 247, in loadcontext
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 270, in _loadconfig
>> > return loader.get_context(object_type, name, global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 401, in get_context
>> > section)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 423, in _context_from_use
>> > object_type, name=use, global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 353, in get_context
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 247, in loadcontext
>> > global_conf=global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 277, in _loadegg
>> > return loader.get_context(object_type, name, global_conf)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 553, in get_context
>> > object_type, name=name)
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg2env/lib/python2.5/site-packages/PasteDeploy-1.3.4-py2.5.egg/paste/deploy/loadwsgi.py",
>> > line 579, in find_egg_entry_point
>> > possible.append((entry.load(), protocol, entry.name))
>> > File "build/bdist.linux-i686/egg/pkg_resources.py", line 1954, in load
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg21inst/tg21teststd/tg21teststd/config/middleware.py",
>> > line 4, in <module>
>> > from tg21teststd.config.app_cfg import base_config
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg21inst/tg21teststd/tg21teststd/config/app_cfg.py",
>> > line 16, in <module>
>> > from tg.configuration import AppConfig
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg21inst/tg21/tg/__init__.py",
>> > line 58, in <module>
>> > from tg.controllers import TGController, redirect, url, lurl, abort
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg21inst/tg21/tg/controllers/__init__.py",
>> > line 5, in <module>
>> > from tg.controllers.decoratedcontroller import (DecoratedController,
>> > File
>> >
>> > "/home/hudson/.hudson/jobs/tg-2.2-devtools-py2.5/workspace/tg21inst/tg21/tg/controllers/decoratedcontroller.py",
>> > line 11, in <module>
>> > strip_string = operator.methodcaller('strip')
>> > AttributeError: 'module' object has no attribute 'methodcaller'
>> >
>> > On Mon, Apr 9, 2012 at 5:59 AM, Alessandro Molina
>> > <
alessandro.molina@...> wrote:
>> >>
>> >> That test has been added to reproduce a crank issue that should have
>> >> been fixed in crank 0.6.2,
>> >> check that you are actually testing with the last crank release.
>> >>
>> >> On Mon, Apr 9, 2012 at 6:01 AM, Michael Pedersen
>> >> <
m.pedersen@...>
>> >> wrote:
>> >> > So, I've begun working on getting jenkins fixed. Now that 2.1.5 is
>> >> > out,
>> >> > it
>> >> > seemed like the next logical step.
>> >> >
>> >> > I've run into a pair of issues, though, and I think they might be
>> >> > related.
>> >> > Since I've been out of the code for so long, and so many improvements
>> >> > have
>> >> > occurred, asking here seems like the better choice.
>> >> >
>> >> > Are we now using the multiprocessing module? If so, we need to add it
>> >> > to
>> >> > the
>> >> > list of requirements when python version is 2.5.
>> >> >
>> >> > Second, when running nosetests on python 2.7 on jenkins, I get a
>> >> > failure.
>> >> > Specifically, this error:
>> >> >
>> >> >
>> >> > ======================================================================
>> >> > ERROR: test_not_found
>> >> > (tests.test_tg_controller_dispatch.TestNotFoundWithIndexController)
>> >> >
>> >> > ----------------------------------------------------------------------
>> >> > Traceback (most recent call last):
>> >> > File
>> >> >
>> >> >
>> >> > "/home/hudson/.hudson/jobs/tg-2.2-py2.7/workspace/tests/test_tg_controller_dispatch.py",
>> >> > line 492, in test_not_found
>> >> > r = self.app.get('/something', status=404)
>> >> > File
>> >> >
>> >> >
>> >> > "/home/hudson/.hudson/jobs/tg-2.2-py2.7/workspace/tg2env/lib/python2.7/site-packages/WebTest-1.2.4-py2.7.egg/webtest/__init__.py",
>> >> > line 734, in get
>> >> > expect_errors=expect_errors)
>> >> > File
>> >> >
>> >> >
>> >> > "/home/hudson/.hudson/jobs/tg-2.2-py2.7/workspace/tg2env/lib/python2.7/site-packages/WebTest-1.2.4-py2.7.egg/webtest/__init__.py",
>> >> > line 974, in do_request
>> >> > self._check_status(status, res)
>> >> > File
>> >> >
>> >> >
>> >> > "/home/hudson/.hudson/jobs/tg-2.2-py2.7/workspace/tg2env/lib/python2.7/site-packages/WebTest-1.2.4-py2.7.egg/webtest/__init__.py",
>> >> > line 1012, in _check_status
>> >> > "Bad response: %s (not %s)" % (res.status, status))
>> >> > AppError: Bad response: 200 OK (not 404)
>> >> >
>> >> > Any clues as to why before I dig in? My next immediate task is to
>> >> > prepare
>> >> > the 2.2 beta release, and get every package for it upgraded as high
>> >> > as
>> >> > possible, so any help fixing this one error would be most
>> >> > appreciated.
>> >> >
>> >> > --
>> >> > Michael J. Pedersen
>> >> > My Online Resume:
http://www.icelus.org/ -- Google+
>> >> >
http://plus.ly/pedersen>> >> > Google Talk:
m.pedersen@... -- Twitter: pedersentg
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "TurboGears Trunk" group.
>> >> > To post to this group, send email to
>> >> >
turbogears-trunk@....
>> >> > To unsubscribe from this group, send email to
>> >> >
turbogears-trunk+unsubscribe@....
>> >> > For more options, visit this group at
>> >> >
http://groups.google.com/group/turbogears-trunk?hl=en.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups
>> >> "TurboGears Trunk" group.
>> >> To post to this group, send email to
turbogears-trunk@....
>> >> To unsubscribe from this group, send email to
>> >>
turbogears-trunk+unsubscribe@....
>> >> For more options, visit this group at
>> >>
http://groups.google.com/group/turbogears-trunk?hl=en.
>> >>
>> >
>> >
>> >
>> > --
>> > Michael J. Pedersen
>> > My Online Resume:
http://www.icelus.org/ -- Google+
>> >
http://plus.ly/pedersen>> > Google Talk:
m.pedersen@... -- Twitter: pedersentg
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "TurboGears Trunk" group.
>> > To post to this group, send email to
turbogears-trunk@....
>> > To unsubscribe from this group, send email to
>> >
turbogears-trunk+unsubscribe@....
>> > For more options, visit this group at
>> >
http://groups.google.com/group/turbogears-trunk?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "TurboGears Trunk" group.
>> To post to this group, send email to
turbogears-trunk@....
>> To unsubscribe from this group, send email to
>>
turbogears-trunk+unsubscribe@....
>> For more options, visit this group at
>>
http://groups.google.com/group/turbogears-trunk?hl=en.
>>
>
>
>
> --
> Michael J. Pedersen
> My Online Resume:
http://www.icelus.org/ -- Google+
http://plus.ly/pedersen> Google Talk:
m.pedersen@... -- Twitter: pedersentg
>
> --
> You received this message because you are subscribed to the Google Groups
> "TurboGears Trunk" group.
> To post to this group, send email to
turbogears-trunk@....
> To unsubscribe from this group, send email to
>
turbogears-trunk+unsubscribe@....
> For more options, visit this group at
>
http://groups.google.com/group/turbogears-trunk?hl=en.
You received this message because you are subscribed to the Google Groups "TurboGears Trunk" group.