def test_adapt_subtype(self): from psycopg2ct.extensions import adapt class Sub(str): pass s1 = "hel'lo" s2 = Sub(s1) assert adapt(s1).getquoted() == adapt(s2).getquoted()
def test_mro_required(self): import psycopg2ct from psycopg2ct.extensions import adapt, register_adapter, AsIs # Intentionally old-style, they don't expose their MRO. class A: pass class B(A): pass register_adapter(A, lambda a: AsIs("a")) with self.assertRaises(psycopg2ct.ProgrammingError): adapt(B())
def test_adapt_most_specific(self): from psycopg2ct.extensions import adapt, register_adapter, AsIs class A(object): pass class B(A): pass class C(B): pass register_adapter(A, lambda a: AsIs("a")) register_adapter(B, lambda b: AsIs("b")) assert adapt(C()).getquoted() == "b"