class BaseProtocolTestCase(TwistedTestCase):
    """Reusable part of ProtocolTestCase."""

    heartbeat_interval = 0
    timeout = 120
    maxDiff = None

    @property
    def port(self):
        """The TCP port where the server listens."""
        return self.service.port

    @defer.inlineCallbacks
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        logger.info("starting test %s", self.id())
        self.ssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM,
                                                server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)

        self._state = State()
        self.service = StorageServerService(
            0,
            auth_provider_class=self.auth_provider_class,
            status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()

    @defer.inlineCallbacks
    def tearDown(self):
        """Tear down after testing."""
        yield self.service.stopService()
        logger.info("finished test %s", self.id())
        yield super(BaseProtocolTestCase, self).tearDown()

    def make_user(self, username=None, **kwargs):
        if username is None:
            username = self.factory.get_unique_string()
        return services.make_storage_user(username=username, **kwargs)
class BaseProtocolTestCase(TwistedTestCase):
    """Reusable part of ProtocolTestCase."""

    heartbeat_interval = 0
    timeout = 120

    @property
    def port(self):
        """The TCP port where the server listens."""
        return self.service.port

    @defer.inlineCallbacks
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        logger.info("starting test %s", self.id())
        self.ssl_cert = crypto.load_certificate(
            crypto.FILETYPE_PEM, server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)

        self._state = State()
        self.service = StorageServerService(
            0, auth_provider_class=self.auth_provider_class, status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()

    @defer.inlineCallbacks
    def tearDown(self):
        """Tear down after testing."""
        yield self.service.stopService()
        logger.info("finished test %s", self.id())
        yield super(BaseProtocolTestCase, self).tearDown()

    def make_user(self, username=None, **kwargs):
        if username is None:
            username = self.factory.get_unique_string()
        return services.make_storage_user(username=username, **kwargs)
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        logger.info("starting test %s", self.id())
        self.ssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM,
                                                server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)

        self._state = State()
        self.service = StorageServerService(
            0,
            auth_provider_class=self.auth_provider_class,
            status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        logger.info("starting test %s", self.id())
        self.ssl_cert = crypto.load_certificate(
            crypto.FILETYPE_PEM, server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)

        self._state = State()
        self.service = StorageServerService(
            0, auth_provider_class=self.auth_provider_class, status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()