1 parent
1b12899ff6
commit
a3ac2a68fe
33 files changed
+5422
-28
No files matched your search
@@ -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"),
|
||||
|
||||
Reference in new issue
Block a user