From d53120f25f2ab8ffe4300dab4b47085a6b8e9da1 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 12 Jun 2015 09:21:30 +0000 Subject: [PATCH] Fix SimpleHTTP tests and omitempty bug. --- acme/challenges_test.py | 9 +++++++++ acme/jose/json_util.py | 2 +- acme/jose/json_util_test.py | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/acme/challenges_test.py b/acme/challenges_test.py index 7018b8e2e..beeec6f73 100644 --- a/acme/challenges_test.py +++ b/acme/challenges_test.py @@ -27,8 +27,17 @@ class SimpleHTTPTest(unittest.TestCase): self.jmsg = { 'type': 'simpleHttp', 'token': 'evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ+PCt92wr+oA', + 'tls': True, } + def test_no_tls(self): + from acme.challenges import SimpleHTTP + self.assertEqual(SimpleHTTP(token='tok', tls=False).to_json(), { + 'tls': False, + 'token': 'tok', + 'type': 'simpleHttp', + }) + def test_to_partial_json(self): self.assertEqual(self.jmsg, self.msg.to_partial_json()) diff --git a/acme/jose/json_util.py b/acme/jose/json_util.py index c7698ed8d..a08145459 100644 --- a/acme/jose/json_util.py +++ b/acme/jose/json_util.py @@ -62,7 +62,7 @@ class Field(object): definition of being empty, e.g. for some more exotic data types. """ - return not value + return not isinstance(value, bool) and not value def omit(self, value): """Omit the value in output?""" diff --git a/acme/jose/json_util_test.py b/acme/jose/json_util_test.py index a37ac08de..242e37589 100644 --- a/acme/jose/json_util_test.py +++ b/acme/jose/json_util_test.py @@ -1,4 +1,5 @@ """Tests for acme.jose.json_util.""" +import itertools import os import pkg_resources import unittest @@ -20,6 +21,13 @@ CSR = M2Crypto.X509.load_request(pkg_resources.resource_filename( class FieldTest(unittest.TestCase): """Tests for acme.jose.json_util.Field.""" + def test_no_omit_boolean(self): + from acme.jose.json_util import Field + for default, omitempty, value in itertools.product( + [True, False], [True, False], [True, False]): + self.assertFalse( + Field("foo", default=default, omitempty=omitempty).omit(value)) + def test_descriptors(self): mock_value = mock.MagicMock()