~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/twisted/test/stdio_test_lastwrite.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- test-case-name: twisted.test.test_stdio.StandardInputOutputTestCase.test_lastWriteReceived -*-
 
2
# Copyright (c) 2007 Twisted Matrix Laboratories.
 
3
# See LICENSE for details.
 
4
 
 
5
"""
 
6
Main program for the child process run by
 
7
L{twisted.test.test_stdio.StandardInputOutputTestCase.test_lastWriteReceived}
 
8
to test that L{os.write} can be reliably used after
 
9
L{twisted.internet.stdio.StandardIO} has finished.
 
10
"""
 
11
 
 
12
import sys
 
13
 
 
14
from twisted.internet.protocol import Protocol
 
15
from twisted.internet.stdio import StandardIO
 
16
from twisted.python.reflect import namedAny
 
17
 
 
18
 
 
19
class LastWriteChild(Protocol):
 
20
    def __init__(self, reactor, magicString):
 
21
        self.reactor = reactor
 
22
        self.magicString = magicString
 
23
 
 
24
 
 
25
    def connectionMade(self):
 
26
        self.transport.write(self.magicString)
 
27
        self.transport.loseConnection()
 
28
 
 
29
 
 
30
    def connectionLost(self, reason):
 
31
        self.reactor.stop()
 
32
 
 
33
 
 
34
 
 
35
def main(reactor, magicString):
 
36
    p = LastWriteChild(reactor, magicString)
 
37
    StandardIO(p)
 
38
    reactor.run()
 
39
 
 
40
 
 
41
 
 
42
if __name__ == '__main__':
 
43
    namedAny(sys.argv[1]).install()
 
44
    from twisted.internet import reactor
 
45
    main(reactor, sys.argv[2])