catopt-graph-graph-calculus.../tests/test_contract_registry.py

34 lines
1.1 KiB
Python

import unittest
from catopt_graph.core import ContractRegistry
class TestContractRegistry(unittest.TestCase):
def test_register_and_get_contract_versions(self):
reg = ContractRegistry()
reg.register_contract("LocalProblem", {"foo": "bar"}, version="1.0.0")
reg.register_contract("LocalProblem", {"foo": "baz"}, version="1.1.0")
c_latest = reg.get_contract("LocalProblem")
c_10 = reg.get_contract("LocalProblem", version="1.0.0")
c_11 = reg.get_contract("LocalProblem", version="1.1.0")
self.assertIsNotNone(c_latest)
self.assertEqual(c_10, {"foo": "bar"})
self.assertEqual(c_11, {"foo": "baz"})
# The latest should reflect the highest version number
self.assertEqual(c_latest, c_11)
def test_list_contracts(self):
reg = ContractRegistry()
reg.register_contract("X", {"a": 1}, version="0.1.0")
reg.register_contract("Y", {"b": 2}, version="0.1.0")
all_contracts = reg.list_contracts()
self.assertIn("X", all_contracts)
self.assertIn("Y", all_contracts)
if __name__ == "__main__":
unittest.main()