Merge tag '0.3' into develop

release 0.3
This commit is contained in:
Jan Dittberner 2014-02-08 13:15:06 +01:00
commit 944506519f
9 changed files with 129 additions and 125 deletions

View File

@ -1,6 +1,14 @@
2014-02-08 Jan Dittberner <jan@dittberner.info>
* moved to new server
* ported to Wheezy versions of the dependencies
* applied patches by Paul Wise and Olivier Berger
* update Sphinx documentation
* check responses in controller unit tests
* update copyright years of files
2013-02-24 Jan Dittberner <jan@dittberner.info>
* add sphinx documentation
* applied multiple patches by Paul Wise
* add sphinx documentation
* applied multiple patches by Paul Wise
2012-12-08 Jan Dittberner <jan@dittberner.info>

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service DdportfolioController
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import logging
import simplejson
@ -46,7 +45,7 @@ class DdportfolioController(BaseController):
'ddpo': N_("Debian Member's Package Overview"),
'alladdresses': N_("""Debian Member's Package Overview
... showing all email addresses"""),
},
},
'bugs': {
'label': N_('Bugs'),
'received': N_('''bugs received
@ -60,12 +59,12 @@ developer name on all bug logs)'),
'wnpp': N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
'correspondent': N_('correspondent for bugs'),
'graph': N_('one year open bug history graph'),
},
},
'build': {
'label': N_('Build'),
'buildd': N_('buildd.d.o'),
'igloo': N_('igloo'),
},
},
'qa': {
'label': N_('Quality Assurance'),
'dmd': N_('maintainer dashboard'),
@ -75,19 +74,19 @@ developer name on all bug logs)'),
'piuparts': N_('piuparts'),
'patchtracker': N_('Debian patch tracking system'),
'duck': N_('Debian Url ChecKer'),
},
},
'lists': {
'label': N_('Mailing Lists'),
'dolists': N_('lists.d.o'),
'adolists': N_('lists.a.d.o'),
'gmane': N_('gmane'),
},
},
'files': {
'label': N_('Files'),
'people': N_('people.d.o'),
'oldpeople': N_('oldpeople'),
'alioth': N_('Alioth'),
},
},
'membership': {
'label': N_('Membership'),
'nm': N_('NM'),
@ -97,7 +96,7 @@ developer name on all bug logs)'),
'alioth': N_('Alioth'),
'wiki': N_('Wiki'),
'forum': N_('Forum'),
},
},
'miscellaneous': {
'label': N_('Miscellaneous'),
'debtags': N_('debtags'),
@ -110,19 +109,19 @@ developer name on all bug logs)'),
'gpgweb': N_('GPG public key via HTTP'),
'nm': N_('NM, AM participation'),
'contrib': N_('Contribution information'),
},
},
'ssh': {
'label': N_('Information reachable via ssh (for Debian Members)'),
'owndndoms': N_('owned debian.net domains'),
'miainfo': N_('<a href="http://wiki.debian.org/qa.debian.org/'
'MIATeam">MIA</a> database information'),
'groupinfo': N_('Group membership information'),
},
},
'ubuntu': {
'label': N_('Ubuntu'),
'ubuntudiff': N_('Available patches from Ubuntu'),
},
}
},
}
def _get_label(self, section, url=None):
if section in self._LABELS:
@ -187,9 +186,8 @@ developer name on all bug logs)'),
if form_result['mode'] == 'json':
response.headers['Content-Type'] = 'text/javascript'
return simplejson.dumps(
dict([("%s.%s" % \
(entry[1], entry[2].name), entry[3]) \
for entry in data if entry[0] == 'url']))
dict([("%s.%s" % (entry[1], entry[2].name), entry[3])
for entry in data if entry[0] == 'url']))
for entry in data:
if entry[0] in ('url', 'error'):
entry.append(_(self._get_label(entry[1], entry[2].name)))

View File

@ -1,22 +1,22 @@
#
# Configuration for Debian Member Portfolio service
# Configuration for Debian Member Portfolio Service
#
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio service.
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio service is free software: you can redistribute it
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# Debian Member Portfolio service is distributed in the hope that it will be# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[DEFAULT]
gnupghome=~/debian/gnupghome

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service form handling model
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service form handling model
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import formencode

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service key finder module
# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service key finder module
# Copyright (c) 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# License along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""
This module provides tools for finding PGP key information from a
@ -86,6 +85,7 @@ def getLoginByFingerprint(fpr):
"""
return _get_cached('login:fpr:%s' % fpr)
def _dump_cache():
cache = _get_keyring_cache()
fprs = []
@ -94,16 +94,16 @@ def _dump_cache():
fpr = key.replace('email:fpr:', '')
if not fpr in fprs:
fprs.append(fpr)
for fpr in fprs:
login = getLoginByFingerprint(fpr)
email = _get_cached('email:fpr:%s' % fpr)
name = _get_cached('name:fpr:%s' % fpr)
print fpr, login, ':'
print ' ', name, email
if __name__ == '__main__':
logging.basicConfig(stream=sys.stderr, level=logging.WARNING)
_dump_cache()

View File

@ -2,23 +2,22 @@
<%inherit file="base.mako" />\
<%doc>
Template for the url output page.
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
This file is part of DDPortfolio service.
This file is part of Debian Member Portfolio Service.
DDPortfolio service is free software: you can redistribute it and/or
modify it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
Debian Member Portfolio Service is free software: you can redistribute it
and/or modify it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
DDPortfolio service is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.
Debian Member Portfolio Service is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
General Public License for more details.
You should have received a copy of the GNU Affero General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/>.
You should have received a copy of the GNU Affero General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
</%doc>\
<%def name="titleaddon()">
- ${_('Your personal links')}

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service tests package
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service tests package
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""Pylons application test package
@ -30,11 +29,8 @@ pkg_resources, in case the project hasn't been installed with
setuptools. It also initializes the application via websetup (paster
setup-app) with the project's test.ini configuration file.
"""
import os
import sys
from unittest import TestCase
from paste.deploy import loadapp
from paste.script.appinstall import SetupCommand
from pylons import url
from routes.util import URLGenerator

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# Debian Member Portfolio Service DdportfolioController test
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from ddportfolioservice.tests import TestController, url
@ -28,3 +27,6 @@ class TestDdportfolioController(TestController):
def test_index(self):
response = self.app.get(url(controller='ddportfolio', action='index'))
# Test response...
assert response.status_int == 200
assert response.content_type == "text/html"
assert "Debian Member Portfolio Service" in response

View File

@ -1,24 +1,23 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service DdportfolioController test
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of Debian Member Portfolio Service.
#
# DDPortfolio service is free software: you can redistribute it and/or
# modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
# Debian Member Portfolio Service is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
# Debian Member Portfolio Service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from ddportfolioservice.tests import TestController, url
@ -29,3 +28,6 @@ class TestShowformscriptsController(TestController):
response = self.app.get(
url(controller='showformscripts', action='index'))
# Test response...
assert response.status_int == 200
assert response.content_type == "text/javascript"
assert "function updateField" in response