From 8ebff6d290d0d642db8b15ceb0825cdccd677e4d Mon Sep 17 00:00:00 2001 From: Derek Visch Date: Mon, 12 Jun 2023 15:25:34 -0400 Subject: [PATCH 1/2] Test SSH keys seperately --- tests/test_ssh_tunnel.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/test_ssh_tunnel.py b/tests/test_ssh_tunnel.py index 86169eec..fb0e6507 100644 --- a/tests/test_ssh_tunnel.py +++ b/tests/test_ssh_tunnel.py @@ -7,7 +7,37 @@ from tap_postgres.tap import TapPostgres TABLE_NAME = "test_replication_key" -SAMPLE_CONFIG = { +SAMPLE_CONFIG_DSA = { + "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", + "ssh_tunnel": { + "enable": True, + "host": "127.0.0.1", + "port": 2223, + "username": "melty", + "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsQAAAAdzc2gtZH\nNzAAAAgQDSZjQVKBCj57wXTZTFusc/Amp5wet2ugo/Mh+86+v2WDbluFztNZXTA3EtX8p6\nzZtoLZJ/+VCtLqZD7MjJIt4/bPhOjyXOlbtIwL7w80drTxMFBOvuBQkD+TqIzaONwzsN5b\nGcQNACpyz4C2eSUP4KOmOrKXovFI6pMQ22lbqrrQAAABUAv4qw6qJkET1T4J8o0RgzoxNI\nTFkAAACAQQ5w7+2rPlC/GP9ScUCQZTicgzAYlTNOCvIcO4pRj7E1NwNMuafl6xNRjrIYBp\nOqMhDLIBx15Yob0J/6PpE65oeQ8Lq8QboZxO8bio0FGt4qE6mXB4vJq2oOwQkWHzH64x9l\nfmFQNe8KRpd0G/daXBgeF+FEqV2vVsjsjKXxwncAAACAFRvMwvnkzX/c2MaWx78+HJEjjf\nATYt2acoLAH2YRwnhavQyEScNQDiZnBbIr2J21ccvGvFyZT2dtcz83pwFDa9o7Y41EWQG7\nifRPYrj9aHd3TyxeiSGSZlna9ekcfXbIF7+aRHSyEie/YIYUGm73jCW+TDcXK1nQHu7tGL\n1KkBQAAAHox++oGsfvqBoAAAAHc3NoLWRzcwAAAIEA0mY0FSgQo+e8F02UxbrHPwJqecHr\ndroKPzIfvOvr9lg25bhc7TWV0wNxLV/Kes2baC2Sf/lQrS6mQ+zIySLeP2z4To8lzpW7SM\nC+8PNHa08TBQTr7gUJA/k6iM2jjcM7DeWxnEDQAqcs+AtnklD+Cjpjqyl6LxSOqTENtpW6\nq60AAAAVAL+KsOqiZBE9U+CfKNEYM6MTSExZAAAAgEEOcO/tqz5Qvxj/UnFAkGU4nIMwGJ\nUzTgryHDuKUY+xNTcDTLmn5esTUY6yGAaTqjIQyyAcdeWKG9Cf+j6ROuaHkPC6vEG6GcTv\nG4qNBRreKhOplweLyatqDsEJFh8x+uMfZX5hUDXvCkaXdBv3WlwYHhfhRKldr1bI7Iyl8c\nJ3AAAAgBUbzML55M1/3NjGlse/PhyRI43wE2LdmnKCwB9mEcJ4Wr0MhEnDUA4mZwWyK9id\ntXHLxrxcmU9nbXM/N6cBQ2vaO2ONRFkBu4n0T2K4/Wh3d08sXokhkmZZ2vXpHH12yBe/mk\nR0shInv2CGFBpu94wlvkw3FytZ0B7u7Ri9SpAUAAAAFAZscEj14jPPE+Znbk4FflEe6t2r\nAAAAE3Jvb3RAb3BlbnNzaC1zZXJ2ZXI=\n-----END OPENSSH PRIVATE KEY-----", + }, +} +SAMPLE_CONFIG_ECDSA = { + "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", + "ssh_tunnel": { + "enable": True, + "host": "127.0.0.1", + "port": 2223, + "username": "melty", + "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS\n1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQS9T8ajwjHV1Xl705ShFqry77rS7wrh\nlCN0a4Hf33yapuCBKCRDr+/Y7gISoiER3rez56TQCvIFuKUEgCUsTMSWAAAAsFXWKa1V1i\nmtAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL1PxqPCMdXVeXvT\nlKEWqvLvutLvCuGUI3Rrgd/ffJqm4IEoJEOv79juAhKiIRHet7PnpNAK8gW4pQSAJSxMxJ\nYAAAAhAOe2L6cmoGh4gZ++o+GiqMQ2WQ3RUfle/gc0G1nhLPhWAAAAE3Jvb3RAb3BlbnNz\naC1zZXJ2ZXIBAgME\n-----END OPENSSH PRIVATE KEY-----", + }, +} +SAMPLE_CONFIG_ED25519 = { + "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", + "ssh_tunnel": { + "enable": True, + "host": "127.0.0.1", + "port": 2223, + "username": "melty", + "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW\nQyNTUxOQAAACCjD/qc+T3Cc/k2pbjOUFW0OobeLnoWUAoaBhTQchI26wAAAJgismUyIrJl\nMgAAAAtzc2gtZWQyNTUxOQAAACCjD/qc+T3Cc/k2pbjOUFW0OobeLnoWUAoaBhTQchI26w\nAAAECV2axXFduGtP3RS1f97smocwVLphmETzpWdwi89jWrJaMP+pz5PcJz+TaluM5QVbQ6\nht4uehZQChoGFNByEjbrAAAAE3Jvb3RAb3BlbnNzaC1zZXJ2ZXIBAg==\n-----END OPENSSH PRIVATE KEY-----", + }, +} +SAMPLE_CONFIG_RSA = { "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", "ssh_tunnel": { "enable": True, From 317c0042d0a371e05607adfe6e3a97bc2082c697 Mon Sep 17 00:00:00 2001 From: Derek Visch Date: Mon, 12 Jun 2023 15:52:09 -0400 Subject: [PATCH 2/2] Test SSH keys seperately --- tests/test_ssh_tunnel.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/tests/test_ssh_tunnel.py b/tests/test_ssh_tunnel.py index fb0e6507..ce742123 100644 --- a/tests/test_ssh_tunnel.py +++ b/tests/test_ssh_tunnel.py @@ -2,21 +2,13 @@ import json import pendulum +import pytest from singer_sdk.testing.templates import TapTestTemplate from tap_postgres.tap import TapPostgres TABLE_NAME = "test_replication_key" -SAMPLE_CONFIG_DSA = { - "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", - "ssh_tunnel": { - "enable": True, - "host": "127.0.0.1", - "port": 2223, - "username": "melty", - "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsQAAAAdzc2gtZH\nNzAAAAgQDSZjQVKBCj57wXTZTFusc/Amp5wet2ugo/Mh+86+v2WDbluFztNZXTA3EtX8p6\nzZtoLZJ/+VCtLqZD7MjJIt4/bPhOjyXOlbtIwL7w80drTxMFBOvuBQkD+TqIzaONwzsN5b\nGcQNACpyz4C2eSUP4KOmOrKXovFI6pMQ22lbqrrQAAABUAv4qw6qJkET1T4J8o0RgzoxNI\nTFkAAACAQQ5w7+2rPlC/GP9ScUCQZTicgzAYlTNOCvIcO4pRj7E1NwNMuafl6xNRjrIYBp\nOqMhDLIBx15Yob0J/6PpE65oeQ8Lq8QboZxO8bio0FGt4qE6mXB4vJq2oOwQkWHzH64x9l\nfmFQNe8KRpd0G/daXBgeF+FEqV2vVsjsjKXxwncAAACAFRvMwvnkzX/c2MaWx78+HJEjjf\nATYt2acoLAH2YRwnhavQyEScNQDiZnBbIr2J21ccvGvFyZT2dtcz83pwFDa9o7Y41EWQG7\nifRPYrj9aHd3TyxeiSGSZlna9ekcfXbIF7+aRHSyEie/YIYUGm73jCW+TDcXK1nQHu7tGL\n1KkBQAAAHox++oGsfvqBoAAAAHc3NoLWRzcwAAAIEA0mY0FSgQo+e8F02UxbrHPwJqecHr\ndroKPzIfvOvr9lg25bhc7TWV0wNxLV/Kes2baC2Sf/lQrS6mQ+zIySLeP2z4To8lzpW7SM\nC+8PNHa08TBQTr7gUJA/k6iM2jjcM7DeWxnEDQAqcs+AtnklD+Cjpjqyl6LxSOqTENtpW6\nq60AAAAVAL+KsOqiZBE9U+CfKNEYM6MTSExZAAAAgEEOcO/tqz5Qvxj/UnFAkGU4nIMwGJ\nUzTgryHDuKUY+xNTcDTLmn5esTUY6yGAaTqjIQyyAcdeWKG9Cf+j6ROuaHkPC6vEG6GcTv\nG4qNBRreKhOplweLyatqDsEJFh8x+uMfZX5hUDXvCkaXdBv3WlwYHhfhRKldr1bI7Iyl8c\nJ3AAAAgBUbzML55M1/3NjGlse/PhyRI43wE2LdmnKCwB9mEcJ4Wr0MhEnDUA4mZwWyK9id\ntXHLxrxcmU9nbXM/N6cBQ2vaO2ONRFkBu4n0T2K4/Wh3d08sXokhkmZZ2vXpHH12yBe/mk\nR0shInv2CGFBpu94wlvkw3FytZ0B7u7Ri9SpAUAAAAFAZscEj14jPPE+Znbk4FflEe6t2r\nAAAAE3Jvb3RAb3BlbnNzaC1zZXJ2ZXI=\n-----END OPENSSH PRIVATE KEY-----", - }, -} +# Didn't test DSA keys as the generated keys wasn't working for me, and they aren't used heavily anymore that I know of SAMPLE_CONFIG_ECDSA = { "sqlalchemy_url": "postgresql://postgres:postgres@10.5.0.5:5432/main", "ssh_tunnel": { @@ -49,7 +41,10 @@ } -def test_ssh_tunnel(): +@pytest.mark.parametrize( + "config", [(SAMPLE_CONFIG_ECDSA), (SAMPLE_CONFIG_ED25519), (SAMPLE_CONFIG_RSA)] +) +def test_ssh_tunnel(config): """We expect the SSH environment to already be up""" - tap = TapPostgres(config=SAMPLE_CONFIG) + tap = TapPostgres(config=config) tap.sync_all()