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']
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_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']
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'
    ]
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'
    ]