home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1174027079

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/sqlite-utils/issues/449#issuecomment-1174027079 https://api.github.com/repos/simonw/sqlite-utils/issues/449 1174027079 IC_kwDOCGYnMM5F-jtH 1690072 2022-07-04T17:33:04Z 2022-07-04T17:48:43Z CONTRIBUTOR

I've written the code and test. Would you be able to advise how to compare table columns in a pytest function properly? Experiencing a challenge when comparing columns.

Test: python def test_duplicate(fresh_db): table = fresh_db.create_table( "table1", { "text_col": str, "float_col": float, "int_col": int, "bool_col": bool, "bytes_col": bytes, "datetime_col": datetime.datetime, }, ) dt = datetime.datetime.now() b = bytes('hello world', 'utf-8') data = {"text_col": "Cleo", "float_col": 3.14, "int_col": -2, "bool_col": True, "bytes_col": b, "datetime_col": str(dt)} table1 = fresh_db["table1"] row_id = table1.insert(data).last_rowid table1.duplicate('table2') table2 = fresh_db["table2"] assert data == table2.get(row_id) assert table1.columns == table2.columns # FAILS HERE

Result:

Failure is due to column types being named differently -- e.g. 'FLOAT' vs 'REAL', 'INTEGER' vs 'INT'. How should I go about comparing columns while accounting for equivalent types?

Or did I miss out something in my duplication code correctly? Here's how I did it: in db.py, I've added the following code: ```python class Table(Queryable): [...] def duplicate( self, name_new: str ) -> "Table": """ Duplicate this table in this database.

    :param name_new: Name of new table.
    """
    assert self.exists()
    with self.db.conn:
        sql = "CREATE TABLE [{new_table}] AS SELECT * FROM [{table}];".format(
            new_table = name_new,
            table = self.name,
        )
        self.db.execute(sql)
    return self.db[name_new]

```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1279863844  
Powered by Datasette · Queries took 1.307ms · About: github-to-sqlite