Skip to content

Commit

Permalink
Merge pull request #28 from toabctl/license-unicode
Browse files Browse the repository at this point in the history
Fix license detection when license is None
  • Loading branch information
saschpe committed Jun 15, 2015
2 parents 367eda8 + 0dab16f commit 70da706
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 31 deletions.
6 changes: 5 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Docker Infrastructure (see http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/ )
sudo: false

language: python
python:
- 2.6
Expand All @@ -7,6 +10,7 @@ install:
- pip install --use-mirrors -r test-requirements.txt
- pip install --use-mirrors coveralls
script:
coverage run --source=py2pack setup.py test
- flake8 py2pack
- coverage run --source=py2pack setup.py test
after_success:
coveralls
35 changes: 14 additions & 21 deletions py2pack/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,17 @@
import sys
import tarfile
import urllib
#import warnings

try:
import xmlrpc.client as xmlrpclib
except:
import xmlrpclib
import zipfile

import py2pack.proxy

#warnings.filterwarnings('ignore', 'Module argparse was already imported') # Filter a UserWarning from Jinja2
import jinja2

import py2pack.proxy


TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') # absolute template path
pypi = xmlrpclib.ServerProxy('https://pypi.python.org/pypi') # XML RPC connection to PyPI
Expand Down Expand Up @@ -126,13 +125,22 @@ def _augment_data_from_tarball(args, filename, data):
for name in names:
match = re.match(docs_re, name)
if match:
if not "doc_files" in data:
if "doc_files" not in data:
data["doc_files"] = []
data["doc_files"].append(match.group(1))
if "test" in name.lower(): # Very broad check for testsuites
data["testsuite"] = True


def _normalize_license(data):
"""try to get SDPX license"""
l = data.get('license', None)
if l and l in SDPX_LICENSES.keys():
data['license'] = SDPX_LICENSES[l]
else:
data['license'] = ""


def generate(args):
check_or_set_version(args)
if not args.template:
Expand All @@ -154,8 +162,7 @@ def generate(args):
if tarball_file: # get some more info from that
_augment_data_from_tarball(args, tarball_file[0], data)

if data.get('license', "") in SDPX_LICENSES: # if we have a mapping, transform
data['license'] = SDPX_LICENSES[data['license']] # license into SPDX style
_normalize_license(data)

template = env.get_template(args.template)
result = template.render(data).encode('utf-8') # render template and encode properly
Expand All @@ -166,10 +173,6 @@ def generate(args):
outfile.close()


def create(args):
print('create package {0}...'.format(args.name))


def check_or_set_version(args):
if not args.version: # take first version found
releases = pypi.package_releases(args.name)
Expand All @@ -196,10 +199,6 @@ def file_template_list():
return [filename for filename in os.listdir(TEMPLATE_DIR) if not filename.startswith('.')]


def package_template_list():
return ['obs']


def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--version', action='version', version='%(prog)s {0}'.format(__version__))
Expand Down Expand Up @@ -230,12 +229,6 @@ def main():
parser_generate.add_argument('-f', '--filename', help='spec filename (optional)')
parser_generate.set_defaults(func=generate)

parser_do = subparsers.add_parser('create', help='generate complete package')
parser_do.add_argument('name', help='package name')
parser_do.add_argument('version', nargs='?', help='package version (optional)')
parser_do.add_argument('-t', '--template', choices=package_template_list(), default='obs', help='package template')
parser_do.set_defaults(func=create)

parser_help = subparsers.add_parser('help', help='show this help')
parser_help.set_defaults(func=lambda args: parser.print_help())

Expand Down
9 changes: 0 additions & 9 deletions py2pack/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,8 @@ def run(self):
try:
subprocess.call(["xsltproc", "--output", "doc/py2pack.html", "/usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl", "doc/src/py2pack.xml.in"])
subprocess.call(["xsltproc", "--output", "doc/py2pack.1", "/usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl", "doc/src/py2pack.xml.in"])
#subprocess.call(["xsltproc", "--output", "doc/py2pack.fo",
# "--stringparam", "paper.type", "A4",
# "--stringparam", "body.start.indent", "0pt",
# "--stringparam", "title.margin.left", "0pt",
# "--stringparam", "variablelist.as.blocks", "1",
# "/usr/share/xml/docbook/stylesheet/nwalsh/current/fo/docbook.xsl", "doc/py2pack.xml.in"])
#subprocess.call(["fop", "doc/py2pack.fo", "doc/py2pack.pdf"])
except:
pass
#if os.path.exists("doc/py2pack.fo"):
# os.remove("doc/py2pack.fo")


class SPDXUpdateCommand(Command):
Expand Down
1 change: 1 addition & 0 deletions test-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
coverage
flake8
nose
ddt
9 changes: 9 additions & 0 deletions test/test_py2pack.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

import unittest
from ddt import ddt, data, unpack

import py2pack


@ddt
class Py2packTestCase(unittest.TestCase):
def setUp(self):
class Args:
Expand All @@ -45,3 +47,10 @@ def test_newest_download_url(self):
filename = "{0}-{1}.tar.gz".format(self.args.name, self.args.version)
self.assertEqual(url["filename"], filename)
self.assertEqual(url["packagetype"], "sdist")

@data((None, ""), ("Apache-2.0", "Apache-2.0"), ("", ""))
@unpack
def test_normalize_license(self, value, expected_result):
d = { 'license': value }
py2pack._normalize_license(d)
self.assertEqual(d['license'], expected_result)

0 comments on commit 70da706

Please sign in to comment.