You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by al...@apache.org on 2022/01/06 00:34:36 UTC
[beam] branch master updated: [BEAM-13603] Fix bug in apache_beam.utils.Shared (#16437)
This is an automated email from the ASF dual-hosted git repository.
altay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new c67bed4 [BEAM-13603] Fix bug in apache_beam.utils.Shared (#16437)
c67bed4 is described below
commit c67bed4080734fdff9ae416483ce5591a98441f8
Author: ewianda <70...@users.noreply.github.com>
AuthorDate: Wed Jan 5 19:33:34 2022 -0500
[BEAM-13603] Fix bug in apache_beam.utils.Shared (#16437)
Co-authored-by: Ahmet Altay <aa...@gmail.com>
---
sdks/python/apache_beam/utils/shared.py | 1 +
sdks/python/apache_beam/utils/shared_test.py | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/sdks/python/apache_beam/utils/shared.py b/sdks/python/apache_beam/utils/shared.py
index 23622ef..295130b 100644
--- a/sdks/python/apache_beam/utils/shared.py
+++ b/sdks/python/apache_beam/utils/shared.py
@@ -147,6 +147,7 @@ class _SharedControlBlock(object):
if result is None:
return None
self._ref = weakref.ref(result)
+ self._tag = tag
else:
result = self._ref()
return result
diff --git a/sdks/python/apache_beam/utils/shared_test.py b/sdks/python/apache_beam/utils/shared_test.py
index caba2e5..48bd182 100644
--- a/sdks/python/apache_beam/utils/shared_test.py
+++ b/sdks/python/apache_beam/utils/shared_test.py
@@ -254,6 +254,17 @@ class SharedTest(unittest.TestCase):
p2 = shared2.acquire(acquire_fn_2, tag='2')
assert p2.get_name() == 'obj_2'
+ def testTagReturnsCached(self):
+ sequence = Sequence()
+ handle = shared.Shared()
+
+ f1 = handle.acquire(sequence.make_acquire_fn(), tag='1')
+ self.assertEqual('sequence1', f1.get_name())
+
+ # should return cached
+ f1 = handle.acquire(sequence.make_acquire_fn(), tag='1')
+ self.assertEqual('sequence1', f1.get_name())
+
if __name__ == '__main__':
unittest.main()