@property
    def deletable(self):
        return not self.environments.exists()


    # @@@ this protection should apply to queryset.delete as well
We can handle exceptions in the ALPN select callback.
dataset/ETHPy150Open mozilla/moztrap/moztrap/model/environments/models.py/Element.deletable--crossover with--dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/pyopenssl/OpenSSL/test/test_ssl.py/ApplicationLayerProtoNegotiationTests.test_alpn_callback_exception