Example #1
0
 def _create_dummy_and_eat_banner(self, device, port = None):
     protocol = Dummy(device = device)
     protocol.connect(device.hostname, port)
     self.assertEqual(str(protocol.buffer), '')
     self.assertEqual(protocol.response, None)
     protocol.expect(re.compile(re.escape(self.banner)))
     self.assertEqual(protocol.response, '')
     return protocol
Example #2
0
 def __init__(self, *args, **kwargs):
     device = IOSEmulator('dummy', strict = False)
     Dummy.__init__(self, device = device, **kwargs)
Example #3
0
 def __init__(self, *args, **kwargs):
     device = IOSEmulator('dummy', strict=False)
     Dummy.__init__(self, device=device, **kwargs)
Example #4
0
class DummyTest(ProtocolTest):
    CORRELATE = Dummy

    def createProtocol(self):
        self.protocol = Dummy(device = self.device)

    def testConstructor(self):
        self.assert_(isinstance(self.protocol, Dummy))

    def testIsDummy(self):
        self.assert_(self.protocol.is_dummy())

    def _create_dummy_and_eat_banner(self, device, port = None):
        protocol = Dummy(device = device)
        protocol.connect(device.hostname, port)
        self.assertEqual(str(protocol.buffer), '')
        self.assertEqual(protocol.response, None)
        protocol.expect(re.compile(re.escape(self.banner)))
        self.assertEqual(protocol.response, '')
        return protocol

    def testDummy(self):
        # Test simple instance with banner.
        protocol = Dummy(device = self.device)
        protocol.connect('testhost')
        self.assertEqual(str(protocol.buffer), '')
        self.assertEqual(protocol.response, None)
        protocol.close()

        # Test login.
        protocol = Dummy(device = self.device)
        protocol.connect('testhost')
        self.assertEqual(str(protocol.buffer), '')
        self.assertEqual(protocol.response, None)
        protocol.login(self.account, flush = False)
        self.assertEqual(protocol.buffer.tail(len(self.prompt)), self.prompt)
        protocol.close()

        # Test login with user prompt.
        device = VirtualDevice(self.hostname,
                               echo       = True,
                               login_type = VirtualDevice.LOGIN_TYPE_USERONLY)
        protocol = self._create_dummy_and_eat_banner(device)
        self.assertEqual(str(protocol.buffer), 'User: '******'Password: '******'User: '******'')
        self.assertEqual(protocol.response, self.user + '\r')
        protocol.close()

        # Test login with password prompt and wait parameter.
        device = VirtualDevice(self.hostname,
                               echo       = True,
                               login_type = VirtualDevice.LOGIN_TYPE_PASSWORDONLY)
        protocol = self._create_dummy_and_eat_banner(device)
        self.assertEqual(str(protocol.buffer), 'Password: '******'')
        self.assertEqual(protocol.response, self.password + '\r')
        protocol.close()

        # Test login with port number.
        protocol = self._create_dummy_and_eat_banner(device, 1234)
        self.assertEqual(str(protocol.buffer), 'Password: '******'')
        self.assertEqual(protocol.response, self.password + '\r')
        protocol.close()

        # Test a custom response.
        device = VirtualDevice(self.hostname,
                               echo       = True,
                               login_type = VirtualDevice.LOGIN_TYPE_NONE)
        protocol = Dummy(device = device)
        command  = re.compile(r'testcommand')
        response = 'hello world\r\n%s> ' % self.hostname
        device.add_command(command, response, prompt = False)
        protocol.set_prompt(re.compile(r'> $'))
        protocol.connect('testhost')
        protocol.expect(re.compile(re.escape(self.banner)))
        self.assertEqual(protocol.response, '')
        self.assertEqual(str(protocol.buffer), self.prompt)
        protocol.expect_prompt()
        self.assertEqual(str(protocol.buffer), '')
        self.assertEqual(protocol.response, self.hostname)
        protocol.execute('testcommand')
        expected = 'testcommand\rhello world\r\n' + self.hostname
        self.assertEqual(protocol.response, expected)
        self.assertEqual(str(protocol.buffer), '')
        protocol.close()
Example #5
0
 def createProtocol(self):
     self.protocol = Dummy(device = self.device)
Example #6
0
 def createProtocol(self):
     self.protocol = Dummy(device=self.device, timeout=1)
Example #7
0
 def createProtocol(self):
     self.protocol = Dummy(device=self.device, timeout=1)