Beispiel #1
0
 def test_003_sql_conversion(self):
     from tests.files.schema_1 import testData
     db = PgDatabase()
     for t in testData:        
         _tbl = table_from_string(t[0])
         self.assertNotEqual(_tbl, None)
         self.assertEqual(len(_tbl.fields), t[1])
         self.assertEqual(db.create_string(_tbl), t[2])
Beispiel #2
0
 def get_schema_from_catalog(self):
     ''' Read the database schema from a Catalog. '''
     from slurpy.parser import parse_index_statement
     if not self.is_connected:
         return False
     sql = "select name, sql from sqlite_master order by name"
     rv = self._catalog.query(sql)
     for r in rv:
         if 'sqlite' in r[0]: continue
         _tbl = table_from_string(r[1])
         if _tbl:
             self.tables.append(_tbl)
             continue
         _idx = parse_index_statement(r[1])
         if _idx and _idx.has_key('unique'):
             _tbl = self.get_table(_idx['tablename'])
             if _tbl:
                 _tbl.add_index(_idx)            
     self._get_ordered_table_list()
     return True
Beispiel #3
0
 def test_004_creation(self):
     from tests.files.schema_1 import testData
     kwargs = {'dbname': 'slurpy', 'user': '******', 'password': '******' }
     db = PgDatabase()
     self.assertEqual(db.connect(**kwargs), True)
     self.assertEqual(db.dropall(), True)
     for t in testData:        
         _tbl = table_from_string(t[0])
         # Drop the table before we start
         self.assertEqual(db.drop(_tbl), True)
         self.assertEqual(db.create_string(_tbl), t[2])
         # Simple create, no drop before creation
         self.assertEqual(db.create(_tbl), t[3])
         if not t[3]:
             continue
         # Create, dropping table before creation, should succeed
         self.assertEqual(db.create(_tbl, True), True)
         # Simple create, no drop before creation, should fail
         self.assertEqual(db.create(_tbl), False)
         # Drop the table
         self.assertEqual(db.drop(_tbl), True)
     self.assertEqual(db.close(), True)