Example #1
0
 def test_compare(self):
     with self.assertRaises(ValueError):
         SQLField("t1", "f1", SQLTypes.TEXT, 1) < SQLField(
             "t2", "f2", SQLTypes.TEXT, 1)
     self.assertTrue(
         SQLField("t", "f1", SQLTypes.TEXT, 1) < SQLField(
             "t", "f2", SQLTypes.TEXT, 2))
Example #2
0
 def setUp(self):
     self.provider = QueryProvider()
     self.field1 = SQLField("table",
                            "field1",
                            SQLTypes.BOOLEAN,
                            comment="comment")
     self.field2 = SQLField("table", "field2", SQLTypes.NUMERIC)
     self.index = SQLIndex("table", "field1", SQLIndexTypes.HASH)
Example #3
0
 def setUp(self):
     print("SETUP MDB", unix_dialect.__dict__)
     self.field1 = SQLField("table",
                            "field1",
                            SQLTypes.BOOLEAN,
                            comment="comment")
     self.field2 = SQLField("table", "field2", SQLTypes.NUMERIC)
     self.index = SQLIndex("table", "field1", SQLIndexTypes.HASH)
     self.table = SQLTable("table", [self.field1, self.field2], [])
     self.query_provider = MariaDBQueryProvider()
Example #4
0
 def setUp(self):
     self.provider = PostgreSQLQueryProvider()
     self.sql_field1 = SQLField("t",
                                "f1",
                                SQLTypes.TEXT,
                                comment="comment1")
     self.sql_field2 = SQLField("t", "field_with_long_name2",
                                SQLTypes.NUMERIC)
     self.sql_field3 = SQLField("t",
                                "f3",
                                SQLTypes.TEXT,
                                comment="comment2")
Example #5
0
 def test_index_provider(self):
     self.assertEqual([
         SQLIndex(table_name='tableName2',
                  field_name='siren',
                  type=SQLIndexTypes.HASH)
     ],
                      list(
                          self.provider.get_indices([
                              SQLField("tableName2", "fieldName",
                                       SQLTypes.TEXT),
                              SQLField("tableName2", "siren",
                                       SQLTypes.TEXT),
                              SQLField("tableName2", "other", SQLTypes.TEXT)
                          ])))
Example #6
0
 def get_fields(self) -> Iterable[SQLField]:
     """
     :return: orderd fields of the table (names are in snake_case)
     """
     return sorted(
         SQLField(table_name=self._table_name, field_name=row.name,
                  type=self._type_converter.get_type(row), rank=row.rank,
                  length=row.length,
                  comment=row.caption)
         for row in self._rows)
Example #7
0
 def test_one_indexed(self):
     p = SireneSchemaParser("t", [{
         NAME: "siren",
         TYPE: "Texte",
         LENGTH: "10",
         RANK: "1",
         CAPTION: "c"
     }], self.type_provider, self.index_provider)
     self.assertEqual("t", p.table_name)
     self.assertEqual([SQLField('t', 'siren', SQLTypes.TEXT, 1, 'c', 10)],
                      p.get_fields())
     self.assertEqual([SQLIndex('t', 'siren', SQLIndexTypes.HASH)],
                      list(p.get_indices()))
Example #8
0
 def test_sort(self):
     self.assertEqual([
         SQLField("t", "f1", SQLTypes.TEXT, 1),
         SQLField("t", "f2", SQLTypes.TEXT, 2),
         SQLField("t", "f3", SQLTypes.TEXT, 3)
     ],
                      list(
                          sorted([
                              SQLField("t", "f3", SQLTypes.TEXT, 3),
                              SQLField("t", "f1", SQLTypes.TEXT, 1),
                              SQLField("t", "f2", SQLTypes.TEXT, 2)
                          ])))
Example #9
0
 def test_process(self):
     f = SQLField("CamelCaseTable", "camelCaseField", SQLTypes.TEXT)
     self.assertEqual(
         SQLField('camel_case_table', 'camel_case_field', SQLTypes.TEXT),
         f.process(to_snake))
Example #10
0
def get_table(record_format: RecordFormat) -> SQLTable:
    fields = [
        SQLField(record_format.name, field, SQLTypes.TEXT, i)
        for i, field in enumerate(record_format.header)
    ]
    return SQLTable(record_format.name, fields, [])