v0.2.30
RustBox CI / rustbox (push) Waiting to run

This commit is contained in:
Mateusz Gruszczyński committed 2026-11-08 07:32:12 +01:00
1 parent 1b12899ff6
commit a3ac2a68fe
33 files changed
+5422 -28

No files matched your search

+22
View File
@@ -1037,6 +1037,28 @@ try:
conn.close()
except Exception as exc:
errors.append(f"SQLite V054 migration execution failed: {exc}")
for _, dialect in MIGRATION_DIALECTS:
dialect_schema = read(f"migrations/{dialect}/schema.sql")
require(
dialect_schema.count("dav_name") >= 4 and dialect_schema.count("dav_data") >= 2
and "CREATE UNIQUE INDEX {{p}}idx_contacts_email" not in dialect_schema,
f"{dialect} fresh schema has the CalDAV/CardDAV columns and a non-unique contacts e-mail index",
)
try:
conn = sqlite3.connect(":memory:")
conn.executescript("CREATE TABLE u_prod__calendar_events (id TEXT PRIMARY KEY); INSERT INTO u_prod__calendar_events(id) VALUES('e1'); CREATE TABLE u_prod__contacts (id TEXT PRIMARY KEY, email TEXT NOT NULL); CREATE UNIQUE INDEX u_prod__idx_contacts_email ON u_prod__contacts(email); INSERT INTO u_prod__contacts(id, email) VALUES('c1', 'a@example.com');")
conn.executescript(read("migrations/sqlite/V055__caldav_carddav.sql").replace("{{p}}", "u_prod__"))
require(conn.execute("SELECT dav_name, dav_data FROM u_prod__calendar_events WHERE id='e1'").fetchone() == (None, None), "SQLite V055 adds empty CalDAV columns to existing events")
conn.execute("INSERT INTO u_prod__contacts(id, email, dav_name) VALUES('c2', 'a@example.com', 'c2.vcf')")
require(conn.execute("SELECT COUNT(*) FROM u_prod__contacts WHERE email='a@example.com'").fetchone() == (2,), "SQLite V055 allows several contacts with one address")
conn.close()
except Exception as exc:
errors.append(f"SQLite V055 migration execution failed: {exc}")
require(
"pub dav: DavConfig" in read("src/config.rs") and "[dav]" in read("config.example.toml")
and "crate::dav::routes(&config)" in read("src/routes/mod.rs"),
"CalDAV/CardDAV server is configurable and routed only when enabled",
)
require(
'"schedule"' in display_prefs_rs and 'value="schedule"' in index_html and "function scheduledTheme(" in prefs_js
and 'id="pref-account-color"' in index_html and 'html[data-account-color="true"] .appbar::before' in read("src/web/css/50-settings.css"),