Skip to content

Commit c57783c

Browse files
committed
revert deleted migration test
1 parent d3b00b8 commit c57783c

File tree

9 files changed

+517
-0
lines changed

9 files changed

+517
-0
lines changed

tests/test_migrations/__init__.py

Whitespace-only changes.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/env python
2+
3+
import click
4+
from ellar.app import AppFactory, current_injector
5+
from ellar.utils.importer import get_main_directory_by_stack
6+
from ellar_cli.main import create_ellar_cli
7+
from models import User
8+
9+
from ellar_sql import EllarSQLModule, MigrationOption, model
10+
11+
12+
def bootstrap():
13+
path = get_main_directory_by_stack(
14+
"__main__/__parent__/__parent__/dumbs/custom_directory", stack_level=1
15+
)
16+
application = AppFactory.create_app(
17+
modules=[
18+
EllarSQLModule.setup(
19+
databases="sqlite:///app.db",
20+
migration_options=MigrationOption(
21+
directory="temp_migrations",
22+
context_configure={"compare_types": True},
23+
),
24+
root_path=str(path),
25+
)
26+
]
27+
)
28+
return application
29+
30+
31+
cli = create_ellar_cli("custom_directory:bootstrap")
32+
33+
34+
@cli.command()
35+
def add_user():
36+
session = current_injector.get(model.Session)
37+
user = User(name="Custom Directory App Ellar")
38+
session.add(user)
39+
40+
session.commit()
41+
42+
click.echo(f"<User name={user.name} id={user.id}>")
43+
44+
45+
if __name__ == "__main__":
46+
cli()
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/env python
2+
import click
3+
from ellar.app import AppFactory, current_injector
4+
from ellar.utils.importer import get_main_directory_by_stack
5+
from ellar_cli.main import create_ellar_cli
6+
from models import User
7+
8+
from ellar_sql import EllarSQLModule, model
9+
10+
11+
def bootstrap():
12+
path = get_main_directory_by_stack(
13+
"__main__/__parent__/__parent__/dumbs/default", stack_level=1
14+
)
15+
application = AppFactory.create_app(
16+
modules=[
17+
EllarSQLModule.setup(
18+
databases="sqlite:///app.db",
19+
migration_options={"context_configure": {"compare_types": False}},
20+
root_path=str(path),
21+
)
22+
]
23+
)
24+
return application
25+
26+
27+
cli = create_ellar_cli("default:bootstrap")
28+
29+
30+
@cli.command()
31+
def add_user():
32+
session = current_injector.get(model.Session)
33+
user = User(name="default App Ellar")
34+
session.add(user)
35+
36+
session.commit()
37+
click.echo(f"<User name={user.name} id={user.id}>")
38+
39+
40+
if __name__ == "__main__":
41+
cli()
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/env python
2+
import ellar_cli.click as click
3+
from ellar.app import AppFactory, current_injector
4+
from ellar.utils.importer import get_main_directory_by_stack
5+
from ellar_cli.main import create_ellar_cli
6+
from models import User
7+
from sqlalchemy.ext.asyncio import AsyncSession
8+
9+
from ellar_sql import EllarSQLModule
10+
11+
12+
def bootstrap():
13+
path = get_main_directory_by_stack(
14+
"__main__/__parent__/__parent__/dumbs/default_async", stack_level=1
15+
)
16+
application = AppFactory.create_app(
17+
modules=[
18+
EllarSQLModule.setup(
19+
databases="sqlite+aiosqlite:///app.db",
20+
migration_options={"context_configure": {"compare_types": False}},
21+
root_path=str(path),
22+
)
23+
]
24+
)
25+
return application
26+
27+
28+
cli = create_ellar_cli("default_async:bootstrap")
29+
30+
31+
@cli.command()
32+
@click.run_as_async
33+
async def add_user():
34+
session = current_injector.get(AsyncSession)
35+
user = User(name="default App Ellar")
36+
session.add(user)
37+
38+
await session.commit()
39+
await session.refresh(user)
40+
await session.close()
41+
42+
click.echo(f"<User name={user.name} id={user.id}>")
43+
44+
45+
if __name__ == "__main__":
46+
cli()
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import os
2+
3+
from ellar_sql import model
4+
5+
6+
class Base(model.Model):
7+
__base_config__ = {"as_base": True}
8+
9+
10+
class User(Base):
11+
id = model.Column(model.Integer, primary_key=True)
12+
13+
if os.environ.get("model_change_name"):
14+
name = model.Column(model.String(128))
15+
else:
16+
name = model.Column(model.String(256))
17+
18+
19+
if os.environ.get("multiple_db"):
20+
21+
class Group(Base):
22+
__database__ = "db1"
23+
id = model.Column(model.Integer, primary_key=True)
24+
name = model.Column(model.String(128))
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/env python
2+
import click
3+
from ellar.app import AppFactory, current_injector
4+
from ellar.utils.importer import get_main_directory_by_stack
5+
from ellar_cli.main import create_ellar_cli
6+
from models import Group, User
7+
8+
from ellar_sql import EllarSQLModule, model
9+
10+
11+
def bootstrap():
12+
path = get_main_directory_by_stack(
13+
"__main__/__parent__/__parent__/dumbs/multiple", stack_level=1
14+
)
15+
application = AppFactory.create_app(
16+
modules=[
17+
EllarSQLModule.setup(
18+
databases={
19+
"default": "sqlite:///app.db",
20+
"db1": "sqlite:///app2.db",
21+
},
22+
migration_options={"context_configure": {"compare_types": False}},
23+
root_path=str(path),
24+
)
25+
]
26+
)
27+
return application
28+
29+
30+
cli = create_ellar_cli("multiple_database:bootstrap")
31+
32+
33+
@cli.command()
34+
def add_user():
35+
session = current_injector.get(model.Session)
36+
user = User(name="Multiple Database App Ellar")
37+
group = Group(name="group")
38+
session.add(user)
39+
session.add(group)
40+
41+
session.commit()
42+
43+
click.echo(
44+
f"<User name={user.name} id={user.id} and Group name={group.name} id={group.id}>"
45+
)
46+
47+
48+
if __name__ == "__main__":
49+
cli()
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/env python
2+
import ellar_cli.click as click
3+
from ellar.app import AppFactory, current_injector
4+
from ellar.utils.importer import get_main_directory_by_stack
5+
from ellar_cli.main import create_ellar_cli
6+
from models import Group, User
7+
from sqlalchemy.ext.asyncio import AsyncSession
8+
9+
from ellar_sql import EllarSQLModule
10+
11+
12+
def bootstrap():
13+
path = get_main_directory_by_stack(
14+
"__main__/__parent__/__parent__/dumbs/multiple_async", stack_level=1
15+
)
16+
application = AppFactory.create_app(
17+
modules=[
18+
EllarSQLModule.setup(
19+
databases={
20+
"default": "sqlite+aiosqlite:///app.db",
21+
"db1": "sqlite+aiosqlite:///app2.db",
22+
},
23+
migration_options={"context_configure": {"compare_types": False}},
24+
root_path=str(path),
25+
)
26+
]
27+
)
28+
return application
29+
30+
31+
cli = create_ellar_cli("multiple_database_async:bootstrap")
32+
33+
34+
@cli.command()
35+
@click.run_as_async
36+
async def add_user():
37+
session = current_injector.get(AsyncSession)
38+
user = User(name="Multiple Database App Ellar")
39+
group = Group(name="group")
40+
41+
session.add(user)
42+
session.add(group)
43+
44+
await session.commit()
45+
46+
await session.refresh(user)
47+
await session.refresh(group)
48+
49+
await session.close()
50+
51+
click.echo(
52+
f"<User name={user.name} id={user.id} and Group name={group.name} id={group.id}>"
53+
)
54+
55+
56+
if __name__ == "__main__":
57+
cli()

0 commit comments

Comments
 (0)