feat: expand graph lifecycle and data platform
This commit is contained in:
1 parent
00af885b1a
commit
15368f2779
50 files changed
+17461
-1040
No files matched your search
@@ -0,0 +1,48 @@
|
||||
import unittest
|
||||
|
||||
from app.data_platform.schema import (
|
||||
_column_sql,
|
||||
custom_definition_from_create_sql,
|
||||
)
|
||||
|
||||
|
||||
MYSQL_STYLE_USERS_SQL = """
|
||||
CREATE TABLE users (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
username VARCHAR(50) NOT NULL,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(100) UNIQUE,
|
||||
phone VARCHAR(20),
|
||||
age INT,
|
||||
gender VARCHAR(10),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
"""
|
||||
|
||||
|
||||
class SqlCreateCompatibilityTests(unittest.TestCase):
|
||||
def test_mysql_style_managed_columns_and_unique_are_supported(self) -> None:
|
||||
definition, rows = custom_definition_from_create_sql(
|
||||
{"sql": MYSQL_STYLE_USERS_SQL}
|
||||
)
|
||||
|
||||
self.assertEqual(definition.code, "users")
|
||||
self.assertEqual(
|
||||
[field.code for field in definition.fields],
|
||||
["username", "password", "email", "phone", "age", "gender"],
|
||||
)
|
||||
email = next(field for field in definition.fields if field.code == "email")
|
||||
self.assertTrue(email.unique)
|
||||
self.assertTrue(next(row for row in rows if row["code"] == "email")["unique"])
|
||||
|
||||
physical_sql = _column_sql(definition).as_string()
|
||||
self.assertIn('"email" VARCHAR(100) UNIQUE', physical_sql)
|
||||
self.assertIn("id UUID PRIMARY KEY", physical_sql)
|
||||
self.assertIn("updated_at TIMESTAMPTZ NOT NULL DEFAULT now()", physical_sql)
|
||||
self.assertNotIn("AUTO_INCREMENT", physical_sql)
|
||||
self.assertNotIn("ON UPDATE", physical_sql)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user