mirror of
				https://github.com/psycopg/psycopg2.git
				synced 2025-11-04 09:47:30 +03:00 
			
		
		
		
	Skip composite type tests if the server doesn't support them
This commit is contained in:
		
							parent
							
								
									ca3d9da83b
								
							
						
					
					
						commit
						153c30f24b
					
				| 
						 | 
					@ -333,6 +333,18 @@ class HstoreTestCase(unittest.TestCase):
 | 
				
			||||||
        ok(dict(zip(ab, ab)))
 | 
					        ok(dict(zip(ab, ab)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def skip_if_no_composite(f):
 | 
				
			||||||
 | 
					    def skip_if_no_composite_(self):
 | 
				
			||||||
 | 
					        if self.conn.server_version < 80000:
 | 
				
			||||||
 | 
					            return self.skipTest(
 | 
				
			||||||
 | 
					                "server version %s doesn't support composite types"
 | 
				
			||||||
 | 
					                % self.conn.server_version)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return f(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    skip_if_no_composite_.__name__ = f.__name__
 | 
				
			||||||
 | 
					    return skip_if_no_composite_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AdaptTypeTestCase(unittest.TestCase):
 | 
					class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
    def setUp(self):
 | 
					    def setUp(self):
 | 
				
			||||||
        self.conn = psycopg2.connect(tests.dsn)
 | 
					        self.conn = psycopg2.connect(tests.dsn)
 | 
				
			||||||
| 
						 | 
					@ -340,6 +352,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
    def tearDown(self):
 | 
					    def tearDown(self):
 | 
				
			||||||
        self.conn.close()
 | 
					        self.conn.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_none_in_record(self):
 | 
					    def test_none_in_record(self):
 | 
				
			||||||
        curs = self.conn.cursor()
 | 
					        curs = self.conn.cursor()
 | 
				
			||||||
        s = curs.mogrify("SELECT %s;", [(42, None)])
 | 
					        s = curs.mogrify("SELECT %s;", [(42, None)])
 | 
				
			||||||
| 
						 | 
					@ -397,6 +410,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
           '^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f")',
 | 
					           '^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f")',
 | 
				
			||||||
           [None, ''.join(map(chr, range(1, 128)))])
 | 
					           [None, ''.join(map(chr, range(1, 128)))])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_cast_composite(self):
 | 
					    def test_cast_composite(self):
 | 
				
			||||||
        oid = self._create_type("type_isd",
 | 
					        oid = self._create_type("type_isd",
 | 
				
			||||||
            [('anint', 'integer'), ('astring', 'text'), ('adate', 'date')])
 | 
					            [('anint', 'integer'), ('astring', 'text'), ('adate', 'date')])
 | 
				
			||||||
| 
						 | 
					@ -427,6 +441,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
            self.assertEqual(v.astring, "hello")
 | 
					            self.assertEqual(v.astring, "hello")
 | 
				
			||||||
            self.assertEqual(v.adate, date(2011,1,2))
 | 
					            self.assertEqual(v.adate, date(2011,1,2))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_cast_nested(self):
 | 
					    def test_cast_nested(self):
 | 
				
			||||||
        self._create_type("type_is",
 | 
					        self._create_type("type_is",
 | 
				
			||||||
            [("anint", "integer"), ("astring", "text")])
 | 
					            [("anint", "integer"), ("astring", "text")])
 | 
				
			||||||
| 
						 | 
					@ -453,6 +468,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assertEqual(v.anotherpair.apair.astring, "hello")
 | 
					            self.assertEqual(v.anotherpair.apair.astring, "hello")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_register_on_cursor(self):
 | 
					    def test_register_on_cursor(self):
 | 
				
			||||||
        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
					        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -464,6 +480,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
        curs2.execute("select (1,2)::type_ii")
 | 
					        curs2.execute("select (1,2)::type_ii")
 | 
				
			||||||
        self.assertEqual(curs2.fetchone()[0], "(1,2)")
 | 
					        self.assertEqual(curs2.fetchone()[0], "(1,2)")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_register_on_connection(self):
 | 
					    def test_register_on_connection(self):
 | 
				
			||||||
        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
					        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -481,6 +498,7 @@ class AdaptTypeTestCase(unittest.TestCase):
 | 
				
			||||||
            conn1.close()
 | 
					            conn1.close()
 | 
				
			||||||
            conn2.close()
 | 
					            conn2.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @skip_if_no_composite
 | 
				
			||||||
    def test_register_globally(self):
 | 
					    def test_register_globally(self):
 | 
				
			||||||
        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
					        self._create_type("type_ii", [("a", "integer"), ("b", "integer")])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user