def test_views(self):
        """test views """
        metadata = load_from_file("complex_db.yaml")
        person_name = find_table_name(metadata, 'Person')
        (view, _) = make_view_without_table(metadata,
                   person_name, 'FullName')
#        process_dataset = find_table(view, 'ProcessedDatasetView')
#        data_tier = find_table(view, 'DataTierView')
#        process_dataset = find_table(view, 'PrimaryDatasetView')
#        files = find_table(view, 'FilesView')

        # This shows what happens to the foreign keys
        #      when you make a select statement.
        for table_name in view.tables:
            table = view.tables[table_name]
            for f_key in table.foreign_keys:
                vals = {}
                vals['table'] = table_name
                vals['column'] = f_key.parent.name
                if f_key.parent.table.__dict__.has_key('name'):
                    vals['from'] = f_key.parent.table.name
                else:
                    vals['from'] = "none"
                if f_key.column.table.__dict__.has_key('name'):
                    vals['to'] = f_key.column.table
                else:
                    vals['to'] = "none"
                _LOGGER.debug(
                    "test_views %(table)s.%(column)s %(from)s->%(to)s"
                    % vals)
 def test_yaml_graph(self):
     """test create schema from yaml
        make a dotgraph
        output via query_builder"""
     query_builder = Schema(load_from_file("starting_db.yaml").tables)
     dot = DotGraph(file("z.dot","w"))
     query_builder.write_graph(dot)
Example #3
0
 def setUp(self):
     """auto init"""
     metadata = load_from_file("starting_db.yaml")
     self.oschema = OriginSchema(metadata.tables)
     self.mapper = Mapper()
     self.mapper.load_mapfile('testmap.yaml')
     self.mapper.validate_map(metadata.tables)
     self.oschema.check_connective()
 def setUp(self):
     """default"""
     metadata = load_from_file("starting_db.yaml")
     app = QueryBuilder()
     app.set_mapper('testmap.yaml')
     app.set_from_tables(metadata.tables)
     app.recognize_schema() # without loading statistics
     self.app = app
    def test_operators(self):
        """test operators"""
        metadata = load_from_file("starting_db.yaml")
        process_dataset = find_table(metadata, 'ProcessedDataset')
        data_tier = find_table(metadata, 'DataTier')
        process_dataset = find_table(metadata, 'PrimaryDataset')
#        files = find_table(metadata,'Files')
        select_test = select([process_dataset.c.Name, data_tier.c.Name,
                process_dataset.c.Description], process_dataset.c.ID==0)
        query_builder = Schema(metadata.tables)
        query = query_builder.build_query(select_test)
Example #6
0
 def set_querybuilder(self, schema_file=None):
     """set querybuilder"""
     metadata = MetaData()
     tables = None
     if schema_file:
         metadata = load_from_file(schema_file)
         tables = metadata.tables
         self.schema = metadata
     else: 
         tables = self.manager.load_tables(self.db_name)
         self.schema.set_tables(tables)
     self.querybuilder = Schema(tables)
 def test_single_query(self):
     """test create schema from yaml
        get table by name
        create a select query on this table
        create a query builder and build this query"""
     metadata = load_from_file("starting_db.yaml")
     process_dataset = find_table(metadata, 'ProcessedDataset')
     select_test = select([process_dataset.c.Name],
                             process_dataset.c.ID == 0)
     query_builder = Schema(metadata.tables)
     query = query_builder.build_query(select_test)
     print query
Example #8
0
 def setUp(self):
     metadata = load_from_file("starting_db.yaml")
     oschema = OriginSchema(metadata.tables)
     oschema.check_connective()
     self.mapper = Mapper()
     self.mapper.load_mapfile('testmap.yaml')
     self.mapper.validate_map(metadata.tables)
     oschema.recognize_type(self.mapper)
     oschema.handle_alias()
     attr_path, _ = oschema.gen_attr_links(self.mapper)
     self.simschemas = oschema.gen_simschema()
     for simschema in self.simschemas:
         simschema.update_nodelist()
    def test_yaml_query(self):
        """test yaml query, using multiple tables"""
        metadata = load_from_file("starting_db.yaml")
        process_dataset = find_table(metadata, 'ProcessedDataset')
        data_tier = find_table(metadata, 'DataTier')
        process_dataset = find_table(metadata, 'PrimaryDataset')
        files = find_table(metadata, 'Files')
        select_test = select([process_dataset.c.Name, data_tier.c.Name,
                           process_dataset.c.Description])
        query_builder = Schema(metadata.tables)
        query = query_builder.build_query(select_test)
#        print query
        select_test1 = select([process_dataset.c.Name, data_tier.c.Name,
                           files.c.LogicalFileName])
        query = query_builder.build_query(select_test1)
 def setUp(self):
     """default"""
     metadata = load_from_file("starting_db.yaml")
     self.handler = SchemaHandler(metadata.tables)
     self.mapper = Mapper()
     self.mapper.load_mapfile('testmap.yaml')
     self.mapper.validate_map(metadata.tables)
     self.handler._schema.recognize_type(self.mapper)
     self.handler._schema.handle_alias()
     self.handler._schema.gen_attr_links(self.mapper)
     simschemas = self.handler._schema.gen_simschema()
     for simschema in simschemas:
         simschema.update_nodelist()
         graph = simschema.get_wgraph_from_schema()
         self.handler.subconstructors.append([ConstructQuery(graph, \
             weighted=True)])
         nodes = set(range(len(simschema.ordered)))
         self.handler.subnodes.append([nodes])
     self.handler._simschemas = simschemas
Example #11
0
    def test_view_build(self):
        """test view build """
        _LOGGER.debug("test_view_build start")
        metadata = load_from_file("complex_db.yaml")
        person_name = find_table_name(metadata, 'Person')
        (view, foreign_keys) = make_view_without_table(metadata,
                                 person_name, 'FullName')
#        for table_name in view.tables:
#            print table_name, list(view.tables[table_name].c)
#        files = find_table(view, 'FilesView')
        process_dataset = find_table(view, 'ProcessedDatasetView')
        data_tier = find_table(view, 'DataTierView')
        process_dataset = find_table(view, 'PrimaryDatasetView')
        query_builder = Schema(view.tables, foreign_keys)
        select_test = select([process_dataset.c.Name, data_tier.c.Name,
                             process_dataset.c.Description],
            process_dataset.c.ID==0)
        query = query_builder.build_query(select_test)
        _LOGGER.debug("test_view_build query: " + str(query))
        _LOGGER.debug("test_view_build finish")
Example #12
0
 def test_from_yaml(self):
     """test from yaml"""
     metadata = load_from_file('starting_db.yaml')
     udb = UnittestDB()
     c_count = udb.column_count(metadata)
     self.assertEqual(c_count, 51)
Example #13
0
 def test_dotgraph(self):
     """test DotGraph"""
     query_builder = Schema(load_from_file("starting_db.yaml").tables)
     output = StringIO()
     dot = DotGraph(output)
     query_builder.write_graph(dot)