예제 #1
0
 def test_translate_table_1(self):
     """Verify translate_table() returns case-sensitive table names.
     """
     for table in self.table_inputs:
         with self.subTest(table_input=table):
             translated = parsing.translate_table(self.metadata, table)
             self.assertTrue(translated in self.tables)
예제 #2
0
    def get_map(self, table):
        """Get SQLAlchemy ORM map object.
        """
        if self._mapper is None:
            self.build_mapper()

        table = parsing.translate_table(self._metadata, table)
        return self._mapper.classes[table]
예제 #3
0
def build_onclause(db_graph, source_table, adjacent_table):
    source_table = parsing.translate_table(db_graph.graph["metadata"],
                                           source_table)
    adjacent_table = parsing.translate_table(db_graph.graph["metadata"],
                                             adjacent_table)

    if source_table == adjacent_table:
        source_table = db_graph.nodes[source_table]["table"]
        return source_table

    edge = db_graph[source_table][adjacent_table]
    foreign_key = edge["key"]

    referent_column = foreign_key.column
    referenced_column = foreign_key.parent
    onclause = referent_column == referenced_column

    return onclause
예제 #4
0
def get_map(mapper, table):
    """Get SQLAlchemy ORM map object.

    :param mapper: Connected and prepared SQLAlchemy automap base object.
    :type mapper: DeclarativeMeta
    :param table: Case-insensitive table to retrieve a ORM map for.
    :type table: str
    :returns: SQLAlchemy mapped object.
    :rtype: DeclarativeMeta
    """
    table = parsing.translate_table(mapper.metadata, table)
    return mapper.classes[table]
예제 #5
0
def get_table(metadata, table):
    """Get a SQLAlchemy Table object, with a case-insensitive input.

    :param metadata: Reflected SQLAlchemy MetaData object.
    :type metadata: MetaData
    :param table: Case-insensitive table name.
    :type table: str
    :returns:
        Corresponding SQLAlchemy Table object.
    :rtype: Table
    """
    # Ensures table name is accurate before indexing metadata.
    table = parsing.translate_table(metadata, table)
    table_obj = metadata.tables[table]
    return table_obj
예제 #6
0
 def test_translate_table_2(self):
     with self.assertRaises(ValueError):
         parsing.translate_table(self.metadata, "pham")
예제 #7
0
 def test_translate_table_1(self):
     for table in self.table_inputs:
         with self.subTest(table_input=table):
             translated = parsing.translate_table(self.metadata, table)
             self.assertTrue(translated in self.tables)
예제 #8
0
def get_table(metadata, table):
    table = parsing.translate_table(metadata, table)
    table_obj = metadata.tables[table]
    return table_obj
예제 #9
0
 def test_translate_table_2(self):
     """Verify translate_table() raises ValueError from invalid table name.
     """
     with self.assertRaises(ValueError):
         parsing.translate_table(self.metadata, "pham")
예제 #10
0
 def test_translate_table_3(self):
     """Verify translate_table() returns case-sensitive table names.
     """
     table = parsing.translate_table(self.metadata, "tRNA")
     self.assertEqual(table, "trna")
예제 #11
0
    def test_translate_table_2(self):
        """Verify translate_table() returns case-sensitive table names.
        """
        table = parsing.translate_table(self.metadata, "GENE")

        self.assertEqual(table, "gene")
예제 #12
0
    def test_translate_table_1(self):
        """Verify translate_table() conserves case-sensitive table names.
        """
        table = parsing.translate_table(self.metadata, "phage")

        self.assertEqual(table, "phage")