Skip to content

Commit

Permalink
Added test to ensure that PulseStorage duplicate id check is consiste…
Browse files Browse the repository at this point in the history
…nt over several instantiations.
  • Loading branch information
lumip committed Jul 13, 2018
1 parent 42b888d commit ae21951
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions tests/serialization_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -865,6 +865,34 @@ def test_deserialize_twice_same_object_storage_is_default_registry(self) -> None
self.assertIs(deserialized_1, deserialized_2)
self.assertEqual(deserialized_1, serializable)

@unittest.mock.patch('qctoolkit.serialization.default_pulse_registry', None)
def test_consistent_over_instances(self) -> None:
# tests that PulseStorage behaves consistently over several instance (especially with regards to duplicate test)
# demonstrates issue #273
identifier = 'hugo'
hidden_serializable = DummySerializable(identifier=identifier, foo='bar')
serializable = DummySerializable(identifier=identifier, data={'abc': 123, 'cde': 'fgh'})

backend = DummyStorageBackend()

pulse_storage = PulseStorage(backend)
pulse_storage[identifier] = hidden_serializable
with self.assertRaises(RuntimeError):
pulse_storage[identifier] = serializable
deserialized = pulse_storage[serializable.identifier]
self.assertEqual(hidden_serializable, deserialized)

pulse_storage = PulseStorage(backend)
with self.assertRaises(RuntimeError):
pulse_storage[serializable.identifier] = serializable
deserialized = pulse_storage[serializable.identifier]
self.assertEqual(hidden_serializable, deserialized)

pulse_storage = PulseStorage(backend)
deserialized = pulse_storage[serializable.identifier]
self.assertEqual(hidden_serializable, deserialized)


class JSONSerializableDecoderTests(unittest.TestCase):
def test_filter_serializables(self):
storage = dict(asd='asd_value')
Expand Down

0 comments on commit ae21951

Please sign in to comment.