def test_routing_via_two_other_hosts(self):
     advssh = AdvancedSshConfig(hostname='aaa.com/bbb.com/ccc.com')
     routing = advssh.get_routing()
     self.assertEqual(routing['hostname'], 'aaa.com')
     self.assertEqual(routing['proxy_type'], 'nc')
     self.assertEqual(routing['gateways'], ['direct'])
     self.assertEqual(routing['proxy_commands'][0],
                      ['nc', '-w', 180, '-G', 5, 'aaa.com', 22])
     self.assertEqual(routing['gateway_route'], ['bbb.com', 'ccc.com'])
    def test_comment_simple(self):
        contents = """
[test]
comment = Hello
"""
        config = set_config(contents)
        advssh = AdvancedSshConfig(hostname='test',
                                   configfiles=[DEFAULT_CONFIG])
        routing = advssh.get_routing()
        self.assertEquals(routing['comment'], ['Hello'])
    def test_comment_multiline(self):
        contents = """
[test]
comment = Hello
          World
                         !

port = 22
"""
        config = set_config(contents)
        advssh = AdvancedSshConfig(hostname='test',
                                   configfiles=[DEFAULT_CONFIG])
        routing = advssh.get_routing()
        self.assertEquals(routing['comment'], ['Hello', 'World', '!'])
 def test_routing_simple(self):
     advssh = AdvancedSshConfig(hostname='test',
                                port=23,
                                verbose=True,
                                dry_run=True)
     routing = advssh.get_routing()
     self.assertEqual(routing['port'], 23)
     self.assertEqual(routing['hostname'], 'test')
     self.assertEqual(routing['reallocalcommand'], None)
     self.assertEqual(routing['gateways'], ['direct'])
     self.assertEqual(routing['verbose'], True)
     self.assertEqual(routing['proxy_type'], 'nc')
     self.assertEqual(routing['proxy_commands'][0],
                      ['nc', '-v', '-w', 180, '-G', 5, 'test', 23])
    def test_routing_via_two_other_hosts_with_config_one(self):
        contents = """
[ddd.com]
hostname = 1.2.3.4
port = 25
"""
        set_config(contents)
        advssh = AdvancedSshConfig(hostname='ddd.com/eee.com',
                                   configfiles=[DEFAULT_CONFIG])
        routing = advssh.get_routing()
        self.assertEqual(routing['hostname'], '1.2.3.4')
        self.assertEqual(routing['proxy_type'], 'nc')
        self.assertEqual(routing['gateways'], ['direct'])
        self.assertEqual(routing['proxy_commands'][0],
                         ['nc', '-w', 180, '-G', 5, '1.2.3.4', 25])
        self.assertEqual(routing['gateway_route'], ['eee.com'])
    def test_routing_config_override(self):
        contents = """
[test.com]
port = 25
"""
        set_config(contents)
        advssh = AdvancedSshConfig(hostname='test.com',
                                   port=23,
                                   verbose=True,
                                   dry_run=True,
                                   configfiles=[DEFAULT_CONFIG])
        routing = advssh.get_routing()
        self.assertEqual(routing['port'], 23)
        self.assertEqual(routing['hostname'], 'test.com')
        self.assertEqual(routing['proxy_type'], 'nc')
        self.assertEqual(routing['proxy_commands'][0],
                         ['nc', '-v', '-w', 180, '-G', 5, 'test.com', 23])