class TestConsole(unittest.TestCase): @patch('jnpr.junos.transport.tty_telnet.Telnet._tty_open') @patch('jnpr.junos.transport.tty_telnet.telnetlib.Telnet.expect') @patch('jnpr.junos.transport.tty_telnet.Telnet.write') def setUp(self, mock_write, mock_expect, mock_open): tty_netconf.open = MagicMock() mock_expect.side_effect=[(1, re.search('(?P<login>ogin:\s*$)', "login: "******"password: "******"junos % "), '\r\r\nroot@device:~ # ')] self.dev = Console(host='1.1.1.1', user='******', password='******', mode = 'Telnet') self.dev.open() @patch('jnpr.junos.transport.tty.tty_netconf.close') @patch('jnpr.junos.transport.tty_telnet.telnetlib.Telnet.expect') @patch('jnpr.junos.transport.tty_telnet.Telnet.write') def tearDown(self, mock_write, mock_expect, mock_nc_close): mock_expect.side_effect = [(1, re.search('(?P<cli>[^\\-"]>\s*$)', "cli>"), '\r\r\nroot@device>'), (2, re.search('(?P<shell>%|#\s*$)', "junos %"), '\r\r\nroot@device:~ # '), (3, re.search('(?P<login>ogin:\s*$)', "login: "******"""<policy-options> <policy-statement> <name>F5-in</name> <term> <name>testing</name> <then> <accept/> </then> </term> <from> <protocol>mpls</protocol> </from> </policy-statement> </policy-options>""" mock_read_until.return_value = """ <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.2I0/junos"> <load-configuration-results> <ok/> </load-configuration-results> </rpc-reply> ]]>]]>""" cu = Config(self.dev) cu.load(xml, format='xml') cu.commit()