pki_ca/tests/test_metadata.py

67 lines
1.9 KiB
Python

import unittest
import sys
from pathlib import Path
import psycopg
code_path = Path(__file__).parent.parent / "ca_core"
sys.path.insert(0, str(code_path))
import metadata
DBNAME = "ca"
def get_last_log(cursor):
cursor.execute("SELECT entry FROM log ORDER BY id DESC LIMIT 1")
row = cursor.fetchone()
return row["entry"] if row else ""
class TestMetadataFunctions(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.conn = psycopg.connect(f"dbname={DBNAME}")
cls.cur = cls.conn.cursor(row_factory=psycopg.rows.dict_row)
@classmethod
def tearDownClass(cls):
cls.cur.close()
cls.conn.close()
def setUp(self):
self.conn.rollback()
def tearDown(self):
self.conn.rollback()
def test_set_and_get_name(self):
metadata.set_name(self.cur, "AppName")
self.assertEqual(metadata.get_name(self.cur), "AppName")
log_entry = get_last_log(self.cur).lower()
self.assertIn("metadata name", log_entry)
self.assertIn("appname", log_entry)
def test_set_and_get_comment(self):
metadata.set_comment(self.cur, "Test comment")
self.assertEqual(metadata.get_comment(self.cur), "Test comment")
log_entry = get_last_log(self.cur).lower()
self.assertIn("metadata comment", log_entry)
def test_set_and_get_keys(self):
metadata.set_keys(self.cur, "pubkey123", "privkey456")
self.assertEqual(metadata.get_public_key(self.cur), "pubkey123")
self.assertEqual(metadata.get_private_key(self.cur), "privkey456")
log_entry = get_last_log(self.cur).lower()
self.assertIn("metadata keys", log_entry)
def test_set_and_get_defense_p(self):
metadata.set_defense_p(self.cur, True)
self.assertEqual(metadata.get_defense_p(self.cur), True)
log_entry = get_last_log(self.cur).lower()
self.assertIn("defense_p", log_entry)