示例#1
0
 def _endpointTest(self, service):
     """
     Use L{Options} to parse a single service configuration parameter and
     verify that an endpoint of the correct type is added to the list for
     that service.
     """
     options = Options()
     options.parseOptions(['--' + service, 'tcp:1234'])
     self.assertEqual(len(options[service]), 1)
     self.assertIsInstance(
         options[service][0], endpoints.TCP4ServerEndpoint)
示例#2
0
 def _endpointTest(self, service):
     """
     Use L{Options} to parse a single service configuration parameter and
     verify that an endpoint of the correct type is added to the list for
     that service.
     """
     options = Options()
     options.parseOptions(['--' + service, 'tcp:1234'])
     self.assertEqual(len(options[service]), 1)
     self.assertIsInstance(options[service][0],
                           endpoints.TCP4ServerEndpoint)
示例#3
0
    def test_protoDefaults(self):
        """
        POP3 and SMTP each listen on a TCP4ServerEndpoint by default.
        """
        options = Options()
        options.parseOptions([])

        self.assertEqual(len(options['pop3']), 1)
        self.assertIsInstance(options['pop3'][0], endpoints.TCP4ServerEndpoint)

        self.assertEqual(len(options['smtp']), 1)
        self.assertIsInstance(options['smtp'][0], endpoints.TCP4ServerEndpoint)
示例#4
0
 def test_auth(self):
     """
     Tests that the --auth option registers a checker.
     """
     options = Options()
     options.parseOptions(['--auth', 'memory:admin:admin:bob:password'])
     self.assertEqual(len(options['credCheckers']), 1)
     checker = options['credCheckers'][0]
     interfaces = checker.credentialInterfaces
     registered_checkers = options.service.smtpPortal.checkers
     for iface in interfaces:
         self.assertEqual(checker, registered_checkers[iface])
示例#5
0
 def test_auth(self):
     """
     Tests that the --auth option registers a checker.
     """
     options = Options()
     options.parseOptions(['--auth', 'memory:admin:admin:bob:password'])
     self.assertEqual(len(options['credCheckers']), 1)
     checker = options['credCheckers'][0]
     interfaces = checker.credentialInterfaces
     registered_checkers = options.service.smtpPortal.checkers
     for iface in interfaces:
         self.assertEqual(checker, registered_checkers[iface])
示例#6
0
    def test_protoDisable(self):
        """
        The I{--no-pop3} and I{--no-smtp} options disable POP3 and SMTP
        respectively.
        """
        options = Options()
        options.parseOptions(['--no-pop3'])
        self.assertEqual(options._getEndpoints(None, 'pop3'), [])
        self.assertNotEquals(options._getEndpoints(None, 'smtp'), [])

        options = Options()
        options.parseOptions(['--no-smtp'])
        self.assertNotEquals(options._getEndpoints(None, 'pop3'), [])
        self.assertEqual(options._getEndpoints(None, 'smtp'), [])
示例#7
0
    def test_protoDefaults(self):
        """
        POP3 and SMTP each listen on a TCP4ServerEndpoint by default.
        """
        options = Options()
        options.parseOptions([])

        self.assertEqual(len(options['pop3']), 1)
        self.assertIsInstance(
            options['pop3'][0], endpoints.TCP4ServerEndpoint)

        self.assertEqual(len(options['smtp']), 1)
        self.assertIsInstance(
            options['smtp'][0], endpoints.TCP4ServerEndpoint)
示例#8
0
    def test_protoDisable(self):
        """
        The I{--no-pop3} and I{--no-smtp} options disable POP3 and SMTP
        respectively.
        """
        options = Options()
        options.parseOptions(['--no-pop3'])
        self.assertEqual(options._getEndpoints(None, 'pop3'), [])
        self.assertNotEquals(options._getEndpoints(None, 'smtp'), [])

        options = Options()
        options.parseOptions(['--no-smtp'])
        self.assertNotEquals(options._getEndpoints(None, 'pop3'), [])
        self.assertEqual(options._getEndpoints(None, 'smtp'), [])
示例#9
0
 def test_barePort(self):
     """
     A bare port passed to I{--pop3} results in deprecation warning in
     addition to a TCP4ServerEndpoint.
     """
     options = Options()
     options.parseOptions(['--pop3', '8110'])
     self.assertEqual(len(options['pop3']), 1)
     self.assertIsInstance(options['pop3'][0], endpoints.TCP4ServerEndpoint)
     warnings = self.flushWarnings([options.opt_pop3])
     self.assertEqual(len(warnings), 1)
     self.assertEqual(warnings[0]['category'], DeprecationWarning)
     self.assertEqual(
         warnings[0]['message'],
         "Specifying plain ports and/or a certificate is deprecated since "
         "Twisted 11.0; use endpoint descriptions instead.")
示例#10
0
 def test_barePort(self):
     """
     A bare port passed to I{--pop3} results in deprecation warning in
     addition to a TCP4ServerEndpoint.
     """
     options = Options()
     options.parseOptions(['--pop3', '8110'])
     self.assertEqual(len(options['pop3']), 1)
     self.assertIsInstance(
         options['pop3'][0], endpoints.TCP4ServerEndpoint)
     warnings = self.flushWarnings([options.opt_pop3])
     self.assertEqual(len(warnings), 1)
     self.assertEqual(warnings[0]['category'], DeprecationWarning)
     self.assertEqual(
         warnings[0]['message'],
         "Specifying plain ports and/or a certificate is deprecated since "
         "Twisted 11.0; use endpoint descriptions instead.")
示例#11
0
    def test_pop3sBackwardCompatibility(self):
        """
        The deprecated I{--pop3s} and I{--certificate} options set up a POP3 SSL
        server.
        """
        cert = FilePath(__file__).sibling("server.pem")
        options = Options()
        options.parseOptions(['--pop3s', '8995', '--certificate', cert.path])
        self.assertEqual(len(options['pop3']), 2)
        self.assertIsInstance(options['pop3'][0], endpoints.SSL4ServerEndpoint)
        self.assertIsInstance(options['pop3'][1], endpoints.TCP4ServerEndpoint)

        warnings = self.flushWarnings([options.postOptions])
        self.assertEqual(len(warnings), 1)
        self.assertEqual(warnings[0]['category'], DeprecationWarning)
        self.assertEqual(
            warnings[0]['message'],
            "Specifying plain ports and/or a certificate is deprecated since "
            "Twisted 11.0; use endpoint descriptions instead.")
示例#12
0
    def test_pop3sBackwardCompatibility(self):
        """
        The deprecated I{--pop3s} and I{--certificate} options set up a POP3 SSL
        server.
        """
        cert = FilePath(__file__).sibling("server.pem")
        options = Options()
        options.parseOptions(['--pop3s', '8995',
                              '--certificate', cert.path])
        self.assertEqual(len(options['pop3']), 2)
        self.assertIsInstance(
            options['pop3'][0], endpoints.SSL4ServerEndpoint)
        self.assertIsInstance(
            options['pop3'][1], endpoints.TCP4ServerEndpoint)

        warnings = self.flushWarnings([options.postOptions])
        self.assertEqual(len(warnings), 1)
        self.assertEqual(warnings[0]['category'], DeprecationWarning)
        self.assertEqual(
            warnings[0]['message'],
            "Specifying plain ports and/or a certificate is deprecated since "
            "Twisted 11.0; use endpoint descriptions instead.")