From 6b10bf93914451dc801c37bc05be9c5117b3e8a5 Mon Sep 17 00:00:00 2001 From: Lin Yang Date: Tue, 18 Dec 2018 14:59:01 -0800 Subject: [PATCH] Do not cast float to int in utils module Change-Id: I008cc1f058c8d28741b3172fb4e48dc5a2e4791d --- rsd_lib/tests/unit/test_utils.py | 4 ++++ rsd_lib/utils.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/rsd_lib/tests/unit/test_utils.py b/rsd_lib/tests/unit/test_utils.py index a90f036..23f850d 100644 --- a/rsd_lib/tests/unit/test_utils.py +++ b/rsd_lib/tests/unit/test_utils.py @@ -34,3 +34,7 @@ class UtilsTestCase(testtools.TestCase): self.assertEqual(1, rsd_lib_utils.num_or_none('1')) self.assertEqual(10, rsd_lib_utils.num_or_none('10.0')) self.assertEqual(12.5, rsd_lib_utils.num_or_none('12.5')) + self.assertEqual(0, rsd_lib_utils.num_or_none(0)) + self.assertEqual(1, rsd_lib_utils.num_or_none(1)) + self.assertEqual(10, rsd_lib_utils.num_or_none(10.0)) + self.assertEqual(12.5, rsd_lib_utils.num_or_none(12.5)) diff --git a/rsd_lib/utils.py b/rsd_lib/utils.py index 7bf71a0..4fa3380 100644 --- a/rsd_lib/utils.py +++ b/rsd_lib/utils.py @@ -31,6 +31,9 @@ def num_or_none(x): if x is None: return None + if isinstance(x, (int, float)): + return x + try: return int(x) except ValueError: