diff --git a/tests/clients/keys/testkey b/tests/clients/keys/testkey deleted file mode 100644 index bfa0ef6..0000000 --- a/tests/clients/keys/testkey +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 -CogUWmH6mFLCEAAAAEdGVzdAECAwQFBgc= ------END OPENSSH PRIVATE KEY----- diff --git a/tests/clients/keys/testkey.pub b/tests/clients/keys/testkey.pub deleted file mode 100644 index bf12fed..0000000 --- a/tests/clients/keys/testkey.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8sj5GxBabN2Dm56FIuB6p0fK4Q20DagrA0DFVq2M0oRqwlght7SOsQOPz5UWuuqjrnCX2ebPmrn+xDC5ZIy0KGXXYdP2i4+iuyxiBsFIf9OQTfPqjOOVxqoFw9V6B0XJEo3mhRsb8gWtX9xPO1f9YQow5K/SMbJE2jrbkya+unDaGQF04a27Z2QMlmNTHwxHZn+hBemQmT3TfqdlkJrEskfIqH0K3K/pl54NGa8COyCj8Af+/7njJmf0uvYj5cLS0Avgvg+SGFSd/jSKdYVMPqlz08lJK1z0xGrA/4aYMwwsT16vDJX1JuyuQLaKp5gH/yYvMroLSsir8/UAreLzaUhhLWQq8euNTQcZRLCRveVH+uyoARA0BSk1QU3tJdI8/1JMxN68g70vnpiv0agckzUXE5FxBsSxXJ8ajdBT+YtMLJ7zJnRNudEjkXYSxlQAbTB15ERaSUwAB0YSU+5jZIUpVnhU4zWNPxqF8It+apK2tkd7tijtWm0FKWZK+Kn8= test diff --git a/tests/clients/test1.json b/tests/clients/test1.json deleted file mode 100644 index feb0a33..0000000 --- a/tests/clients/test1.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "test1", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkLJeFw2U3PL35siEPrQIpDgP4KleX8A5wiKDvHFNUNgN7hzAA0IFYuzScuHGPx0ZEVSq3H4YVvE9/GJaMT1sfy64EeuGc7TEuoWataBXsTqPmrTI/jeSJ6Zpxadepazt/0ZJzb1aj0+P8Kqc9CnHPFaCwaa81GpYB7DvGM3BbK3u5n9/AGA5cm3QzGK/lxOu9T50MkR+bjutHa9nZDgTxc/4Ydm8rdAd5vVfC4yl0t56uRHvpZcdyJ+F5xYlJSbCG//bwaksnT2EEK/pPE0LHYRM8YBPWc8W/1HN4GFuRU9kzhPmNzIjXxOz4a/gEiHzFoDakZhdBKlo6egkhHcRF", - "allowed_ips": "*", - "secrets": { - "MY_FOO_VAL": "CUwIDDvZG8n9WLeJ8TKBRlBnL4MZQwXihyOD0eOWhCIL3+8Pigl0WhSzGuB+VcXffcEHmM9MIPrYY2wNEs/iDwGdD4HdABbJHOgW/ezUislghbcQ1FwxzgqeJ5388VZxa0d11bzhFklEl6mp2FCTFIpmM4SpowJ6ZmI9w5OwQVHEC74vP3rIls9BC3avZMVWUWhF1LTvoqacPxYJ7FMXeUyy4NW4Vi1A6blzLBRmDkDfaXLglUZX36BA1+zm1Gsjx5ziZQ9ObtmtR69Bwon6RuoqU1uEeAjWg/wL2h/7IovUcQeGKaSySi/mS7OZISJHpv2TLun8J+mVnl4NJNSzkQ==", - "MY_BAR_VAL": "V6M9uBELq5gjJjXZIHCIoXq0bTtSNXpfIk63BpT/DxJhNZvpmpaX6Bn1gQPYfzi00mR+CzY6nvAuH8fVd8nMcUhng1DdGl7fUhiDLEBBwuWaHZ/iprGA6z8ZoPDkO6bNRWI2733VYjqZ1IQHEWlt0NuzXGFwUOS60YKljd/gZ8AgKrIioV/Pvuz7JT8Ko1gLIOXzzwStPjaB3T07zTX8F3Tz1F8Vc8iYtC+Xd5lzk1AQJE3HvsDChFNXwE0fbbKxe6zQwg9XzIrkU3bwtzKaEjyOPg8uke+ZqGSgpVz5c98iWRf215pcalgF5iKrm5bFW8EhE4DgCkkSbWpzmWp27A==" - }, - "testing_private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcnNhAAAA\nAwEAAQAAAQEApCyXhcNlNzy9+bIhD60CKQ4D+CpXl/AOcIig7xxTVDYDe4cwANCBWLs0nLhxj8dG\nRFUqtx+GFbxPfxiWjE9bH8uuBHrhnO0xLqFmrWgV7E6j5q0yP43kiemacWnXqWs7f9GSc29Wo9Pj\n/CqnPQpxzxWgsGmvNRqWAew7xjNwWyt7uZ/fwBgOXJt0Mxiv5cTrvU+dDJEfm47rR2vZ2Q4E8XP+\nGHZvK3QHeb1XwuMpdLeerkR76WXHcifhecWJSUmwhv/28GpLJ09hBCv6TxNCx2ETPGAT1nPFv9Rz\neBhbkVPZM4T5jcyI18Ts+Gv4BIh8xaA2pGYXQSpaOnoJIR3ERQAAA7gH0327B9N9uwAAAAdzc2gt\ncnNhAAABAQCkLJeFw2U3PL35siEPrQIpDgP4KleX8A5wiKDvHFNUNgN7hzAA0IFYuzScuHGPx0ZE\nVSq3H4YVvE9/GJaMT1sfy64EeuGc7TEuoWataBXsTqPmrTI/jeSJ6Zpxadepazt/0ZJzb1aj0+P8\nKqc9CnHPFaCwaa81GpYB7DvGM3BbK3u5n9/AGA5cm3QzGK/lxOu9T50MkR+bjutHa9nZDgTxc/4Y\ndm8rdAd5vVfC4yl0t56uRHvpZcdyJ+F5xYlJSbCG//bwaksnT2EEK/pPE0LHYRM8YBPWc8W/1HN4\nGFuRU9kzhPmNzIjXxOz4a/gEiHzFoDakZhdBKlo6egkhHcRFAAAAAwEAAQAAAQAO+YFFom22RNxY\nLPL+jMuMZpqelXAha/RJN/Ej9ju0i+uz5gAPJvWRXBv/qoQzNtw2KeWISAARNfizUVEUEb3wT8H6\n5yFykKECjZbBvON5BzBEf2o8qUrd+HiNnTeeXKlT7o/y5wYqUc6zBsnz06LPXnvmc3FXgOoLWVqX\naMQ4EID4y1pVKSFAE4GYstS2JKrpBtCkK22MyIBhMD5+Oxgy1FN7WPUfkVBSJiKsTLuh2nlyZCt+\nZQI9H81kaiqztvl1R+VFfi2xG9YVADLatcNb+1tuQbscAY9A2zdmHurYTAmUg++VlLGUXoMtZy2u\nPYmTBKFNm7cD+okKjr9akSCBAAAAgDsH/+xzp8ia99ZyRvfObnWBhQXt7yDJOco3E34zURTmfYEv\nNVKBfnC1NHZMofBbR05ww8BqQE5z0zV050pNdEDVLs92CJpSvXAoKO99OCbPFyNNSBWYUbZajZ8G\nmVDZ9EkbK0PkeHZAYDRSWmF3Hx1RVjp0+dvWtQCjdCONtMX+AAAAgQDh1lo8a+dm5CV2vROPfYLl\nlGrLnUsZY7JmctiFBkgU7TuRDfpgN4gRM64fCmbFKetLuoe6OG7UWTyWIk1zyfV0rm52amhZJvQL\nLyKX+R90XcTUvssa6XRPMFx31FkJ5mc97HAX1qsZQpfWB6Y9u5vgUpXOgki3Ra7q/MdFEU2jgQAA\nAIEAuhnnRv8ebM/ugRkHEXvS2Mndeh/37u77HxRhUyd6bbZnzIuH9FXw9LkMOH+jnLNJqU4CKQQD\ni5faIZwSrc+u+TsQAZqvCbmhGbvM6Pjl9cI3ucp6lj7ntI3MvrzygfR168bO0KCU8KUzGsbqqTur\n0DvUcZDqCFepbaGOEXdP8sUAAAAAAQID\n-----END OPENSSH PRIVATE KEY-----\n" -} \ No newline at end of file diff --git a/tests/clients/test2.json b/tests/clients/test2.json deleted file mode 100644 index c109fbd..0000000 --- a/tests/clients/test2.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "test2", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPzsiHOLEFlTp3OiBDoYssfLfYboziOTyBXKT7O5Nd8++5JdhE0qw+4mxj3ehEhcHsmB7TU5DtwEEtbrVi4eStLD8hGTgfeGIhTHUbd7sIJhAPPPbEnW/JdJURxNZNBLiEHN5VAMYgvqVIpeYoTOk15gHHonwCpZAAmFX3X8TgkBH5sJLUW5eOx915mWcTAGm174KNhXgYAWFV0e5Q4fi6ksXv1eYXfxvGrbOQS5pgoHN21pNy7hfukF1AhTf2eAS1EXnXlt3dVzfFRI+73+vAtquifv68ECBMfeoUSkUBT7plH315Ibg4/9RCW83zJVA/JlLUnJ6Az9d7SvTCJT/R", - "allowed_ips": "*", - "secrets": { - "MY_BAR_VAL": "awE7TWONHKELcggRR24kFSkmPdsb6pANll/DEfLnB7rs5LeiPm2i8jcpvr0PZuDwvRmcZShMMJDCjqwvlh+ioCcCNNz0htH7O4Uh7ycf5+RzKzOnRWGOG5sfOBajtETjsmZf7YKGC7dd4RypZ8u0hxwY0kyCgqep8JiMjacGw8Gdz/BTDvGJ8RzWcUcwf1IjhtCBSDyC/GWPkB7uIbHqi4AUbJ6Y86T317z/NeW15sZpC/1vRW+sJeNV09lzXYMBsaya6Z1ppyUfCSEywZgCV+olp64DP570t2H8fBZkRo5Z7F2PuUpv4exWkcW5tXXv0OgH4Kwi4Zr+AHauqR/CgQ==", - "MY_FOO_VAL": "c98Jq4WYJ9gXezNipzrzCcHDFIaDsIMW+HnDE8shZxX/uELkfPIC0j6MQHPWJvxMJs2/c+unJ7yX6MWe/oSQbSfKM+5YzNhSh37fTmeJDAa1giooNg0trDEmzS3EgXuTIk5ltPkg31wCp2FDrViBERnc4QsOWXdPztKAbuJYj4/pSSU5mk4lmjnXg0fLHmK3n79wXGpMST25/LlZFUbu7n5pJZRZzth88qMu3/rvQqsDTt6JWeqBYo3A+UJnT1Me/PpDTQqvzhPKHf9IGIIN+QVYyvq+ya5kgO3fTlomIwNqznuE6Tw0nxFXP67cbc8F93+rmVyxaj2US758oX61jw==" - }, - "testing_private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcnNhAAAA\nAwEAAQAAAQEAj87IhzixBZU6dzogQ6GLLHy32G6M4jk8gVyk+zuTXfPvuSXYRNKsPuJsY93oRIXB\n7Jge01OQ7cBBLW61YuHkrSw/IRk4H3hiIUx1G3e7CCYQDzz2xJ1vyXSVEcTWTQS4hBzeVQDGIL6l\nSKXmKEzpNeYBx6J8AqWQAJhV91/E4JAR+bCS1FuXjsfdeZlnEwBpte+CjYV4GAFhVdHuUOH4upLF\n79XmF38bxq2zkEuaYKBzdtaTcu4X7pBdQIU39ngEtRF515bd3Vc3xUSPu9/rwLaron7+vBAgTH3q\nFEpFAU+6ZR99eSG4OP/UQlvN8yVQPyZS1JyegM/Xe0r0wiU/0QAAA7gH0BRKB9AUSgAAAAdzc2gt\ncnNhAAABAQCPzsiHOLEFlTp3OiBDoYssfLfYboziOTyBXKT7O5Nd8++5JdhE0qw+4mxj3ehEhcHs\nmB7TU5DtwEEtbrVi4eStLD8hGTgfeGIhTHUbd7sIJhAPPPbEnW/JdJURxNZNBLiEHN5VAMYgvqVI\npeYoTOk15gHHonwCpZAAmFX3X8TgkBH5sJLUW5eOx915mWcTAGm174KNhXgYAWFV0e5Q4fi6ksXv\n1eYXfxvGrbOQS5pgoHN21pNy7hfukF1AhTf2eAS1EXnXlt3dVzfFRI+73+vAtquifv68ECBMfeoU\nSkUBT7plH315Ibg4/9RCW83zJVA/JlLUnJ6Az9d7SvTCJT/RAAAAAwEAAQAAAQAKu8Dc0t7nj0VP\nW8/HrHmCRwbDyTCLvADnmN4ZgE9V/lyAobH8JQtFIEo9w/TPlHouagY2+LBDBov206IHMNwMDtbh\nZgv50VblrFq7Q5r6lziwoni6oROUYja0HlBubDFHbw4rIwUmsYQNoZBFpsPrSXENkPOXkProCHa2\nIXhE2G9Sk1i2Gxjwpk2gZ4zqYZd0MVs1YkySj1XyDc87JDKLZN9c0KXk0O9sTNqUp8sOospk++zx\n44zN/u3AES3F86HUjqZD2gJDLXJYAwZSFKcabLRXFMaupGw9XSEhIvb9ET3rSxqdE9/79JuyG3ep\nXUUmDfPIB/SMzCYLo9NwEXQJAAAAgFthqmQkXj84I+DrKxk4PVebufruIFkgdtN4aYVSSUvLFAzP\ngYIaBCroviUruSY1EPR25wnhADkMgJxteca/irkYS/Rg84lmGzWZvnmD6ppZTvAGqjrGkflztBkG\nGv3MNi1dALckzGHNDmQX3yjMhh8qYZiCjMCVB+7Cc94sy5B+AAAAgQDA4qIzdSDKuctl5KSFNMhN\nWdNx8KQTahuXLzmB3cMKzNPT/0ZiBbX2bIn4R+HsxYmc3eBDUuRyMrG6cMyyFujECzQdNC1Gky8L\nQDH0GyMDVlD9c4lQenk9MIr9dy9P1XfFaMMQL6z3tAkpoXugPgaimgbRGoD2MzVpRM8u9GMEpQAA\nAIEAvt0V5NSaO1odjhNJIEF5MubPIvhWLsE223rKSN0uzbYXWlA6zLaZiLmp8+InzXSuyxhvZTMx\nXCx1KqzRDPHhzCDTI7kkw3o3YFWVvmZBEm/nClTloEK8PB3/MoUu1rXQhqkKmtyf5knYdf5dZ10z\nD/d+gS2nILbdt1zuR3Hc6r0AAAAAAQID\n-----END OPENSSH PRIVATE KEY-----\n" -} \ No newline at end of file diff --git a/tests/clients/test3.json b/tests/clients/test3.json deleted file mode 100644 index dd3ea4b..0000000 --- a/tests/clients/test3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test3", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8sj5GxBabN2Dm56FIuB6p0fK4Q20DagrA0DFVq2M0oRqwlght7SOsQOPz5UWuuqjrnCX2ebPmrn+xDC5ZIy0KGXXYdP2i4+iuyxiBsFIf9OQTfPqjOOVxqoFw9V6B0XJEo3mhRsb8gWtX9xPO1f9YQow5K/SMbJE2jrbkya+unDaGQF04a27Z2QMlmNTHwxHZn+hBemQmT3TfqdlkJrEskfIqH0K3K/pl54NGa8COyCj8Af+/7njJmf0uvYj5cLS0Avgvg+SGFSd/jSKdYVMPqlz08lJK1z0xGrA/4aYMwwsT16vDJX1JuyuQLaKp5gH/yYvMroLSsir8/UAreLzaUhhLWQq8euNTQcZRLCRveVH+uyoARA0BSk1QU3tJdI8/1JMxN68g70vnpiv0agckzUXE5FxBsSxXJ8ajdBT+YtMLJ7zJnRNudEjkXYSxlQAbTB15ERaSUwAB0YSU+5jZIUpVnhU4zWNPxqF8It+apK2tkd7tijtWm0FKWZK+Kn8= test", - "allowed_ips": "*", - "secrets": { - "MY_FOO_VAL": "iEeVK30h9fecLimeTYdBxkur9YDY+YuImCY0vyWVnMCqcsoz/kvmFUwiq5Qx1hKp5kS0XILS7xsltR4UIGLMHngqM1nuY0d2K6KmiiYl7bCGImtxOs9rhm2GlBq/H91FOOI58lLXQrPE/N099X+E+qlM6PnH5JcRaMObZ9lnR2n1OnlxCeisCHZLjve1iCkAd/+0F09atQNIAymC2CkL/wCtuWZTep4LoKnwHNfy4zHDX06l0u1t6twilA9OFiqQNU62AGaTCNK/E48QyyNYweRONkAO4d2++yMBDjslGuQLS8lpruvGn8slOjHN/rv/gJD8MEhcKvaSCzacHLw5LdWDU78Hs7HZcrp9XZ81qFJnIsrkGDO+hLiKvHd5hisJOpu/V1jCUoh/XRlVlOqmei2ZDKyqrJEixT+VAdK2okB9Ap+rQ1NqYtjtigif+lYwYKRUjroY92wCTYStKWFORUpkjOO5adHWQ10Eeced3FOLrTukXB0kPDM5lnTJgk/+" - } -} \ No newline at end of file diff --git a/tests/test_admin_api.py b/tests/test_admin_api.py deleted file mode 100644 index 79acaff..0000000 --- a/tests/test_admin_api.py +++ /dev/null @@ -1,416 +0,0 @@ -"""Tests for the Admin HTTP API""" - -from ipaddress import IPv4Address -import unittest - -from fastapi.testclient import TestClient - -from sshecret.types import ClientSpecification -from sshecret.testing import TestClientSpec, TestContext, api_context -from sshecret.webapi.api import get_app_settings -from sshecret.webapi.router import app -from sshecret.crypto import ( - generate_private_key, - generate_public_key_string, - decode_string, -) - - -class TestLockUnlock(unittest.TestCase): - """Test lock and unlock.""" - - def setUp(self) -> None: - """Set up testing.""" - - def test_unlock_lock(self) -> None: - """Test unlocking.""" - with api_context([]) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - response = testclient.post( - "api/v1/auth/unlock", json={"password": context.master_password} - ) - body = response.json() - self.assertEqual(response.status_code, 200) - self.assertIn("session_id", body) - session_id = body["session_id"] - session_header = {"session-id": str(session_id)} - status_resp = testclient.get("/api/v1/auth/status", headers=session_header) - self.assertEqual(status_resp.status_code, 200) - status_body = status_resp.json() - self.assertIn("message", status_body) - self.assertEqual(str(status_body["message"]), "UNLOCKED") - lock_resp = testclient.post("/api/v1/auth/lock", headers=session_header) - self.assertEqual(lock_resp.status_code, 200) - lock_body = lock_resp.json() - lock_status = lock_body.get("message") - self.assertEqual(lock_status, "LOCKED") - - def test_get_clients(self) -> None: - """Test get clients.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - client_resp = testclient.get("/api/v1/clients") - clients = client_resp.json() - self.assertIsInstance(clients, list) - self.assertEqual(len(clients), 2) - - for client in clients: - ClientSpecification.model_validate(client) - - def test_get_client(self) -> None: - """Test get specific client.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - client_resp = testclient.get("/api/v1/clients/webserver") - self.assertEqual(client_resp.status_code, 200) - client_dict = client_resp.json() - ClientSpecification.model_validate(client_dict) - - def test_update_client(self) -> None: - """Test update client with trivial value.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - client_resp = testclient.get("/api/v1/clients/webserver") - self.assertEqual(client_resp.status_code, 200) - client_dict = client_resp.json() - client = ClientSpecification.model_validate(client_dict) - unlock_response = testclient.post( - "/api/v1/auth/unlock", json={"password": context.master_password} - ) - body = unlock_response.json() - self.assertEqual(unlock_response.status_code, 200) - self.assertIn("session_id", body) - session_id = body["session_id"] - session_header = {"session-id": str(session_id)} - serialized_client = client.model_dump(exclude_unset=True) - serialized_client["allowed_ips"] = ["192.0.2.1"] - update_response = testclient.put( - "/api/v1/clients/webserver", - json=serialized_client, - headers=session_header, - ) - self.assertAlmostEqual(update_response.status_code, 200) - update_body = update_response.json() - updated_client = ClientSpecification.model_validate(update_body) - assert updated_client.allowed_ips == [IPv4Address("192.0.2.1")] - - def test_update_client_sshkey(self) -> None: - """Update client SSH key.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - new_private_key = generate_private_key() - public_key = generate_public_key_string(new_private_key.public_key()) - client_resp = testclient.get("/api/v1/clients/webserver") - self.assertEqual(client_resp.status_code, 200) - client_dict = client_resp.json() - client = ClientSpecification.model_validate(client_dict) - unlock_response = testclient.post( - "/api/v1/auth/unlock", json={"password": context.master_password} - ) - body = unlock_response.json() - self.assertEqual(unlock_response.status_code, 200) - self.assertIn("session_id", body) - session_id = body["session_id"] - session_header = {"session-id": str(session_id)} - - serialized_client = client.model_dump(exclude_unset=True) - serialized_client["public_key"] = public_key - update_response = testclient.put( - "/api/v1/clients/webserver", - json=serialized_client, - headers=session_header, - ) - self.assertAlmostEqual(update_response.status_code, 200) - update_body = update_response.json() - updated_client = ClientSpecification.model_validate(update_body) - for secret, value in updated_client.secrets.items(): - old_secret = client.secrets[secret] - self.assertNotEqual(old_secret, value) - cleartext = decode_string(value, new_private_key) - self.assertTrue(cleartext.startswith("test")) - - # check that the backend is properly updated. - new_client_resp = testclient.get("/api/v1/clients/webserver") - new_client_dict = new_client_resp.json() - self.assertEqual(new_client_resp.status_code, 200) - new_client = ClientSpecification.model_validate(new_client_dict) - for secret, value in new_client.secrets.items(): - matching_value = updated_client.secrets[secret] - self.assertEqual(value, matching_value) - - def test_delete_client(self) -> None: - """Test the delete_client API.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - client_resp = testclient.get("/api/v1/clients/webserver") - self.assertEqual(client_resp.status_code, 200) - delete_resp = testclient.delete("/api/v1/clients/webserver") - self.assertEqual(delete_resp.status_code, 204) - get_resp = testclient.get("/api/v1/clients/webserver") - self.assertEqual(get_resp.status_code, 404) - - def test_add_client(self) -> None: - """Test the add_client API.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - private_key = generate_private_key() - public_key = generate_public_key_string(private_key.public_key()) - new_client = ClientSpecification( - name="webserver2", - public_key=public_key, - ) - add_resp = testclient.post( - "/api/v1/clients", - json=new_client.model_dump(exclude_unset=True, exclude_defaults=True), - ) - self.assertEqual(add_resp.status_code, 201) - body = add_resp.json() - client = ClientSpecification.model_validate(body) - self.assertEqual(client.public_key, public_key) - fetched_client = self.fetch_client(testclient, "webserver2") - self.assertEqual(fetched_client, client) - - def test_list_secrets(self) -> None: - """Test the list_secrets API.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - headers = self.unlock(context, testclient) - resp = testclient.get("/api/v1/secrets", headers=headers) - self.assertEqual(resp.status_code, 200) - expected = [ - {"name": "API_KEY", "assigned_clients": ["webserver"]}, - {"name": "OTHER_API_KEY", "assigned_clients": ["webserver"]}, - {"name": "DB_PASSWORD", "assigned_clients": ["db_server"]}, - ] - body = resp.json() - - self.assertListEqual(body, expected) - - def test_get_secret(self) -> None: - """Test the get_secret API.""" - test_data = [ - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - headers = self.unlock(context, testclient) - resp = testclient.get("/api/v1/secrets/DB_PASSWORD", headers=headers) - self.assertEqual(resp.status_code, 200) - expected = {"name": "DB_PASSWORD", "secret": "test"} - body = resp.json() - self.assertDictEqual(body, expected) - - def test_update_secret_provided(self) -> None: - """Test the update_secret API. - - Tests updating a secret with a provided string. - """ - test_data = [ - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - headers = self.unlock(context, testclient) - request = {"secret": "not-so-secret"} - resp = testclient.put( - "/api/v1/secrets/DB_PASSWORD", json=request, headers=headers - ) - self.assertEqual(resp.status_code, 200) - expected = {"name": "DB_PASSWORD", "secret": None} - body = resp.json() - self.assertDictEqual(body, expected) - - def test_update_secret_auto(self) -> None: - """Test the update_secret API. - - Tests updating a secret with auto-generated string. - """ - test_data = [ - TestClientSpec( - "db_server", - { - "DB_PASSWORD": "test", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - headers = self.unlock(context, testclient) - request = {"secret": None, "auto_generate": True} - resp = testclient.put( - "/api/v1/secrets/DB_PASSWORD", json=request, headers=headers - ) - self.assertEqual(resp.status_code, 200) - body = resp.json() - secret = body.get("secret") - self.assertIsNotNone(secret) - - def test_delete_secret(self) -> None: - """Test delete_secret API.""" - test_data = [ - TestClientSpec( - "webserver", - { - "API_KEY": "test", - "OTHER_API_KEY": "test2", - }, - ), - ] - with api_context(test_data) as context: - app.dependency_overrides[get_app_settings] = context.get_settings - testclient: TestClient = TestClient(app) - headers = self.unlock(context, testclient) - resp = testclient.delete("/api/v1/secrets/OTHER_API_KEY", headers=headers) - self.assertEqual(resp.status_code, 204) - get_resp = testclient.get("/api/v1/secrets/OTHER_API_KEY", headers=headers) - self.assertEqual(get_resp.status_code, 404) - - def fetch_client( - self, testclient: TestClient, client_name: str - ) -> ClientSpecification: - """Fetch a client.""" - client_resp = testclient.get(f"/api/v1/clients/{client_name}") - self.assertEqual(client_resp.status_code, 200) - client_dict = client_resp.json() - client = ClientSpecification.model_validate(client_dict) - return client - - def unlock(self, context: TestContext, testclient: TestClient) -> dict[str, str]: - """Unlock the session.""" - response = testclient.post( - "/api/v1/auth/unlock", json={"password": context.master_password} - ) - body = response.json() - session_id = body["session_id"] - session_header = {"session-id": str(session_id)} - return session_header - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_client_backend.py b/tests/test_client_backend.py deleted file mode 100644 index a5516c3..0000000 --- a/tests/test_client_backend.py +++ /dev/null @@ -1,125 +0,0 @@ -"""Tests of client loader.""" -# pyright: reportUninitializedInstanceVariable=false, reportImplicitOverride=false - -import unittest -from sshecret.backends import FileTableBackend -from sshecret.utils import generate_client_object -from sshecret.testing import TestClientSpec, test_context - - -class TestFileTableBackend(unittest.TestCase): - """Test the file table backend.""" - - def setUp(self) -> None: - """Set up tests.""" - self.test_dataset: list[TestClientSpec] = [ - TestClientSpec("webserver", {"SECRET_TOKEN": "mysecrettoken"}), - TestClientSpec("dbserver", {"DB_ROOT_PASSWORD": "mysecretpassword"}), - ] - - def test_init(self) -> None: - """Test instance creation.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - self.assertGreater(len(backend.table), 0) - - def test_lookup_name(self) -> None: - """Test lookup name.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - webserver = backend.lookup_name("webserver") - self.assertIsNotNone(webserver) - assert webserver is not None - self.assertEqual(webserver.name, "webserver") - - def test_add_client(self) -> None: - """Test whether it is possible to add a client.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - new_client = generate_client_object( - "backupserver", {"BACKUP_KEY": "mysecretbackupkey"} - ) - backend.add_client(new_client) - expected_file = testdir / "backupserver.json" - self.assertTrue(expected_file.exists()) - result = backend.lookup_name("backupserver") - self.assertIsNotNone(result) - - def test_add_secret(self) -> None: - """Test whether it is possible to add a secret.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - backend.add_secret("webserver", "OTHER_SECRET_TOKEN", "myothersecrettoken") - webserver = backend.lookup_name("webserver") - assert webserver is not None - self.assertIsNotNone(webserver.secrets.get("OTHER_SECRET_TOKEN")) - self.assertNotEqual( - webserver.secrets["OTHER_SECRET_TOKEN"], "myothersecrettoken" - ) - - backend.add_secret( - "dbserver", "UNENCRYPTED_THING", "thisiscleartext", encrypted=True - ) - dbserver = backend.lookup_name("dbserver") - assert dbserver is not None - self.assertEqual(dbserver.secrets["UNENCRYPTED_THING"], "thisiscleartext") - - def test_update_client(self) -> None: - """Test update_client method.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - webserver = backend.lookup_name("webserver") - assert webserver is not None - webserver.allowed_ips = "192.0.2.1" - backend.update_client("webserver", webserver) - new_obj = backend.lookup_name("webserver") - assert new_obj is not None - self.assertEqual(new_obj.allowed_ips, "192.0.2.1") - - def test_remove_client(self) -> None: - """Test removal of client.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - backend.remove_client("webserver", persistent=False) - webserver = backend.lookup_name("webserver") - self.assertIsNone(webserver) - webserver_file = testdir / "webserver.json" - self.assertTrue(webserver_file.exists()) - - def test_remove_client_persistent(self) -> None: - """Test removal of client.""" - with test_context(self.test_dataset) as testdir: - backend = FileTableBackend(testdir) - backend.remove_client("webserver", persistent=True) - webserver = backend.lookup_name("webserver") - self.assertIsNone(webserver) - webserver_file = testdir / "webserver.json" - self.assertFalse(webserver_file.exists()) - - def test_lookup_by_secret(self) -> None: - """Test lookup of secrets.""" - dataset = [ - TestClientSpec("webserver", {"SECRET_TOKEN": "mysecrettoken"}), - TestClientSpec("webserver2", {"SECRET_TOKEN": "mysecrettoken"}), - TestClientSpec("webserver3", {"SECRET_TOKEN": "mysecrettoken"}), - TestClientSpec("dbserver", {"DB_ROOT_PASSWORD": "mysecretpassword"}), - TestClientSpec("dbserver2", {"DB_ROOT_PASSWORD": "mysecretpassword"}), - TestClientSpec("appserver", {"DB_ROOT_PASSWORD": "mysecretpassword", "SECRET_TOKEN": "mysecrettoken"}), - ] - with test_context(dataset) as testdir: - backend = FileTableBackend(testdir) - token_mapping = backend.lookup_by_secret("SECRET_TOKEN") - self.assertEqual(len(token_mapping), 4) - token_mapping_names = [client.name for client in token_mapping] - self.assertIn("webserver2", token_mapping_names) - self.assertIn("appserver", token_mapping_names) - db_mapping = backend.lookup_by_secret("DB_ROOT_PASSWORD") - db_mapping_names = [client.name for client in db_mapping] - self.assertEqual(len(db_mapping), 3) - self.assertNotIn("webserver", db_mapping_names) - - - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_crypto.py b/tests/test_crypto.py deleted file mode 100644 index 5b9ebc6..0000000 --- a/tests/test_crypto.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Tests of the encryption methods.""" - -import os -from pathlib import Path -from typing import override -import unittest - -from sshecret.crypto import ( - load_public_key, - load_private_key, - encrypt_string, - decode_string, -) - - -def read_public_key() -> bytes: - """Load public key.""" - keyname = "testkey" - public_key_file = Path(os.path.dirname(__file__)) / f"{keyname}.pub" - with open(public_key_file, "rb") as f: - public_key = f.read() - - return public_key - - -class TestBasicCrypto(unittest.TestCase): - """Test basic crypto functionality.""" - - @override - def setUp(self) -> None: - """Set up keys.""" - keyname = "testkey" - self.private_key: str = os.path.join(os.path.dirname(__file__), keyname) - self.public_key: bytes = read_public_key() - - def test_key_loading(self) -> None: - """Test basic flow.""" - load_public_key(self.public_key) - load_private_key(self.private_key) - self.assertEqual(True, True) - - def test_encrypt_decrypt(self) -> None: - """Test encryption and decryption.""" - password = "MySecretPassword" - public_key = load_public_key(self.public_key) - encoded = encrypt_string(password, public_key) - private_key = load_private_key(self.private_key) - decoded = decode_string(encoded, private_key) - self.assertEqual(password, decoded) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_keepass.py b/tests/test_keepass.py deleted file mode 100644 index 7622988..0000000 --- a/tests/test_keepass.py +++ /dev/null @@ -1,63 +0,0 @@ -"""Tests for the keepass password manager.""" - -import tempfile -import unittest -from pathlib import Path -from typing import override -from sshecret.types import BasePasswordReader, PasswordContext -from sshecret.keepass import KeepassManager - -TEST_PASSWORD = "test_password" - -class Rot13PasswordReader(BasePasswordReader): - """This password reader returns the identifier backwards.""" - - @override - def get_password(self, identifier: str, repeated: bool = False) -> str: - """Get password.""" - return identifier[::-1] - - -class TestKeepass(unittest.TestCase): - """Test the keepass password manager.""" - - def __init__(self, methodName: str = "runTest") -> None: - super().__init__(methodName) - self.reader_context: PasswordContext - - @override - def setUp(self) -> None: - """Set up testing.""" - self.reader_context = PasswordContext(Rot13PasswordReader()) - - def test_db_create(self) -> None: - """Test db creation.""" - with tempfile.TemporaryDirectory() as testdir: - testdbfile = Path(testdir) / "test.kdbx" - - testdb = KeepassManager.create_database(str(testdbfile.absolute()), self.reader_context) - self.assertTrue(testdbfile.exists()) - - # Close the file and reopen - - testdb.close_database() - with self.assertRaises(RuntimeError): - testdb.keepass.version - testdb.open_database(self.reader_context) - self.assertIsNotNone(testdb.keepass) - - def test_password_creation(self) -> None: - """Test password creation.""" - with tempfile.TemporaryDirectory() as testdir: - testdbfile = Path(testdir) / "test.kdbx" - - testdb = KeepassManager.create_database(str(testdbfile.absolute()), self.reader_context) - password = testdb.generate_password("foobar") - testdb.close_database() - testdb.open_database(self.reader_context) - saved_password = testdb.get_password("foobar") - self.assertEqual(saved_password, password) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_password_readers.py b/tests/test_password_readers.py deleted file mode 100644 index 5b35abb..0000000 --- a/tests/test_password_readers.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Test passsword readers.""" - -from typing import override -import unittest -from io import StringIO -from unittest.mock import patch -from dotenv import load_dotenv - - -from sshecret.password_readers import InputPasswordReader, EnvironmentPasswordReader - - -class TestInputPasswordReader(unittest.TestCase): - """Test input password reader.""" - - def test_reader(self) -> None: - """Test reader.""" - input_password = "testpassword" - with patch("getpass.getpass", return_value=input_password): - received_password = InputPasswordReader().get_password("test_password") - self.assertEqual(received_password, "testpassword") - - -class TestEnvPasswordReader(unittest.TestCase): - """Test environment password reader.""" - - @override - def setUp(self) -> None: - """Set up environment.""" - env = StringIO("SSHECRET_test=secretthing") - load_dotenv(stream=env) - - def test_env_loader(self) -> None: - """Test environment loading.""" - password = EnvironmentPasswordReader().get_password("test") - self.assertEqual(password, "secretthing") - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/testkey b/tests/testkey deleted file mode 100644 index d33b575..0000000 --- a/tests/testkey +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 ------END OPENSSH PRIVATE KEY----- diff --git a/tests/testkey.pub b/tests/testkey.pub deleted file mode 100644 index 9162c53..0000000 --- a/tests/testkey.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSE7JNMi1XeBFFOC+9r3Y19rWQsW5mCwPBEzBILoNoduRhEVDN7JW66ysumrdsVJGdC6bU6ETdoOSb4ryyOCyTpfwEaEcvSq0/WBIHXoNdOe7M6137GbADgy9fzl9L2iXJH4wycI6bas+bKr4qSfg/wWmgs8U+IM8Cwp2zBFV6uHV9GpU/Ei/YZ2uK6fCEPeXNMHHkU1n6LHOKMAph/XJCKimEIVAG5ZPq3zUFtx9IhmXwpzM/19fg7LLsjvLSyY6ZZghNGieZaFmibtqkQcQygTpArRhU2TNjqvUwb998qOVC57wms0PCsjxSqSd4dRTIj7X5/QtemFC1ZoI3DpNyT5A6BeV1t/A6mSYcbI2BeHYxpGcIqZ/9ChpT6AV9Pac6bKVD3LFAmKx41aGfNTOvFPmkRxZFnMJmyVfLZCXpAvn9coe9LuoFbGxaFzJoJav7RRjwTbvPVqSNSDKAfeqVZ7np3R6k/wUi7VKbp9xzNnqwdu5kgwnXoYcoJb75t+M= eising@Allans-MacBook-Air.local