From c6285988885739891251d441ba57ffb41af84de9 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Fri, 30 Nov 2018 16:35:26 -0800 Subject: [PATCH] Fix bug preventing explicitly setting Non as partition expiration --- bigquery/google/cloud/bigquery/table.py | 5 ++++- bigquery/tests/unit/test_table.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bigquery/google/cloud/bigquery/table.py b/bigquery/google/cloud/bigquery/table.py index c145d6a9dc1c..cb72dde189b2 100644 --- a/bigquery/google/cloud/bigquery/table.py +++ b/bigquery/google/cloud/bigquery/table.py @@ -1335,7 +1335,10 @@ def expiration_ms(self): @expiration_ms.setter def expiration_ms(self, value): - self._properties["expirationMs"] = str(value) + if value is not None: + # Allow explicitly setting the expiration to None. + value = str(value) + self._properties["expirationMs"] = value @property def require_partition_filter(self): diff --git a/bigquery/tests/unit/test_table.py b/bigquery/tests/unit/test_table.py index 04a67c603ba9..d84fa6e4b1c8 100644 --- a/bigquery/tests/unit/test_table.py +++ b/bigquery/tests/unit/test_table.py @@ -1683,3 +1683,8 @@ def test___repr___explicit(self): "type=DAY)" ) self.assertEqual(repr(time_partitioning), expected) + + def test_set_expiration_w_none(self): + time_partitioning = self._make_one() + time_partitioning.expiration_ms = None + assert time_partitioning._properties["expirationMs"] is None