1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
# See LICENSE for details.
#
from twisted.application import strports
from twisted.trial import unittest
class ParserTestCase(unittest.TestCase):
f = "Factory"
def testSimpleNumeric(self):
self.assertEqual(strports.parse('80', self.f),
('TCP', (80, self.f), {'interface':'', 'backlog':50}))
def testSimpleTCP(self):
self.assertEqual(strports.parse('tcp:80', self.f),
('TCP', (80, self.f), {'interface':'', 'backlog':50}))
def testInterfaceTCP(self):
self.assertEqual(strports.parse('tcp:80:interface=127.0.0.1', self.f),
('TCP', (80, self.f),
{'interface':'127.0.0.1', 'backlog':50}))
def testBacklogTCP(self):
self.assertEqual(strports.parse('tcp:80:backlog=6', self.f),
('TCP', (80, self.f),
{'interface':'', 'backlog':6}))
def test_simpleUNIX(self):
"""
L{strports.parse} returns a C{'UNIX'} port description with defaults
for C{'mode'}, C{'backlog'}, and C{'wantPID'} when passed a string with
the C{'unix:'} prefix and no other parameter values.
"""
self.assertEqual(
strports.parse('unix:/var/run/finger', self.f),
('UNIX', ('/var/run/finger', self.f),
{'mode': 0666, 'backlog': 50, 'wantPID': True}))
def test_modeUNIX(self):
"""
C{mode} can be set by including C{"mode=<some integer>"}.
"""
self.assertEqual(
strports.parse('unix:/var/run/finger:mode=0660', self.f),
('UNIX', ('/var/run/finger', self.f),
{'mode': 0660, 'backlog': 50, 'wantPID': True}))
def test_wantPIDUNIX(self):
"""
C{wantPID} can be set to false by included C{"lockfile=0"}.
"""
self.assertEqual(
strports.parse('unix:/var/run/finger:lockfile=0', self.f),
('UNIX', ('/var/run/finger', self.f),
{'mode': 0666, 'backlog': 50, 'wantPID': False}))
def testAllKeywords(self):
self.assertEqual(strports.parse('port=80', self.f),
('TCP', (80, self.f), {'interface':'', 'backlog':50}))
def testEscape(self):
self.assertEqual(
strports.parse(r'unix:foo\:bar\=baz\:qux\\', self.f),
('UNIX', ('foo:bar=baz:qux\\', self.f),
{'mode': 0666, 'backlog': 50, 'wantPID': True}))
def testImpliedEscape(self):
self.assertEqual(
strports.parse(r'unix:address=foo=bar', self.f),
('UNIX', ('foo=bar', self.f),
{'mode': 0666, 'backlog': 50, 'wantPID': True}))
def testNonstandardDefault(self):
self.assertEqual(
strports.parse('filename', self.f, 'unix'),
('UNIX', ('filename', self.f),
{'mode': 0666, 'backlog': 50, 'wantPID': True}))
|