Пример #1
0
    def setUp(self):
        for i in range(10):
            print
        print "Setup"
        self.persistDir = tempfile.mktemp()
        os.mkdir(self.persistDir)

        self.initiatorState = None
        self.acceptorState = None

        self.storedInitiatorStates = []
        self.storedAcceptorStates = []

        self.ic = InitiatorClient(self.initiatorHeartbeat,
                                  self.initiatorStateChange)
        self.ac = InitiatorClient(self.acceptorHeartbeat,
                                  self.acceptorStateChange)

        self.timesInitiatorEnteredNormalMessageProcessing = 0
        self.timesAcceptorEnteredNormalMessageProcessing = 0

        self.sendConfig = SessionConfig(
            'initiator',
            0,
            'localhost',
            'INITIATOR',
            'ACCEPTOR',
            os.path.join(self.persistDir, "sender"),  # Will be tempfile
            60,
            self.ic)

        self.receiveConfig = SessionConfig(
            'acceptor',
            0,
            None,
            'ACCEPTOR',
            'INITIATOR',
            os.path.join(self.persistDir, "receiver"),
            60,
            self.ac,
        )

        config = [self.sendConfig, self.receiveConfig]
        self.sm = SessionManager(fix, config)

        # These are the series of state transitions the acceptor and initiator
        # will go through during test lifecycle
        self.acceptorStateChanges = [(AcceptorAwaitingLogon,
                                      NormalMessageProcessing),
                                     (NormalMessageProcessing, LoggedOut)]

        self.initiatorStateChanges = [
            (InitiatorAwaitingLogon, NormalMessageProcessing),
            (NormalMessageProcessing, AwaitingLogout),
            (AwaitingLogout, LoggedOut)
        ]

        self.acceptorSession = self.sm.acceptorsByTuple.values()[0]
        self.initiatorSession = self.sm.initiatorsByTuple.values()[0]
Пример #2
0
        msg_seq_um = my_order.get_header_field_value(fix.MsgSeqNum)
        print "SENDING ORDER >> %s %s %s" % (msg_seq_um, my_order, message_string)
        self.protocol.transport.write(message_string)

    def on_execution(self, prot, msg, seq, possDup):
        print "Got an execution ! %s" % possDup
        print "State is %s" % self.state
        msg.dump()
        self.session.logoff(False)

    def recovered_execution(self, *args):
        print "Recoverred ! %s" % str(args)
        #msg.dump()

    def on_recovered_new_order_single(self, *args):
        print "Recoverred ! %s" % str(args)


config = yaml.load(open('../config/sender.yaml', 'r'))
senderConfig = makeConfig(config)
for x in senderConfig:
    x.app = Sender(fix)

if __name__ == '__main__':
    sessionManager = SessionManager(fix, senderConfig)
    for x in senderConfig:
        x.app.recover()

    sessionManager.getConnected()
    reactor.run()
Пример #3
0
                f.OrdStatus.FILLED,
                msg.get_field(f.Symbol),
                msg.get_field(f.Side),
                f.LeavesQty(0),
                f.CumQty(order_qty),
                f.LastShares(order_qty),
                f.LastPx(101.5),
                f.AvgPx(101.5)])

            assert self.protocol is not None
            assert self.session is not None
            message_string = self.session.compile_message(reply)
            print ">>>MYEXEC %s %s" % (reply, message_string)
            self.protocol.transport.write(message_string)
        else:
            msg.get_header_field_value(f.PossDupFlag, default=False)

config = yaml.load(open('../config/receiver.yaml', 'r'))

if __name__ == '__main__':
    receiverConfig = makeConfig(config)
    for x in receiverConfig:
        x.app = Receiver(fix)

    sm = SessionManager(fix, receiverConfig)
    from twisted.internet import reactor

    print "About to listen"
    sm.getConnected()
    reactor.run()
Пример #4
0
                msg.get_field(f.Side),
                f.LeavesQty(0),
                f.CumQty(order_qty),
                f.LastShares(order_qty),
                f.LastPx(101.5),
                f.AvgPx(101.5)
            ])

            assert self.protocol is not None
            assert self.session is not None
            message_string = self.session.compile_message(reply)
            print ">>>MYEXEC %s %s" % (reply, message_string)
            self.protocol.transport.write(message_string)
        else:
            msg.get_header_field_value(f.PossDupFlag, default=False)


config = yaml.load(open('../config/receiver.yaml', 'r'))

if __name__ == '__main__':
    receiverConfig = makeConfig(config)
    for x in receiverConfig:
        x.app = Receiver(fix)

    sm = SessionManager(fix, receiverConfig)
    from twisted.internet import reactor

    print "About to listen"
    sm.getConnected()
    reactor.run()
Пример #5
0
        print "SENDING ORDER >> %s %s %s" % (msg_seq_um, my_order,
                                             message_string)
        self.protocol.transport.write(message_string)

    def on_execution(self, prot, msg, seq, possDup):
        print "Got an execution ! %s" % possDup
        print "State is %s" % self.state
        msg.dump()
        self.session.logoff(False)

    def recovered_execution(self, *args):
        print "Recoverred ! %s" % str(args)
        #msg.dump()

    def on_recovered_new_order_single(self, *args):
        print "Recoverred ! %s" % str(args)


config = yaml.load(open('../config/sender.yaml', 'r'))
senderConfig = makeConfig(config)
for x in senderConfig:
    x.app = Sender(fix)

if __name__ == '__main__':
    sessionManager = SessionManager(fix, senderConfig)
    for x in senderConfig:
        x.app.recover()

    sessionManager.getConnected()
    reactor.run()