/
pv_hum
/
schemaforge
Обзор
Документация
Войти
/
pv_hum
/
schemaforge
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/agent/test_services.py
71 строка
2 KB
pv_hum
Initial commit
21 май 2026, 22:25
21 май 2026, 22:25
0de9fa8
Код
Авторство
О чём код?
from app.models import Attribute, Entity, SchemaModel from app.services import normalize_schema, parse_sql_to_schema, schema_to_sql, validate_schema def test_validate_schema_ok(): schema = SchemaModel( entities=[ Entity( name='users', attributes=[ Attribute(name='id', type='bigint', nullable=False, primaryKey=True), Attribute(name='email', type='varchar(255)', nullable=False, primaryKey=False), ], ) ], relationships=[], ) result = validate_schema(schema) assert result.valid is True def test_validate_schema_no_entities(): result = validate_schema(SchemaModel(entities=[], relationships=[])) assert result.valid is False assert any(i.code == 'NO_ENTITIES' for i in result.issues) def test_parse_sql_to_schema(): sql = """ CREATE TABLE users ( id BIGSERIAL PRIMARY KEY, email VARCHAR(255) NOT NULL ); """ schema = parse_sql_to_schema(sql, 'postgresql') assert len(schema.entities) == 1 assert schema.entities[0].name == 'users' assert any(a.primaryKey for a in schema.entities[0].attributes) def test_schema_to_sql_roundtrip_names(): schema = SchemaModel( entities=[ Entity( name='orders', attributes=[ Attribute(name='id', type='bigint', nullable=False, primaryKey=True), ], ) ], relationships=[], ) sql = schema_to_sql(schema, 'postgresql') assert 'CREATE TABLE orders' in sql def test_normalize_schema_adds_pk(): schema = SchemaModel( entities=[ Entity( name='Items', attributes=[ Attribute(name='Title', type='varchar(100)', nullable=True, primaryKey=False), ], ) ], relationships=[], ) normalized = normalize_schema(schema, source_mode='prompt', dialect='postgresql') assert normalized.entities[0].name == 'items' assert any(a.primaryKey for a in normalized.entities[0].attributes)