def test_nothing_happens_when_status_is_not_to_sign(self): evt = mock.MagicMock(payload={"action": "update", "bucket_id": "a", "collection_id": "b"}, impacted_objects=[{ "new": {"id": "b", "status": "signed"}}]) sign_collection_data(evt, resources=utils.parse_resources("a/b -> c/d"), to_review_enabled=True) assert not self.updater_mocked.sign_and_update_destination.called
def test_updater_is_called_when_resource_and_status_matches(self): evt = mock.MagicMock(payload={ "bucket_id": "a", "collection_id": "b" }, impacted_records=[{ "new": { "id": "b", "status": "to-sign" } }]) evt.request.registry.storage = mock.sentinel.storage evt.request.registry.permission = mock.sentinel.permission evt.request.registry.signers = { "/buckets/a/collections/b": mock.sentinel.signer } evt.request.route_path.return_value = "/v1/buckets/a/collections/b" sign_collection_data(evt, resources=utils.parse_resources("a/b;c/d")) self.updater_mocked.assert_called_with( signer=mock.sentinel.signer, storage=mock.sentinel.storage, permission=mock.sentinel.permission, source={ "bucket": "a", "collection": "b" }, destination={ "bucket": "c", "collection": "d" }) mocked = self.updater_mocked.return_value assert mocked.sign_and_update_destination.called
def test_kinto_attachment_property_is_set_to_allow_metadata_updates(self): evt = mock.MagicMock(payload={"action": "update", "bucket_id": "a", "collection_id": "b"}, impacted_objects=[{ "new": {"id": "b", "status": "to-sign"}}]) evt.request.registry.storage = mock.sentinel.storage evt.request.registry.permission = mock.sentinel.permission evt.request.registry.signers = { "/buckets/a/collections/b": mock.sentinel.signer } evt.request.route_path.return_value = "/v1/buckets/a/collections/b" sign_collection_data(evt, resources=utils.parse_resources("a/b -> c/d"), to_review_enabled=True) assert evt.request._attachment_auto_save is True
def test_nothing_happens_when_status_is_not_to_sign(self): evt = mock.MagicMock(payload={ "bucket_id": "a", "collection_id": "b" }, impacted_records=[{ "new": { "id": "b", "status": "signed" } }]) sign_collection_data(evt, resources=utils.parse_resources("a/b;c/d")) assert not self.updater_mocked.sign_and_update_destination.called
def test_kinto_attachment_property_is_set_to_allow_metadata_updates(self): evt = mock.MagicMock(payload={ "bucket_id": "a", "collection_id": "b" }, impacted_records=[{ "new": { "id": "b", "status": "to-sign" } }]) evt.request.registry.storage = mock.sentinel.storage evt.request.registry.permission = mock.sentinel.permission evt.request.registry.signers = { "/buckets/a/collections/b": mock.sentinel.signer } evt.request.route_path.return_value = "/v1/buckets/a/collections/b" sign_collection_data(evt, resources=utils.parse_resources("a/b;c/d")) assert evt.request._attachment_auto_save is True
def test_updater_is_called_when_resource_and_status_matches(self): evt = mock.MagicMock(payload={"bucket_id": "a", "collection_id": "b"}, impacted_records=[{ "new": {"id": "b", "status": "to-sign"}}]) evt.request.registry.storage = mock.sentinel.storage evt.request.registry.permission = mock.sentinel.permission evt.request.registry.signers = { "/buckets/a/collections/b": mock.sentinel.signer } evt.request.route_path.return_value = "/v1/buckets/a/collections/b" sign_collection_data(evt, resources=utils.parse_resources("a/b;c/d")) self.updater_mocked.assert_called_with( signer=mock.sentinel.signer, storage=mock.sentinel.storage, permission=mock.sentinel.permission, source={"bucket": "a", "collection": "b"}, destination={"bucket": "c", "collection": "d"}) mocked = self.updater_mocked.return_value assert mocked.sign_and_update_destination.called
def test_updater_does_not_fail_when_payload_is_inconsistent(self): # This happens with events on default bucket for kinto < 3.3 evt = mock.MagicMock(payload={"action": "update", "subpath": "collections/boom"}) sign_collection_data(evt, resources=utils.parse_resources("a/b -> c/d"), to_review_enabled=True)
def test_nothing_happens_when_resource_is_not_configured(self): evt = mock.MagicMock(payload={"action": "update", "bucket_id": "a", "collection_id": "b"}) sign_collection_data(evt, resources=utils.parse_resources("c/d -> e/f"), to_review_enabled=True) assert not self.updater_mocked.called
def test_updater_does_not_fail_when_payload_is_inconsistent(self): # This happens with events on default bucket for kinto < 3.3 evt = mock.MagicMock(payload={"subpath": "collections/boom"}) sign_collection_data(evt, resources=utils.parse_resources("a/b;c/d"))
def test_nothing_happens_when_resource_is_not_configured(self): evt = mock.MagicMock(payload={"bucket_id": "a", "collection_id": "b"}) sign_collection_data(evt, resources=utils.parse_resources("c/d;e/f")) assert not self.updater_mocked.called