From a46dc454a7b22fb2a8facd931c10d9945155edb6 Mon Sep 17 00:00:00 2001 From: Chad Whitacre Date: Fri, 4 Nov 2016 08:48:14 -0400 Subject: [PATCH 1/2] Skip npm sync tests if deps are missing --- gratipay/package_managers/sync.py | 7 ++++++- tests/py/test_npm_sync.py | 20 +++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/gratipay/package_managers/sync.py b/gratipay/package_managers/sync.py index f2c44edc44..f6a5a093b3 100644 --- a/gratipay/package_managers/sync.py +++ b/gratipay/package_managers/sync.py @@ -15,6 +15,11 @@ NULL = uuid.uuid4().hex +def import_ijson(): + import ijson.backends.yajl2_cffi as ijson + return ijson + + def arrayize(seq): """Given a sequence of str, return a Postgres array literal str. """ @@ -48,7 +53,7 @@ def serialize_one(out, package): def serialize(args): """Consume raw JSON from the npm registry and spit out CSV for Postgres. """ - import ijson.backends.yajl2_cffi as ijson + ijson = import_ijson() path = args.path parser = ijson.parse(open(path)) diff --git a/tests/py/test_npm_sync.py b/tests/py/test_npm_sync.py index e0eed95bde..8fe120ab4a 100644 --- a/tests/py/test_npm_sync.py +++ b/tests/py/test_npm_sync.py @@ -4,8 +4,10 @@ from subprocess import Popen, PIPE +import pytest +from gratipay.utils import markdown from gratipay.testing import Harness -from gratipay.package_managers import readmes +from gratipay.package_managers import readmes, sync def load(raw): @@ -17,6 +19,22 @@ def load(raw): ).communicate(serialized)[0] +try: + sync.import_ijson() +except ImportError: + missing_ijson = True +else: + missing_ijson = False + +try: + markdown.marky('test') +except OSError: + missing_marky_markdown = True +else: + missing_marky_markdown = False + +@pytest.mark.skipif(missing_ijson, reason="missing ijson") +@pytest.mark.skipif(missing_marky_markdown, reason="missing marky-markdown") class Tests(Harness): def test_packages_starts_empty(self): From 53c7b5cca05355d666aff9701e1bd9cbc5381297 Mon Sep 17 00:00:00 2001 From: Chad Whitacre Date: Fri, 4 Nov 2016 08:57:10 -0400 Subject: [PATCH 2/2] Fix marky-markdown test Did a new version of marky-markdown introduce this change? I don't know. --- tests/py/test_npm_sync.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/py/test_npm_sync.py b/tests/py/test_npm_sync.py index 8fe120ab4a..4e0e4579bf 100644 --- a/tests/py/test_npm_sync.py +++ b/tests/py/test_npm_sync.py @@ -119,8 +119,7 @@ def fetch(name): package = self.db.one('SELECT * FROM packages') assert package.name == 'foo-package' assert package.description == 'A package' - assert package.readme == '

' \ - 'Greetings, program!

\n' + assert package.readme == '

Greetings, program!

\n' assert package.readme_raw == '# Greetings, program!' assert package.readme_type == 'x-markdown/npm' assert package.emails == []