def test_ordering_extra_keys():
    hc = HostConfig(HostName="192.168.0.20", User="******", ForwardX11=False)
    ordering = ['User', 'BindAddress']
    assert hc.lines(ordering=ordering) == [
        '    User mrzor\n', '    ForwardX11 no\n',
        '    HostName 192.168.0.20\n'
    ]
def test_ordering_partially_specified():
    hc = HostConfig(HostName="192.168.0.20", User="******", ForwardX11=False)
    ordering = ['User']
    assert hc.lines(ordering=ordering) == [
        '    User mrzor\n', '    ForwardX11 no\n',
        '    HostName 192.168.0.20\n'
    ]
def test_default_lines():
    hc = HostConfig(HostName="4.4.4.4",
                    CertificateFile="exists-or-not-we-dont-check")
    ls = hc.lines()
    assert ls == [
        '    CertificateFile exists-or-not-we-dont-check\n',
        '    HostName 4.4.4.4\n'
    ]
def test_quoting():
    hc = HostConfig(User="******")
    assert hc.lines(force_quotes=True) == ['    User "narcissus"\n']

    hc = HostConfig(User="******")
    assert hc.lines() == ['    User "narcissus maximus"\n']
    assert hc.lines(force_quotes=True) == ['    User "narcissus maximus"\n']
Example #5
0
def test_append_host_using_defaults():
    conf = SSHConfig(_test_file_path("exhibit_4"))
    assert not conf.dirty
    conf.update_host("new_host", "30.30.30.30", "1234321",
                     HostConfig.default_config())
    assert conf.dirty
    assert conf._lines == [
        f'{_BEGIN_MARKER}\n', '\n', 'Host new_host\n',
        '    HostName 30.30.30.30\n',
        '    IdentityFile /home/zor/.ssh/google_compute_engine\n',
        '    UserKnownHostsFile /home/zor/.ssh/google_compute_known_hosts\n',
        '    HostKeyAlias compute.1234321\n', '    IdentitiesOnly yes\n',
        '    CheckHostIP no\n', f'{_END_MARKER}\n', '\n'
    ]
Example #6
0
def test_append_host_in_empty_file():
    with NamedTemporaryFile(mode="r", encoding="UTF-8") as f:
        conf = SSHConfig(f.name)
        assert conf.dirty  # should have markers
        #        import pdb; pdb.set_trace()
        conf.update_host("new_host", "30.30.30.30", "1234321",
                         HostConfig.default_config())

        assert conf._lines == [
            '\n', f'{_BEGIN_MARKER}\n', f'{_GCSS_COMMENT}\n', '\n',
            'Host new_host\n', '    HostName 30.30.30.30\n',
            '    IdentityFile /home/zor/.ssh/google_compute_engine\n',
            '    UserKnownHostsFile /home/zor/.ssh/google_compute_known_hosts\n',
            '    HostKeyAlias compute.1234321\n', '    IdentitiesOnly yes\n',
            '    CheckHostIP no\n', f'{_END_MARKER}\n'
        ]
def test_multiple_values():
    hc = HostConfig(LocalForward=['lf1', 'lf2', 'lf3'], User="******")
    assert len(hc.lines()) == 4
def test_custom_indent():
    hc = HostConfig(User="******")
    assert hc.lines(indent="") == ['User narcissus\n']
    assert hc.lines(indent="\t") == ['\tUser narcissus\n']
def test_custom_separator():
    hc = HostConfig(User="******")
    assert hc.lines(separator="=") == ['    User=narcissus\n']
    assert hc.lines(separator=" = ") == ['    User = narcissus\n']
Example #10
0
def test_custom_casing():
    hc = HostConfig(HostName="192.168.0.20", User="******")
    assert hc.lines(casings=["HoStNaMe", "USER"]) == [
        '    HoStNaMe 192.168.0.20\n', '    USER mrzor\n'
    ]
Example #11
0
def test_empty():
    hc = HostConfig()
    assert not hc.minidict()
Example #12
0
def test_ordering_default():
    hc = HostConfig(HostName="192.168.0.20", User="******", ForwardX11=False)
    assert hc.lines() == [
        '    ForwardX11 no\n', '    HostName 192.168.0.20\n',
        '    User mrzor\n'
    ]