It appears that you need quite a new version of setuptools with the latest repoze.who.
With repoze.who 2.3 I get an exception when using setuptools version before 11.3. Since that was released only January 2015, it seems plenty of people may be affected.
(ckan)vagrant@precise64:/vagrant/src/ckan$ nosetests --reset-db --ckan
--with-pylons=test-core.ini ckan/tests -x
/home/vagrant/ckan/local/lib/python2.7/site-packages/pylons/templating.py:610:
UserWarning: Unbuilt egg for ckan [unknown version]
(/vagrant/src/ckan)
Engine = entry_point.load()
Traceback (most recent call last):
File "/home/vagrant/ckan/bin/nosetests", line 11, in <module>
sys.exit(run_exit())
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/nose/core.py",
line 121, in __init__
**extra_args)
File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/nose/core.py",
line 145, in parseArgs
self.config.configure(argv, doc=self.usage())
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/nose/config.py",
line 347, in configure
self.plugins.begin()
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/nose/plugins/manager.py",
line 99, in __call__
return self.call(*arg, **kw)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/nose/plugins/manager.py",
line 167, in simple
result = meth(*arg, **kw)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/pylons/test.py",
line 74, in begin
relative_to=path)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
line 272, in loadobj
return context.create()
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
line 710, in create
return self.object_type.invoke(self)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
line 146, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/paste/deploy/util.py",
line 55, in fix_call
val = callable(*args, **kw)
File "/vagrant/src/ckan/ckan/config/middleware/__init__.py", line
48, in make_app
**app_conf)
File "/vagrant/src/ckan/ckan/config/middleware/pylons_app.py", line
113, in make_pylons_stack
who_parser.parse(open(app_conf['who.config_file']))
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/repoze/who/config.py",
line 86, in parse
obj = self._makePlugin(name, IPlugin, options)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/repoze/who/config.py",
line 40, in _makePlugin
obj = _resolve(name)
File "/home/vagrant/ckan/local/lib/python2.7/site-packages/repoze/who/config.py",
line 23, in _resolve
return EntryPoint.parse('x=%s' % name).resolve()
AttributeError: 'EntryPoint' object has no attribute 'resolve'
I didn't have this trouble with repoze.who==2.0 (I've not tried the versions in-between).