Ejemplo n.º 1
0
 def push_query(self, model: ModelBase) -> str:
     full_table = full_table_name(model)
     fields = fields_dict(model)
     columns = list(fields.keys())
     values = map(LayerQueryModel.quote, [fields[c] for c in columns])
     columns_str = ", ".join(columns)
     values_str = ", ".join(values)
     return sqlparse.format(
         f"INSERT INTO {full_table} ({columns_str}) VALUES ({values_str})",
         reindent=True)
Ejemplo n.º 2
0
    def pop_query(self, model: ModelBase) -> str:
        full_table = full_table_name(model)
        fields = fields_dict(model)

        primary_fields_values = {k: fields[k] for k in table_pk_fields(model)}
        conditions = [
            f"{field} = {LayerQueryModel.quote(value)}"
            for field, value in primary_fields_values.items()
        ]
        conditions_str = " AND ".join(conditions)
        return sqlparse.format(
            f"DELETE FROM {full_table} WHERE {conditions_str}", reindent=True)
Ejemplo n.º 3
0
 def with_table(self, table: Type[ModelBase]):
     full_name = full_table_name(table)
     self.tables[full_name] = table
     return self
Ejemplo n.º 4
0
def test_full_table_name_uses_object_or_class(table, expected):
    assert full_table_name(table) == expected